xmlXPathObjectPtr xpathobjp;
xmlNode *contextnodep;
int name_len;
+ int free_context = 0;
char *str,*name;
contextnode = NULL;
/* 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);
}
if (NULL == (nodesetp = xpathobjp->nodesetval)) {
zval_dtor(rv);
+ xmlXPathFreeObject (xpathobjp);
+ if (free_context) {
+ xmlXPathFreeContext(ctxp);
+ }
RETURN_FALSE;
}
break;
}
+ xmlXPathFreeObject(xpathobjp);
+ if (free_context) {
+ xmlXPathFreeContext(ctxp);
+ }
*return_value = *rv;
FREE_ZVAL(rv);
}
zend_hash_next_index_insert(Z_ARRVAL_P(rv), &child, sizeof(zval *), NULL);
}
}
+ xmlXPathFreeNodeSet(nodesetp);
*return_value = *rv;
FREE_ZVAL(rv);