]> granicus.if.org Git - php/commitdiff
- Use correct freeing (thx Dmitry)
authorMarcus Boerger <helly@php.net>
Tue, 25 Jan 2005 10:07:52 +0000 (10:07 +0000)
committerMarcus Boerger <helly@php.net>
Tue, 25 Jan 2005 10:07:52 +0000 (10:07 +0000)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 7a23a5cbb3cf68061bd590c8c9c9f9b13c51f76e..485de2392a897d862226a45dc1f2e281d3235048 100644 (file)
@@ -2867,7 +2867,11 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
                        array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
                } else {
                        zval_ptr_dtor(&array_ptr);
-                       if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+                       if (opline->extended_value) {
+                               FREE_OP1_VAR_PTR();
+                       } else {
+                               FREE_OP1_IF_VAR();
+                       }
                        zend_throw_exception_internal(NULL TSRMLS_CC);
                        ZEND_VM_NEXT_OPCODE();
                }
index 6f1cdc7cb143a3e573084d5b9d486a0d6071163a..266f2b68685c1827f9906b92ee166c3eda1ff9b5 100644 (file)
@@ -1963,7 +1963,11 @@ static int ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                        array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
                } else {
                        zval_ptr_dtor(&array_ptr);
-                       if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+                       if (opline->extended_value) {
+                               ;
+                       } else {
+                               ;
+                       }
                        zend_throw_exception_internal(NULL TSRMLS_CC);
                        ZEND_VM_NEXT_OPCODE();
                }
@@ -4375,7 +4379,11 @@ static int ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                        array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
                } else {
                        zval_ptr_dtor(&array_ptr);
-                       if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+                       if (opline->extended_value) {
+                               ;
+                       } else {
+                               ;
+                       }
                        zend_throw_exception_internal(NULL TSRMLS_CC);
                        ZEND_VM_NEXT_OPCODE();
                }
@@ -7449,7 +7457,11 @@ static int ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                        array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
                } else {
                        zval_ptr_dtor(&array_ptr);
-                       if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+                       if (opline->extended_value) {
+                               if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+                       } else {
+                               if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+                       }
                        zend_throw_exception_internal(NULL TSRMLS_CC);
                        ZEND_VM_NEXT_OPCODE();
                }
@@ -18221,7 +18233,11 @@ static int ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                        array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
                } else {
                        zval_ptr_dtor(&array_ptr);
-                       if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+                       if (opline->extended_value) {
+                               ;
+                       } else {
+                               ;
+                       }
                        zend_throw_exception_internal(NULL TSRMLS_CC);
                        ZEND_VM_NEXT_OPCODE();
                }
@@ -30516,7 +30532,11 @@ static int ZEND_FE_RESET_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                        array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
                } else {
                        zval_ptr_dtor(&array_ptr);
-                       if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+                       if (opline->extended_value) {
+                               if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+                       } else {
+                               FREE_OP_IF_VAR(free_op1);
+                       }
                        zend_throw_exception_internal(NULL TSRMLS_CC);
                        ZEND_VM_NEXT_OPCODE();
                }