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