]> granicus.if.org Git - php/commitdiff
- Merge: Fixed memleak in tests/lang/engine_assignExecutionOrder_001.phpt
authorPierre Joye <pajoye@php.net>
Sat, 10 Oct 2009 09:12:58 +0000 (09:12 +0000)
committerPierre Joye <pajoye@php.net>
Sat, 10 Oct 2009 09:12:58 +0000 (09:12 +0000)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 34ac30410200157e92a1dc7b0208ba7c41cecd9a..f6f0c64dc2144728da667ad276052414f34335ba 100644 (file)
@@ -940,6 +940,7 @@ ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, CONST|TMP|VAR|CV, ANY, int type
 
        if (opline->op2.u.EA.type == ZEND_FETCH_STATIC_MEMBER) {
                retval = zend_std_get_static_property(EX_T(opline->op2.u.var).class_entry, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0 TSRMLS_CC);
+               FREE_OP1();
        } else {
                target_symbol_table = zend_get_target_symbol_table(opline, EX(Ts), type, varname TSRMLS_CC);
 /*
index 2b56493216d09b07d54b5e9811e3206b5e0b35b8..a2ba0f8166bad472e16263c98868c4aa290fc3c4 100644 (file)
@@ -4607,6 +4607,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP(int type, ZEND_O
 
        if (opline->op2.u.EA.type == ZEND_FETCH_STATIC_MEMBER) {
                retval = zend_std_get_static_property(EX_T(opline->op2.u.var).class_entry, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0 TSRMLS_CC);
+               zval_dtor(free_op1.var);
        } else {
                target_symbol_table = zend_get_target_symbol_table(opline, EX(Ts), type, varname TSRMLS_CC);
 /*
@@ -7848,6 +7849,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR(int type, ZEND_O
 
        if (opline->op2.u.EA.type == ZEND_FETCH_STATIC_MEMBER) {
                retval = zend_std_get_static_property(EX_T(opline->op2.u.var).class_entry, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0 TSRMLS_CC);
+               if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
        } else {
                target_symbol_table = zend_get_target_symbol_table(opline, EX(Ts), type, varname TSRMLS_CC);
 /*