diff --git a/Source/NSXMLDocument.m b/Source/NSXMLDocument.m index 72f087b77..4d342fc5b 100644 --- a/Source/NSXMLDocument.m +++ b/Source/NSXMLDocument.m @@ -38,6 +38,9 @@ extern void clearPrivatePointers(xmlNodePtr aNode); @interface NSXMLNode (Private) - (void *) _node; - (void) _setNode: (void *)_anode; ++ (NSXMLNode *) _objectForNode: (xmlNodePtr)node; +- (void) _addSubNode:(NSXMLNode *)subNode; +- (void) _removeSubNode:(NSXMLNode *)subNode; @end @implementation NSXMLDocument @@ -180,8 +183,8 @@ extern void clearPrivatePointers(xmlNodePtr aNode); - (NSXMLElement*) rootElement { - xmlNodePtr node = xmlDocGetRootElement(MY_DOC); - return (NSXMLElement *)(node->_private); + xmlNodePtr rootElem = xmlDocGetRootElement(MY_DOC); + return (NSXMLElement *)[NSXMLNode _objectForNode:rootElem]; } - (void) setCharacterEncoding: (NSString*)encoding diff --git a/Source/NSXMLNode.m b/Source/NSXMLNode.m index ca517edd3..b5a56208f 100644 --- a/Source/NSXMLNode.m +++ b/Source/NSXMLNode.m @@ -78,10 +78,10 @@ void clearPrivatePointers(xmlNodePtr aNode) switch(type) { case(XML_DOCUMENT_NODE): - result = [[self alloc] initWithKind: NSXMLDocumentKind]; + result = [[NSXMLDocument alloc] initWithKind: NSXMLDocumentKind]; break; case(XML_ELEMENT_NODE): - result = [[self alloc] initWithKind: NSXMLElementKind]; + result = [[NSXMLElement alloc] initWithKind: NSXMLElementKind]; break; case(XML_TEXT_NODE): result = [[self alloc] initWithKind: NSXMLTextKind];