[xml] Potential wrong usage of xmlIsID() in tree.c
- From: Kasimier Buchcik <K Buchcik 4commerce de>
- To: ML-libxml2 <xml gnome org>
- Subject: [xml] Potential wrong usage of xmlIsID() in tree.c
- Date: Fri, 03 Feb 2006 15:52:46 +0100
Hi,
We have the following code in tree.c, xmlCopyPropInternal():
if ((target!= NULL) && (cur!= NULL) &&
(target->doc != NULL) && (cur->doc != NULL) &&
(cur->doc->ids != NULL) && (cur->parent != NULL)) {
if (xmlIsID(cur->doc, cur->parent, cur)) {
[... add the id to the target doc ...]
}
This queries if the current attr is an ID in the _source_ doc via
xmlIsID().
I think this should check if the newly created attribute is an ID in
the _destination_ doc.
Just an observation: Currently, for branch-copy operations a DTD-lookup
is performed (together with a QName building string operation) for every
attribute (except for xml:id attributes).
There is more code in tree.c using xmlIsID() and I think some of
the calls should be substituted for the XML_ATTRIBUTE_ID-test.
E.g. in xmlSetProp(), xmlIsID() is called for an existent
attribute if it is about to be replaced by a new one.
Doesn't xmlIsID() have to be called _only_ if a newly created
attribute is added to the doc's tree? If it's already inside
the doc's tree, then XML_ATTRIBUTE_ID should be
aready set - or am I missing something here?
Regards,
Kasimier
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]