* Source/NSXMLDocument.m: Correct memory management.

* Source/NSXMLElement.m,
* Source/NSXMLNode.m: Add partial support for namespaces.
Try to bracket more libxml2 functions with version checks.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34967 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fredkiefer 2012-03-21 09:01:48 +00:00
parent b5181106dd
commit 6bb7c00782
4 changed files with 383 additions and 100 deletions

View file

@ -220,6 +220,10 @@ GS_PRIVATE_INTERNAL(NSXMLDocument)
- (void) setCharacterEncoding: (NSString*)encoding
{
if (internal->node->encoding != NULL)
{
xmlFree((xmlChar *)internal->node->encoding);
}
internal->node->encoding = XMLStringCopy(encoding);
}
@ -264,6 +268,7 @@ GS_PRIVATE_INTERNAL(NSXMLDocument)
// remove all sub nodes
[self setChildren: nil];
// FIXME: Should we use addChild: here?
xmlDocSetRootElement(internal->node, [root _node]);
// Do our subNode housekeeping...
@ -279,8 +284,12 @@ GS_PRIVATE_INTERNAL(NSXMLDocument)
{
if ([version isEqualToString: @"1.0"] || [version isEqualToString: @"1.1"])
{
if (internal->node->version != NULL)
{
xmlFree((xmlChar *)internal->node->version);
}
internal->node->version = XMLStringCopy(version);
}
}
else
{
[NSException raise: NSInvalidArgumentException