]> granicus.if.org Git - php/commitdiff
- Didn't lower refcount when doing an internal function call linked to a regular...
authorAndi Gutmans <andi@php.net>
Sun, 10 Oct 1999 18:31:42 +0000 (18:31 +0000)
committerAndi Gutmans <andi@php.net>
Sun, 10 Oct 1999 18:31:42 +0000 (18:31 +0000)
Zend/zend_execute.c

index 902d75b689afc261ac9375ce382676ab2ba0a424..97861d0299aff58d44cea1f29745418aef6d3586 100644 (file)
@@ -1463,7 +1463,10 @@ do_fcall_common:
                                        zend_ptr_stack_push(&EG(argument_stack), (void *) opline->extended_value);
                                        if (function_state.function->type==ZEND_INTERNAL_FUNCTION) {
                                                var_uninit(&Ts[opline->result.u.var].tmp_var);
-                                               ((zend_internal_function *) function_state.function)->handler(opline->extended_value, &Ts[opline->result.u.var].tmp_var, &EG(regular_list), &EG(persistent_list), (object.ptr?object.ptr:NULL));
+                                               ((zend_internal_function *) function_state.function)->handler(opline->extended_value, &Ts[opline->result.u.var].tmp_var, &EG(regular_list), &EG(persistent_list), object.ptr);
+                                               if (object.ptr) {
+                                                       object.ptr->refcount--;
+                                               }
                                        } else if (function_state.function->type==ZEND_USER_FUNCTION) {
                                                HashTable *calling_symbol_table;