1
1
#import " DDXMLPrivate.h"
2
2
#import " NSString+DDXML.h"
3
3
4
+ #if ! __has_feature(objc_arc)
5
+ #warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
6
+ #endif
7
+
4
8
/* *
5
9
* Welcome to KissXML.
6
10
*
@@ -27,7 +31,7 @@ @implementation DDXMLElement
27
31
**/
28
32
+ (id )nodeWithElementPrimitive : (xmlNodePtr)node owner : (DDXMLNode *)owner
29
33
{
30
- return [[[ DDXMLElement alloc ] initWithElementPrimitive: node owner: owner] autorelease ];
34
+ return [[DDXMLElement alloc ] initWithElementPrimitive: node owner: owner];
31
35
}
32
36
33
37
- (id )initWithElementPrimitive : (xmlNodePtr)node owner : (DDXMLNode *)inOwner
@@ -49,7 +53,6 @@ - (id)initWithPrimitive:(xmlKindPtr)kindPtr owner:(DDXMLNode *)inOwner
49
53
// Promote initializers which use proper parameter types to enable compiler to catch more mistakes.
50
54
NSAssert (NO , @" Use initWithElementPrimitive:owner:" );
51
55
52
- [self release ];
53
56
return nil ;
54
57
}
55
58
@@ -60,7 +63,6 @@ - (id)initWithName:(NSString *)name
60
63
xmlNodePtr node = xmlNewNode (NULL , [name xmlChar ]);
61
64
if (node == NULL )
62
65
{
63
- [self release ];
64
66
return nil ;
65
67
}
66
68
@@ -74,7 +76,6 @@ - (id)initWithName:(NSString *)name URI:(NSString *)URI
74
76
xmlNodePtr node = xmlNewNode (NULL , [name xmlChar ]);
75
77
if (node == NULL )
76
78
{
77
- [self release ];
78
79
return nil ;
79
80
}
80
81
@@ -91,7 +92,6 @@ - (id)initWithName:(NSString *)name stringValue:(NSString *)string
91
92
xmlNodePtr node = xmlNewNode (NULL , [name xmlChar ]);
92
93
if (node == NULL )
93
94
{
94
- [self release ];
95
95
return nil ;
96
96
}
97
97
@@ -106,16 +106,13 @@ - (id)initWithXMLString:(NSString *)string error:(NSError **)error
106
106
DDXMLDocument *doc = [[DDXMLDocument alloc ] initWithXMLString: string options: 0 error: error];
107
107
if (doc == nil )
108
108
{
109
- [self release ];
110
109
return nil ;
111
110
}
112
111
113
112
DDXMLElement *result = [doc rootElement ];
114
113
[result detach ];
115
- [doc release ];
116
114
117
- [self release ];
118
- return [result retain ];
115
+ return result;
119
116
}
120
117
121
118
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -326,8 +323,7 @@ - (void)addAttribute:(DDXMLNode *)attribute
326
323
xmlAddChild ((xmlNodePtr)genericPtr, (xmlNodePtr)attribute->genericPtr );
327
324
328
325
// The attribute is now part of the xml tree heirarchy
329
- [attribute->owner release ];
330
- attribute->owner = [self retain ];
326
+ attribute->owner = self;
331
327
}
332
328
333
329
- (void )removeAttributeForName : (NSString *)name
@@ -476,8 +472,7 @@ - (void)_addNamespace:(DDXMLNode *)namespace
476
472
}
477
473
478
474
// The namespace is now part of the xml tree heirarchy
479
- [namespace->owner release ];
480
- namespace->owner = [self retain ];
475
+ namespace->owner = self;
481
476
482
477
if ([namespace isKindOfClass: [DDXMLNamespaceNode class ]])
483
478
{
@@ -710,8 +705,7 @@ - (void)addChild:(DDXMLNode *)child
710
705
xmlAddChild ((xmlNodePtr)genericPtr, (xmlNodePtr)child->genericPtr );
711
706
712
707
// The node is now part of the xml tree heirarchy
713
- [child->owner release ];
714
- child->owner = [self retain ];
708
+ child->owner = self;
715
709
}
716
710
717
711
- (void )insertChild : (DDXMLNode *)child atIndex : (NSUInteger )index
@@ -737,8 +731,7 @@ - (void)insertChild:(DDXMLNode *)child atIndex:(NSUInteger)index
737
731
{
738
732
xmlAddPrevSibling (childNodePtr, (xmlNodePtr)child->genericPtr );
739
733
740
- [child->owner release ];
741
- child->owner = [self retain ];
734
+ child->owner = self;
742
735
743
736
return ;
744
737
}
@@ -752,8 +745,7 @@ - (void)insertChild:(DDXMLNode *)child atIndex:(NSUInteger)index
752
745
{
753
746
xmlAddChild ((xmlNodePtr)genericPtr, (xmlNodePtr)child->genericPtr );
754
747
755
- [child->owner release ];
756
- child->owner = [self retain ];
748
+ child->owner = self;
757
749
758
750
return ;
759
751
}
0 commit comments