felipe                                   Fri, 23 Apr 2010 02:57:49 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=298363

Log:
- Fix memory issue

Changed paths:
    U   php/php-src/trunk/Zend/zend_compile.c

Modified: php/php-src/trunk/Zend/zend_compile.c
===================================================================
--- php/php-src/trunk/Zend/zend_compile.c       2010-04-23 02:53:01 UTC (rev 
298362)
+++ php/php-src/trunk/Zend/zend_compile.c       2010-04-23 02:57:49 UTC (rev 
298363)
@@ -3344,18 +3344,14 @@
        opcode_copy = safe_emalloc(sizeof(zend_op), fe->op_array.last, 0);
        for(i = 0; i < fe->op_array.last; i++) {
                opcode_copy[i] = fe->op_array.opcodes[i];
-               if (opcode_copy[i].op1_type == IS_CONST) {
-                       zval_copy_ctor(&CONSTANT_EX(&fe->op_array, 
opcode_copy[i].op1.constant));
-               } else {
+               if (opcode_copy[i].op1_type != IS_CONST) {
                        if (opcode_copy[i].op1.jmp_addr >= fe->op_array.opcodes 
&&
                                opcode_copy[i].op1.jmp_addr <  
fe->op_array.opcodes + fe->op_array.last) {
                                opcode_copy[i].op1.jmp_addr =  opcode_copy + 
(fe->op_array.opcodes[i].op1.jmp_addr - fe->op_array.opcodes);
                        }
         }

-               if (opcode_copy[i].op2_type == IS_CONST) {
-                       zval_copy_ctor(&CONSTANT_EX(&fe->op_array, 
opcode_copy[i].op2.constant));
-               } else {
+               if (opcode_copy[i].op2_type != IS_CONST) {
                        if (opcode_copy[i].op2.jmp_addr >= fe->op_array.opcodes 
&&
                                opcode_copy[i].op2.jmp_addr <  
fe->op_array.opcodes + fe->op_array.last) {
                                opcode_copy[i].op2.jmp_addr =  opcode_copy + 
(fe->op_array.opcodes[i].op2.jmp_addr - fe->op_array.opcodes);
@@ -3394,6 +3390,7 @@

        for (i = 0; i < fe->op_array.size_literal; i++) {
                literals_copy[i] = fe->op_array.literals[i];
+               zval_copy_ctor(&literals_copy[i].constant);
        }
        fe->op_array.literals = literals_copy;
 }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to