svn: /php/php-src/trunk/Zend/ zend_compile.c
| From: | Felipe Pena | Date: | Fri, 23 Apr 2010 00:54:51 +0000 |
| Subject: | svn: /php/php-src/trunk/Zend/ zend_compile.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-62363@lists.php.net to get a copy of this message | ||
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;