summaryrefslogtreecommitdiff
path: root/ext/xml
diff options
context:
space:
mode:
authorThies C. Arntzen <thies@php.net>1999-10-07 12:27:40 +0000
committerThies C. Arntzen <thies@php.net>1999-10-07 12:27:40 +0000
commitb311342faf24c72508b5b7f76703e8c5136e61af (patch)
tree2a3854efc728a55fd4b67d5632987ad3d6e08462 /ext/xml
parentf35244454163db88f24507168a5e9bbb06b3d456 (diff)
downloadphp-git-b311342faf24c72508b5b7f76703e8c5136e61af.tar.gz
fixed hopefully last XML problem. that one was hard!
Diffstat (limited to 'ext/xml')
-rw-r--r--ext/xml/xml.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/ext/xml/xml.c b/ext/xml/xml.c
index b8f1bf4bc4..90a1f78589 100644
--- a/ext/xml/xml.c
+++ b/ext/xml/xml.c
@@ -66,7 +66,6 @@ DLEXPORT zend_module_entry *get_module(void) { return &xml_module_entry; }
/* }}} */
/* {{{ function prototypes */
-
PHP_MINIT_FUNCTION(xml);
PHP_RINIT_FUNCTION(xml);
PHP_MSHUTDOWN_FUNCTION(xml);
@@ -248,6 +247,8 @@ static zval *_xml_resource_zval(long value)
ret->type = IS_RESOURCE;
ret->value.lval = value;
+ zend_list_addref(value);
+
return ret;
}
@@ -365,7 +366,7 @@ xml_call_handler(xml_parser *parser, char *funcName, int argc, zval **argv)
MAKE_STD_ZVAL(retval);
retval->type = IS_BOOL;
- retval->value.lval = IS_BOOL;
+ retval->value.lval = 0;
/* We cannot call internal variables from a function module as
it breaks any chance of compiling it as a module on windows.
@@ -379,14 +380,13 @@ xml_call_handler(xml_parser *parser, char *funcName, int argc, zval **argv)
zval_dtor(retval);
efree(retval);
}
- zval_dtor(func);
- efree(func);
+
+ zval_del_ref(&func);
+
for (i = 0; i < argc; i++) {
- if (i != 0) { /* arg 0 is always our parser-resource - we don't wat to destruct that! */
- zval_dtor(argv[i]);
- }
- efree(argv[i]);
+ zval_del_ref(&(argv[i]));
}
+
if (result == FAILURE) {
return NULL;
} else {