* Source/NSXMLNode.m (-detach, -_insertChild:atIndex:): Maintain

doc pointer.
* Source/NSXMLDTD.m: Implement a few methods.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34908 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fredkiefer 2012-03-08 19:59:12 +00:00
parent 0c1c5da4a8
commit 098f8fd389
3 changed files with 21 additions and 15 deletions

View file

@ -1,3 +1,9 @@
2012-03-08 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSXMLNode.m (-detach, -_insertChild:atIndex:): Maintain
doc pointer.
* Source/NSXMLDTD.m: Implement a few methods.
2012-03-08 Fred Kiefer <FredKiefer@gmx.de> 2012-03-08 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSXMLNode.m (+_objectForNode:): Add a few more libxml2 * Source/NSXMLNode.m (+_objectForNode:): Add a few more libxml2

View file

@ -41,8 +41,6 @@ GS_PRIVATE_INTERNAL(NSXMLDTD)
{ {
if (GS_EXISTS_INTERNAL) if (GS_EXISTS_INTERNAL)
{ {
[internal->publicID release];
[internal->systemID release];
[internal->entities release]; [internal->entities release];
[internal->elements release]; [internal->elements release];
[internal->notations release]; [internal->notations release];
@ -93,7 +91,7 @@ GS_PRIVATE_INTERNAL(NSXMLDTD)
NSXMLDTD *doc; NSXMLDTD *doc;
data = [NSData dataWithContentsOfURL: url]; data = [NSData dataWithContentsOfURL: url];
doc = [self initWithData: data options: 0 error: 0]; doc = [self initWithData: data options: mask error: error];
[doc setURI: [url absoluteString]]; [doc setURI: [url absoluteString]];
return doc; return doc;
} }
@ -149,11 +147,9 @@ GS_PRIVATE_INTERNAL(NSXMLDTD)
- (NSString*) publicID - (NSString*) publicID
{ {
if (internal->publicID == nil) xmlDtd *node = MY_DTD;
{
[self notImplemented: _cmd]; return StringFromXMLStringPtr(node->ExternalID);
}
return internal->publicID;
} }
- (void) removeChildAtIndex: (NSUInteger)index - (void) removeChildAtIndex: (NSUInteger)index
@ -173,21 +169,23 @@ GS_PRIVATE_INTERNAL(NSXMLDTD)
- (void) setPublicID: (NSString*)publicID - (void) setPublicID: (NSString*)publicID
{ {
[self notImplemented: _cmd]; xmlDtd *node = MY_DTD;
node->ExternalID = XMLStringCopy(publicID);
} }
- (void) setSystemID: (NSString*)systemID - (void) setSystemID: (NSString*)systemID
{ {
[self notImplemented: _cmd]; xmlDtd *node = MY_DTD;
node->SystemID = XMLStringCopy(systemID);
} }
- (NSString*) systemID - (NSString*) systemID
{ {
if (internal->systemID == nil) xmlDtd *node = MY_DTD;
{
[self notImplemented: _cmd]; return StringFromXMLStringPtr(node->SystemID);
}
return internal->systemID;
} }
@end @end

View file

@ -413,6 +413,7 @@ isEqualTree(xmlNodePtr nodeA, xmlNodePtr nodeB)
* the new node in "by hand" * the new node in "by hand"
*/ */
childNode->parent = parentNode; childNode->parent = parentNode;
xmlSetTreeDoc(childNode, parentNode->doc);
if (curNode) if (curNode)
{ {
// insert childNode before an existing node curNode // insert childNode before an existing node curNode
@ -946,6 +947,7 @@ execute_xpath(NSXMLNode *xmlNode, NSString *xpath_exp, NSString *nmspaces)
// separate our node from its parent and siblings // separate our node from its parent and siblings
xmlUnlinkNode(node); xmlUnlinkNode(node);
xmlSetTreeDoc(node, NULL);
if (parent) if (parent)
{ {
[parent _removeSubNode: self]; [parent _removeSubNode: self];