2012-02-27 Fred Kiefer <FredKiefer@gmx.de>

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34828 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
gcasa 2012-02-27 17:30:07 +00:00
parent 4b79143129
commit 6e4e57e690
2 changed files with 15 additions and 5 deletions

View file

@ -53,6 +53,7 @@ extern void clearPrivatePointers(xmlNodePtr aNode);
- (void) _addSubNode:(NSXMLNode *)subNode;
- (void) _removeSubNode:(NSXMLNode *)subNode;
- (void) _insertChild: (NSXMLNode*)child atIndex: (NSUInteger)index;
- (id) _initWithNode:(xmlNodePtr)node kind:(NSXMLNodeKind)kind;
@end
@implementation NSXMLDocument
@ -228,7 +229,7 @@ extern void clearPrivatePointers(xmlNodePtr aNode);
- (void) setCharacterEncoding: (NSString*)encoding
{
MY_DOC->encoding = XMLSTRING(encoding);
MY_DOC->encoding = xmlStrdup(XMLSTRING(encoding));
}
- (void) setDocumentContentKind: (NSXMLDocumentContentKind)kind
@ -474,10 +475,12 @@ extern void clearPrivatePointers(xmlNodePtr aNode);
- (id) copyWithZone: (NSZone *)zone
{
NSXMLDocument *c = (NSXMLDocument*)[super copyWithZone: zone];
internal->node = (xmlDoc *)xmlCopyDoc(MY_DOC, 1); // copy recursively
clearPrivatePointers(internal->node); // clear out all of the _private pointers in the entire tree
((xmlNodePtr)internal->node)->_private = c;
id c = [[self class] allocWithZone: zone];
xmlDocPtr newNode = xmlCopyDoc(MY_DOC, 1); // make a deep copy
clearPrivatePointers((xmlNodePtr)newNode);
c = [c _initWithNode:(xmlNodePtr)newNode kind:internal->kind];
return c;
}