@@ -1326,8 +1326,6 @@ binary_assign_op_addr: {
1326
1326
}
1327
1327
FREE_OP (& opline -> op1 , free_op1 );
1328
1328
}
1329
-
1330
- calling_symbol_table = EG (active_symbol_table );
1331
1329
zend_ptr_stack_push (& EG (argument_stack ), (void * ) opline -> extended_value );
1332
1330
if (function_state .function -> type == ZEND_INTERNAL_FUNCTION ) {
1333
1331
var_uninit (& Ts [opline -> result .u .var ].tmp_var );
@@ -1341,6 +1339,7 @@ binary_assign_op_addr: {
1341
1339
zend_hash_init (function_state .function_symbol_table , 0 , NULL , PVAL_PTR_DTOR , 0 );
1342
1340
//printf("Cache miss! Initialized %x\n", function_state.function_symbol_table);
1343
1341
}
1342
+ calling_symbol_table = EG (active_symbol_table );
1344
1343
EG (active_symbol_table ) = function_state .function_symbol_table ;
1345
1344
if (object_ptr && function_being_called && function_being_called -> type != ZEND_OVERLOADED_FUNCTION ) {
1346
1345
zval * dummy = (zval * ) emalloc (sizeof (zval )), * * this_ptr ;
@@ -1367,12 +1366,12 @@ binary_assign_op_addr: {
1367
1366
* (++ EG (symtable_cache_ptr )) = function_state .function_symbol_table ;
1368
1367
zend_hash_clean (* EG (symtable_cache_ptr ));
1369
1368
}
1369
+ EG (active_symbol_table ) = calling_symbol_table ;
1370
1370
} else { /* ZEND_OVERLOADED_FUNCTION */
1371
1371
call_overloaded_function (opline -> extended_value , & Ts [opline -> result .u .var ].tmp_var , & EG (regular_list ), & EG (persistent_list ));
1372
1372
efree (function_being_called );
1373
1373
}
1374
1374
function_state .function = (zend_function * ) op_array ;
1375
- EG (active_symbol_table ) = calling_symbol_table ;
1376
1375
EG (function_state_ptr ) = & function_state ;
1377
1376
zend_ptr_stack_clear_multiple (ELS_C );
1378
1377
}
0 commit comments