* 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:
Fred Kiefer 2012-03-08 19:59:12 +00:00
parent 02b71a0a49
commit a9288f57d0
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>
* Source/NSXMLNode.m (+_objectForNode:): Add a few more libxml2

View file

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

View file

@ -413,6 +413,7 @@ isEqualTree(xmlNodePtr nodeA, xmlNodePtr nodeB)
* the new node in "by hand"
*/
childNode->parent = parentNode;
xmlSetTreeDoc(childNode, parentNode->doc);
if (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
xmlUnlinkNode(node);
xmlSetTreeDoc(node, NULL);
if (parent)
{
[parent _removeSubNode: self];