summaryrefslogtreecommitdiff
path: root/src/lxml/extensions.pxi
diff options
context:
space:
mode:
Diffstat (limited to 'src/lxml/extensions.pxi')
-rw-r--r--src/lxml/extensions.pxi8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lxml/extensions.pxi b/src/lxml/extensions.pxi
index 3c444c8d..00b05d32 100644
--- a/src/lxml/extensions.pxi
+++ b/src/lxml/extensions.pxi
@@ -363,8 +363,12 @@ cdef class _ExsltRegExp:
return firstnode
elif isinstance(firstnode, _Element):
c_text = tree.xmlNodeGetContent((<_Element>firstnode)._c_node)
- s = funicode(c_text)
- tree.xmlFree(c_text)
+ if c_text is NULL:
+ python.PyErr_NoMemory()
+ try:
+ s = funicode(c_text)
+ finally:
+ tree.xmlFree(c_text)
return s
else:
return str(firstnode)