40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
+
+
+
+
+
+
-
+
+
|
}
@end
@implementation OFXMLElement_OFXMLElementBuilderDelegate
- (void)elementBuilder: (OFXMLElementBuilder*)builder
didBuildElement: (OFXMLElement*)elem
{
/*
* Make sure we don't take whitespaces before or after the root element
* into account.
*/
if ([elem name] != nil) {
assert(element == nil);
element = [elem retain];
element = [elem retain];
}
}
- (void)dealloc
{
[element release];
[super dealloc];
|
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
|
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
|
+
+
-
+
|
- initWithXMLString: (OFString*)str
{
OFAutoreleasePool *pool;
OFXMLParser *parser;
OFXMLElementBuilder *builder;
OFXMLElement_OFXMLElementBuilderDelegate *delegate;
Class c;
c = isa;
[self release];
pool = [[OFAutoreleasePool alloc] init];
parser = [OFXMLParser parser];
builder = [OFXMLElementBuilder elementBuilder];
delegate = [[[OFXMLElement_OFXMLElementBuilderDelegate alloc] init]
autorelease];
[parser setDelegate: builder];
[builder setDelegate: delegate];
[parser parseString: str];
if (![parser finishedParsing])
@throw [OFMalformedXMLException newWithClass: isa
@throw [OFMalformedXMLException newWithClass: c
parser: parser];
self = [delegate->element retain];
@try {
[pool release];
} @catch (id e) {
|
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
|
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
|
+
|
return ret;
}
- (void)dealloc
{
[name release];
[ns release];
[defaultNamespace release];
[attributes release];
[namespaces release];
[children release];
[characters release];
[cdata release];
[comment release];
[super dealloc];
}
@end
|