cvs: php4 /ext/domxml php_domxml.c

From: Date: Tue, 08 Apr 2003 19:30:27 +0000
Subject: cvs: php4 /ext/domxml php_domxml.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-20175@lists.php.net to get a copy of this message
chregu Tue Apr 8 15:30:27 2003 EDT Modified files: /php4/ext/domxml php_domxml.c Log: fixes memleaks in element->get_elements_by_tagname & document->get_elements_by_tagname Index: php4/ext/domxml/php_domxml.c diff -u php4/ext/domxml/php_domxml.c:1.247 php4/ext/domxml/php_domxml.c:1.248 --- php4/ext/domxml/php_domxml.c:1.247 Tue Apr 8 13:22:19 2003 +++ php4/ext/domxml/php_domxml.c Tue Apr 8 15:30:27 2003 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_domxml.c,v 1.247 2003/04/08 17:22:19 chregu Exp $ */ +/* $Id: php_domxml.c,v 1.248 2003/04/08 19:30:27 chregu Exp $ */ /* TODO * - Support Notation Nodes @@ -3079,6 +3079,7 @@ xmlXPathObjectPtr xpathobjp; xmlNode *contextnodep; int name_len; + int free_context = 0; char *str,*name; contextnode = NULL; @@ -3089,6 +3090,7 @@ /* if no xpath_context was submitted, create a new one */ if (ctxpin == NULL) { ctxp = xmlXPathNewContext(docp); + free_context = 1; } else { DOMXML_GET_OBJ(ctxp, ctxpin, le_xpathctxp); } @@ -3119,6 +3121,10 @@ if (NULL == (nodesetp = xpathobjp->nodesetval)) { zval_dtor(rv); + xmlXPathFreeObject (xpathobjp); + if (free_context) { + xmlXPathFreeContext(ctxp); + } RETURN_FALSE; } @@ -3138,6 +3144,10 @@ break; } + xmlXPathFreeObject(xpathobjp); + if (free_context) { + xmlXPathFreeContext(ctxp); + } *return_value = *rv; FREE_ZVAL(rv); } @@ -3215,6 +3225,7 @@ zend_hash_next_index_insert(Z_ARRVAL_P(rv), &child, sizeof(zval *), NULL); } } + xmlXPathFreeNodeSet(nodesetp); *return_value = *rv; FREE_ZVAL(rv);

« previous php.cvs (#20175) next »