felipe                                   Fri, 23 Apr 2010 00:54:51 +0000

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

Log:
- Fix ZTS code and CS

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 00:37:04 UTC (rev 
298356)
+++ php/php-src/trunk/Zend/zend_compile.c       2010-04-23 00:54:51 UTC (rev 
298357)
@@ -3244,7 +3244,7 @@
                        continue; /* just skip this, cause its the table this 
function is applied on */
                }

-               if (zend_hash_find(function_tables[i], hash_key->arKey, 
hash_key->nKeyLength, &other_trait_fn) == SUCCESS) {
+               if (zend_hash_find(function_tables[i], hash_key->arKey, 
hash_key->nKeyLength, (void **)&other_trait_fn) == SUCCESS) {
                        /* if it is an abstract method, there is no collision */
                        if (other_trait_fn->common.fn_flags & 
ZEND_ACC_ABSTRACT) {
                                /* we can savely free and remove it from other 
table */
@@ -3270,7 +3270,7 @@
                zend_function* class_fn;
                /* make sure method is not already overridden in class */

-               if (zend_hash_find(&ce->function_table, hash_key->arKey, 
hash_key->nKeyLength, &class_fn) == FAILURE
+               if (zend_hash_find(&ce->function_table, hash_key->arKey, 
hash_key->nKeyLength, (void **)&class_fn) == FAILURE
                        || class_fn->common.scope != ce) {
                                zend_error(E_WARNING, "Trait method %s has not 
been applied, because there are collisions with other trait methods on %s",
                    fn->common.function_name, ce->name);
@@ -3344,7 +3344,7 @@
        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(&opcode_copy[i].op1.constant);
+                       zval_copy_ctor(&CONSTANT_EX(&fe->op_array, 
opcode_copy[i].op1.constant));
                } else {
                        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) {
@@ -3353,7 +3353,7 @@
         }

                if (opcode_copy[i].op2_type == IS_CONST) {
-                       zval_copy_ctor(&opcode_copy[i].op2.constant);
+                       zval_copy_ctor(&CONSTANT_EX(&fe->op_array, 
opcode_copy[i].op2.constant));
                } else {
                        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) {
@@ -3389,13 +3389,13 @@

        fe->op_array.brk_cont_array = 
(zend_brk_cont_element*)estrndup((char*)fe->op_array.brk_cont_array, 
sizeof(zend_brk_cont_element) * fe->op_array.last_brk_cont);

-  /* TODO: check whether there is something similar and whether that is ok */
-  zend_literal* literals_copy = 
(zend_literal*)emalloc(fe->op_array.size_literal * sizeof(zend_literal));
+       /* TODO: check whether there is something similar and whether that is 
ok */
+       zend_literal* literals_copy = 
(zend_literal*)emalloc(fe->op_array.size_literal * sizeof(zend_literal));

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

@@ -3461,7 +3461,7 @@
        return ZEND_HASH_APPLY_REMOVE;
 }

-static int _copy_functions(zend_function *fn, int num_args, va_list args, 
zend_hash_key *hash_key)
+static int _copy_functions(zend_function *fn TSRMLS_DC, int num_args, va_list 
args, zend_hash_key *hash_key)
 {
        HashTable* target;
        zend_trait_alias** aliases;

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

Reply via email to