[Lxml-checkins] r44649 - lxml/trunk/src/lxml
scoder at codespeak.net
scoder at codespeak.net
Sun Jul 1 15:00:45 CEST 2007
Author: scoder
Date: Sun Jul 1 15:00:43 2007
New Revision: 44649
Modified:
lxml/trunk/src/lxml/etree.pyx
lxml/trunk/src/lxml/python.pxd
Log:
small optimisation in _Element.nsmap
Modified: lxml/trunk/src/lxml/etree.pyx
==============================================================================
--- lxml/trunk/src/lxml/etree.pyx (original)
+++ lxml/trunk/src/lxml/etree.pyx Sun Jul 1 15:00:43 2007
@@ -739,15 +739,16 @@
cdef xmlNs* c_ns
nsmap = {}
c_node = self._c_node
- while c_node is not NULL and _isElement(c_node):
+ while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
c_ns = c_node.nsDef
while c_ns is not NULL:
if c_ns.prefix is NULL:
prefix = None
else:
prefix = funicode(c_ns.prefix)
- if prefix not in nsmap:
- nsmap[prefix] = funicode(c_ns.href)
+ if not python.PyDict_Contains(nsmap, prefix):
+ python.PyDict_SetItem(
+ nsmap, prefix, funicode(c_ns.href))
c_ns = c_ns.next
c_node = c_node.parent
return nsmap
Modified: lxml/trunk/src/lxml/python.pxd
==============================================================================
--- lxml/trunk/src/lxml/python.pxd (original)
+++ lxml/trunk/src/lxml/python.pxd Sun Jul 1 15:00:43 2007
@@ -55,6 +55,7 @@
cdef int PyDict_DelItem(object d, object key) except -1
cdef void PyDict_Clear(object d)
cdef object PyDict_Copy(object d)
+ cdef int PyDict_Contains(object d, object key) except -1
cdef Py_ssize_t PyDict_Size(object d)
cdef object PySequence_List(object o)
cdef object PySequence_Tuple(object o)
More information about the lxml-checkins
mailing list