Guest User

Untitled

a guest
Nov 30th, 2012
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 364.63 KB | None | 0 0
  1. diff --git a/NEWS b/NEWS
  2. index 350729c..1c57996 100644
  3. --- a/NEWS
  4. +++ b/NEWS
  5. @@ -3,6 +3,7 @@ PHP                                                                        NEWS
  6.  ?? ??? 201?, PHP 5.5.0
  7.  
  8.  - General improvements:
  9. +  . Optimized access to temporary VM variables. 5% less memory reads. (Dmitry)
  10.    . The VM stacks for passing function arguments and syntaticaly nested calls
  11.      were merged into a single stack. The stack size needed for op_array
  12.      execution is calculated at compile time and preallocated at once. As result
  13. diff --git a/UPGRADING b/UPGRADING
  14. index f8cb6fa..90a4adc 100755
  15. --- a/UPGRADING
  16. +++ b/UPGRADING
  17. @@ -48,6 +48,13 @@ PHP 5.5 UPGRADE NOTES
  18.    corresponding stack space is preallocated together with execute_data.
  19.    ZEND_SEND* and ZEND_DO_FCALL* don't need to check for stack overflow
  20.    anymore.
  21. +- Removed execute_data->Ts field. The VM temporary variables always allocated
  22. +  immediately after execute_data structure. Now they are accessed by offset
  23. +  from the execute_data base pointer (instead of execute_data->Ts). Compiler
  24. +  stores new offsets in op_array->opcodes[*].op?.num. You can use macros
  25. +  EX_TMP_VAR() and EX_TMP_VAR_NUM() to access temp_variable by offset or
  26. +  number. You can convert number to offset using EX_TMP_VAR_NUM(0, num) or
  27. +  offset to number (EX_TMP_VAR(0,offset)-EX_TMP_VAR_NUM(0,0)).
  28.  
  29.  ========================================
  30.  2. New Features
  31. diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
  32. index e768996..109949a 100644
  33. --- a/Zend/zend_compile.c
  34. +++ b/Zend/zend_compile.c
  35. @@ -287,7 +287,7 @@ ZEND_API zend_bool zend_is_compiling(TSRMLS_D) /* {{{ */
  36.  
  37.  static zend_uint get_temporary_variable(zend_op_array *op_array) /* {{{ */
  38.  {
  39. -   return (op_array->T)++ * ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable));
  40. +   return EX_TMP_VAR_NUM(0, (op_array->T)++);
  41.  }
  42.  /* }}} */
  43.  
  44. diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
  45. index def6341..90a99b9 100644
  46. --- a/Zend/zend_compile.h
  47. +++ b/Zend/zend_compile.h
  48. @@ -387,7 +387,6 @@ struct _zend_execute_data {
  49.     zend_function_state function_state;
  50.     zend_op_array *op_array;
  51.     zval *object;
  52. -   union _temp_variable *Ts;
  53.     zval ***CVs;
  54.     HashTable *symbol_table;
  55.     struct _zend_execute_data *prev_execute_data;
  56. @@ -404,6 +403,8 @@ struct _zend_execute_data {
  57.  
  58.  #define EX(element) execute_data.element
  59.  
  60. +#define EX_TMP_VAR(ex, n)     ((temp_variable*)(((char*)(ex)) + (n)))
  61. +#define EX_TMP_VAR_NUM(ex, n)  (EX_TMP_VAR(ex, sizeof(zend_execute_data)) + n)
  62.  
  63.  #define IS_CONST   (1<<0)
  64.  #define IS_TMP_VAR (1<<1)
  65. diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
  66. index 5f04ba7..292a811 100644
  67. --- a/Zend/zend_execute.c
  68. +++ b/Zend/zend_execute.c
  69. @@ -50,10 +50,10 @@
  70.  
  71.  typedef int (*incdec_t)(zval *);
  72.  
  73. -#define get_zval_ptr(op_type, node, Ts, should_free, type) _get_zval_ptr(op_type, node, Ts, should_free, type TSRMLS_CC)
  74. -#define get_zval_ptr_ptr(op_type, node, Ts, should_free, type) _get_zval_ptr_ptr(op_type, node, Ts, should_free, type TSRMLS_CC)
  75. -#define get_obj_zval_ptr(op_type, node, Ts, should_free, type) _get_obj_zval_ptr(op_type, node, Ts, should_free, type TSRMLS_CC)
  76. -#define get_obj_zval_ptr_ptr(op_type, node, Ts, should_free, type) _get_obj_zval_ptr_ptr(op_type, node, Ts, should_free, type TSRMLS_CC)
  77. +#define get_zval_ptr(op_type, node, ex, should_free, type) _get_zval_ptr(op_type, node, ex, should_free, type TSRMLS_CC)
  78. +#define get_zval_ptr_ptr(op_type, node, ex, should_free, type) _get_zval_ptr_ptr(op_type, node, ex, should_free, type TSRMLS_CC)
  79. +#define get_obj_zval_ptr(op_type, node, ex, should_free, type) _get_obj_zval_ptr(op_type, node, ex, should_free, type TSRMLS_CC)
  80. +#define get_obj_zval_ptr_ptr(op_type, node, ex, should_free, type) _get_obj_zval_ptr_ptr(op_type, node, ex, should_free, type TSRMLS_CC)
  81.  
  82.  /* Prototypes */
  83.  static void zend_extension_statement_handler(const zend_extension *extension, zend_op_array *op_array TSRMLS_DC);
  84. @@ -62,7 +62,7 @@ static void zend_extension_fcall_end_handler(const zend_extension *extension, ze
  85.  
  86.  #define RETURN_VALUE_USED(opline) (!((opline)->result_type & EXT_TYPE_UNUSED))
  87.  
  88. -#define T(offset) (*(temp_variable *)((char *) Ts + offset))
  89. +#define EX_T(offset) (*EX_TMP_VAR(execute_data, offset))
  90.  #define CV(var)   CVs[var]
  91.  
  92.  #define TEMP_VAR_STACK_LIMIT 2000
  93. @@ -173,14 +173,14 @@ ZEND_API zval** zend_get_compiled_variable_value(const zend_execute_data *execut
  94.     return execute_data_ptr->CVs[var];
  95.  }
  96.  
  97. -static zend_always_inline zval *_get_zval_ptr_tmp(zend_uint var, const temp_variable *Ts, zend_free_op *should_free TSRMLS_DC)
  98. +static zend_always_inline zval *_get_zval_ptr_tmp(zend_uint var, const zend_execute_data *execute_data, zend_free_op *should_free TSRMLS_DC)
  99.  {
  100. -   return should_free->var = &T(var).tmp_var;
  101. +   return should_free->var = &EX_T(var).tmp_var;
  102.  }
  103.  
  104. -static zend_always_inline zval *_get_zval_ptr_var(zend_uint var, const temp_variable *Ts, zend_free_op *should_free TSRMLS_DC)
  105. +static zend_always_inline zval *_get_zval_ptr_var(zend_uint var, const zend_execute_data *execute_data, zend_free_op *should_free TSRMLS_DC)
  106.  {
  107. -   zval *ptr = T(var).var.ptr;
  108. +   zval *ptr = EX_T(var).var.ptr;
  109.  
  110.     PZVAL_UNLOCK(ptr, should_free);
  111.     return ptr;
  112. @@ -344,7 +344,7 @@ static zend_always_inline zval *_get_zval_ptr_cv_BP_VAR_W(zval ***CVs, zend_uint
  113.     return **ptr;
  114.  }
  115.  
  116. -static inline zval *_get_zval_ptr(int op_type, const znode_op *node, const temp_variable *Ts, zend_free_op *should_free, int type TSRMLS_DC)
  117. +static inline zval *_get_zval_ptr(int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type TSRMLS_DC)
  118.  {
  119.  /* should_free->is_var = 0; */
  120.     switch (op_type) {
  121. @@ -353,11 +353,11 @@ static inline zval *_get_zval_ptr(int op_type, const znode_op *node, const temp_
  122.             return node->zv;
  123.             break;
  124.         case IS_TMP_VAR:
  125. -           should_free->var = TMP_FREE(&T(node->var).tmp_var);
  126. -           return &T(node->var).tmp_var;
  127. +           should_free->var = TMP_FREE(&EX_T(node->var).tmp_var);
  128. +           return &EX_T(node->var).tmp_var;
  129.             break;
  130.         case IS_VAR:
  131. -           return _get_zval_ptr_var(node->var, Ts, should_free TSRMLS_CC);
  132. +           return _get_zval_ptr_var(node->var, execute_data, should_free TSRMLS_CC);
  133.             break;
  134.         case IS_UNUSED:
  135.             should_free->var = 0;
  136. @@ -372,15 +372,15 @@ static inline zval *_get_zval_ptr(int op_type, const znode_op *node, const temp_
  137.     return NULL;
  138.  }
  139.  
  140. -static zend_always_inline zval **_get_zval_ptr_ptr_var(zend_uint var, const temp_variable *Ts, zend_free_op *should_free TSRMLS_DC)
  141. +static zend_always_inline zval **_get_zval_ptr_ptr_var(zend_uint var, const zend_execute_data *execute_data, zend_free_op *should_free TSRMLS_DC)
  142.  {
  143. -   zval** ptr_ptr = T(var).var.ptr_ptr;
  144. +   zval** ptr_ptr = EX_T(var).var.ptr_ptr;
  145.  
  146.     if (EXPECTED(ptr_ptr != NULL)) {
  147.         PZVAL_UNLOCK(*ptr_ptr, should_free);
  148.     } else {
  149.         /* string offset */
  150. -       PZVAL_UNLOCK(T(var).str_offset.str, should_free);
  151. +       PZVAL_UNLOCK(EX_T(var).str_offset.str, should_free);
  152.     }
  153.     return ptr_ptr;
  154.  }
  155. @@ -445,13 +445,13 @@ static zend_always_inline zval **_get_zval_ptr_ptr_cv_BP_VAR_W(zval ***CVs, zend
  156.     return *ptr;
  157.  }
  158.  
  159. -static inline zval **_get_zval_ptr_ptr(int op_type, const znode_op *node, const temp_variable *Ts, zend_free_op *should_free, int type TSRMLS_DC)
  160. +static inline zval **_get_zval_ptr_ptr(int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type TSRMLS_DC)
  161.  {
  162.     if (op_type == IS_CV) {
  163.         should_free->var = 0;
  164.         return _get_zval_ptr_ptr_cv(node->var, type TSRMLS_CC);
  165.     } else if (op_type == IS_VAR) {
  166. -       return _get_zval_ptr_ptr_var(node->var, Ts, should_free TSRMLS_CC);
  167. +       return _get_zval_ptr_ptr_var(node->var, execute_data, should_free TSRMLS_CC);
  168.     } else {
  169.         should_free->var = 0;
  170.         return NULL;
  171. @@ -468,7 +468,7 @@ static zend_always_inline zval *_get_obj_zval_ptr_unused(TSRMLS_D)
  172.     }
  173.  }
  174.  
  175. -static inline zval **_get_obj_zval_ptr_ptr(int op_type, const znode_op *op, const temp_variable *Ts, zend_free_op *should_free, int type TSRMLS_DC)
  176. +static inline zval **_get_obj_zval_ptr_ptr(int op_type, const znode_op *op, const zend_execute_data *execute_data, zend_free_op *should_free, int type TSRMLS_DC)
  177.  {
  178.     if (op_type == IS_UNUSED) {
  179.         if (EXPECTED(EG(This) != NULL)) {
  180. @@ -480,7 +480,7 @@ static inline zval **_get_obj_zval_ptr_ptr(int op_type, const znode_op *op, cons
  181.             zend_error_noreturn(E_ERROR, "Using $this when not in object context");
  182.         }
  183.     }
  184. -   return get_zval_ptr_ptr(op_type, op, Ts, should_free, type);
  185. +   return get_zval_ptr_ptr(op_type, op, execute_data, should_free, type);
  186.  }
  187.  
  188.  static zend_always_inline zval **_get_obj_zval_ptr_ptr_unused(TSRMLS_D)
  189. @@ -493,7 +493,7 @@ static zend_always_inline zval **_get_obj_zval_ptr_ptr_unused(TSRMLS_D)
  190.     }
  191.  }
  192.  
  193. -static inline zval *_get_obj_zval_ptr(int op_type, znode_op *op, const temp_variable *Ts, zend_free_op *should_free, int type TSRMLS_DC)
  194. +static inline zval *_get_obj_zval_ptr(int op_type, znode_op *op, const zend_execute_data *execute_data, zend_free_op *should_free, int type TSRMLS_DC)
  195.  {
  196.     if (op_type == IS_UNUSED) {
  197.         if (EXPECTED(EG(This) != NULL)) {
  198. @@ -503,7 +503,7 @@ static inline zval *_get_obj_zval_ptr(int op_type, znode_op *op, const temp_vari
  199.             zend_error_noreturn(E_ERROR, "Using $this when not in object context");
  200.         }
  201.     }
  202. -   return get_zval_ptr(op_type, op, Ts, should_free, type);
  203. +   return get_zval_ptr(op_type, op, execute_data, should_free, type);
  204.  }
  205.  
  206.  static void zend_assign_to_variable_reference(zval **variable_ptr_ptr, zval **value_ptr_ptr TSRMLS_DC)
  207. @@ -654,11 +654,11 @@ static inline int zend_verify_arg_type(zend_function *zf, zend_uint arg_num, zva
  208.     return 1;
  209.  }
  210.  
  211. -static inline void zend_assign_to_object(zval **retval, zval **object_ptr, zval *property_name, int value_type, znode_op *value_op, const temp_variable *Ts, int opcode, const zend_literal *key TSRMLS_DC)
  212. +static inline void zend_assign_to_object(zval **retval, zval **object_ptr, zval *property_name, int value_type, znode_op *value_op, const zend_execute_data *execute_data, int opcode, const zend_literal *key TSRMLS_DC)
  213.  {
  214.     zval *object = *object_ptr;
  215.     zend_free_op free_value;
  216. -   zval *value = get_zval_ptr(value_type, value_op, Ts, &free_value, BP_VAR_R);
  217. +   zval *value = get_zval_ptr(value_type, value_op, execute_data, &free_value, BP_VAR_R);
  218.  
  219.     if (Z_TYPE_P(object) != IS_OBJECT) {
  220.         if (object == &EG(error_zval)) {
  221. @@ -1410,7 +1410,7 @@ static void zend_fetch_property_address(temp_variable *result, zval **container_
  222.     }
  223.  }
  224.  
  225. -static inline zend_brk_cont_element* zend_brk_cont(int nest_levels, int array_offset, const zend_op_array *op_array, const temp_variable *Ts TSRMLS_DC)
  226. +static inline zend_brk_cont_element* zend_brk_cont(int nest_levels, int array_offset, const zend_op_array *op_array, const zend_execute_data *execute_data TSRMLS_DC)
  227.  {
  228.     int original_nest_levels = nest_levels;
  229.     zend_brk_cont_element *jmp_to;
  230. @@ -1426,12 +1426,12 @@ static inline zend_brk_cont_element* zend_brk_cont(int nest_levels, int array_of
  231.             switch (brk_opline->opcode) {
  232.                 case ZEND_SWITCH_FREE:
  233.                     if (!(brk_opline->extended_value & EXT_TYPE_FREE_ON_RETURN)) {
  234. -                       zval_ptr_dtor(&T(brk_opline->op1.var).var.ptr);
  235. +                       zval_ptr_dtor(&EX_T(brk_opline->op1.var).var.ptr);
  236.                     }
  237.                     break;
  238.                 case ZEND_FREE:
  239.                     if (!(brk_opline->extended_value & EXT_TYPE_FREE_ON_RETURN)) {
  240. -                       zendi_zval_dtor(T(brk_opline->op1.var).tmp_var);
  241. +                       zendi_zval_dtor(EX_T(brk_opline->op1.var).tmp_var);
  242.                     }
  243.                     break;
  244.             }
  245. @@ -1482,7 +1482,7 @@ ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, zend_fcall_i
  246.                 *fci->retval_ptr_ptr, fci->retval_ptr_ptr, fci->object_ptr, 1 TSRMLS_CC);
  247.  
  248.     } else {
  249. -       zval **return_value_ptr = &(*(temp_variable *)((char *) execute_data_ptr->Ts + execute_data_ptr->opline->result.var)).var.ptr;
  250. +       zval **return_value_ptr = &EX_TMP_VAR(execute_data_ptr, execute_data_ptr->opline->result.var)->var.ptr;
  251.         ((zend_internal_function *) execute_data_ptr->function_state.function)->handler(execute_data_ptr->opline->extended_value, *return_value_ptr,
  252.                     (execute_data_ptr->function_state.function->common.fn_flags & ZEND_ACC_RETURN_REFERENCE)?return_value_ptr:NULL,
  253.                     execute_data_ptr->object, return_value_used TSRMLS_CC);
  254. @@ -1537,12 +1537,12 @@ ZEND_API user_opcode_handler_t zend_get_user_opcode_handler(zend_uchar opcode)
  255.     return zend_user_opcode_handlers[opcode];
  256.  }
  257.  
  258. -ZEND_API zval *zend_get_zval_ptr(int op_type, const znode_op *node, const temp_variable *Ts, zend_free_op *should_free, int type TSRMLS_DC) {
  259. -   return get_zval_ptr(op_type, node, Ts, should_free, type);
  260. +ZEND_API zval *zend_get_zval_ptr(int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type TSRMLS_DC) {
  261. +   return get_zval_ptr(op_type, node, execute_data, should_free, type);
  262.  }
  263.  
  264. -ZEND_API zval **zend_get_zval_ptr_ptr(int op_type, const znode_op *node, const temp_variable *Ts, zend_free_op *should_free, int type TSRMLS_DC) {
  265. -   return get_zval_ptr_ptr(op_type, node, Ts, should_free, type);
  266. +ZEND_API zval **zend_get_zval_ptr_ptr(int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type TSRMLS_DC) {
  267. +   return get_zval_ptr_ptr(op_type, node, execute_data, should_free, type);
  268.  }
  269.  
  270.  void zend_clean_and_cache_symbol_table(HashTable *symbol_table TSRMLS_DC) /* {{{ */
  271. diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
  272. index fdd9f56..4fce7f9 100644
  273. --- a/Zend/zend_execute.h
  274. +++ b/Zend/zend_execute.h
  275. @@ -394,8 +394,8 @@ typedef struct _zend_free_op {
  276.  /* int   is_var; */
  277.  } zend_free_op;
  278.  
  279. -ZEND_API zval *zend_get_zval_ptr(int op_type, const znode_op *node, const temp_variable *Ts, zend_free_op *should_free, int type TSRMLS_DC);
  280. -ZEND_API zval **zend_get_zval_ptr_ptr(int op_type, const znode_op *node, const temp_variable *Ts, zend_free_op *should_free, int type TSRMLS_DC);
  281. +ZEND_API zval *zend_get_zval_ptr(int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type TSRMLS_DC);
  282. +ZEND_API zval **zend_get_zval_ptr_ptr(int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type TSRMLS_DC);
  283.  
  284.  ZEND_API int zend_do_fcall(ZEND_OPCODE_HANDLER_ARGS);
  285.  
  286. diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c
  287. index 493e99d..a498990 100644
  288. --- a/Zend/zend_generators.c
  289. +++ b/Zend/zend_generators.c
  290. @@ -66,13 +66,13 @@ void zend_generator_close(zend_generator *generator, zend_bool finished_executio
  291.                     switch (brk_opline->opcode) {
  292.                         case ZEND_SWITCH_FREE:
  293.                             {
  294. -                               temp_variable *var = (temp_variable *) ((char *) execute_data->Ts + brk_opline->op1.var);
  295. +                               temp_variable *var = EX_TMP_VAR(execute_data, brk_opline->op1.var);
  296.                                 zval_ptr_dtor(&var->var.ptr);
  297.                             }
  298.                             break;
  299.                         case ZEND_FREE:
  300.                             {
  301. -                               temp_variable *var = (temp_variable *) ((char *) execute_data->Ts + brk_opline->op1.var);
  302. +                               temp_variable *var = EX_TMP_VAR(execute_data, brk_opline->op1.var);
  303.                                 zval_dtor(&var->tmp_var);
  304.                             }
  305.                             break;
  306. @@ -241,7 +241,7 @@ static void zend_generator_clone_storage(zend_generator *orig, zend_generator **
  307.         }
  308.  
  309.         /* Copy the temporary variables */
  310. -       memcpy(clone->execute_data->Ts, execute_data->Ts, sizeof(temp_variable) * op_array->T);
  311. +       memcpy(EX_TMP_VAR_NUM(clone->execute_data, 0), EX_TMP_VAR_NUM(execute_data, 0), sizeof(temp_variable) * op_array->T);
  312.  
  313.         /* Copy arguments passed on stack */
  314.         stack_frame = zend_vm_stack_frame_base(clone->execute_data);
  315. @@ -271,7 +271,7 @@ static void zend_generator_clone_storage(zend_generator *orig, zend_generator **
  316.                     zend_op *brk_opline = op_array->opcodes + brk_cont->brk;
  317.  
  318.                     if (brk_opline->opcode == ZEND_SWITCH_FREE) {
  319. -                       temp_variable *var = (temp_variable *) ((char *) execute_data->Ts + brk_opline->op1.var);
  320. +                       temp_variable *var = EX_TMP_VAR(execute_data, brk_opline->op1.var);
  321.  
  322.                         Z_ADDREF_P(var->var.ptr);
  323.                     }
  324. @@ -283,10 +283,8 @@ static void zend_generator_clone_storage(zend_generator *orig, zend_generator **
  325.          * offset as the original generator, but in our temporary variable
  326.          * memory segment. */
  327.         if (orig->send_target) {
  328. -           size_t offset = (char *) orig->send_target - (char *) execute_data->Ts;
  329. -           clone->send_target = (temp_variable *) (
  330. -               (char *) clone->execute_data->Ts + offset
  331. -           );
  332. +           size_t offset = (char *) orig->send_target - (char *)execute_data;
  333. +           clone->send_target = EX_TMP_VAR(clone->execute_data, offset);
  334.             Z_ADDREF_P(clone->send_target->var.ptr);
  335.         }
  336.  
  337. diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
  338. index 966827d..8914510 100644
  339. --- a/Zend/zend_vm_def.h
  340. +++ b/Zend/zend_vm_def.h
  341. @@ -334,7 +334,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMP|VAR
  342.     zval **object_ptr = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_RW);
  343.     zval *object;
  344.     zval *property = GET_OP2_ZVAL_PTR(BP_VAR_R);
  345. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  346. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  347.     int have_get_ptr = 0;
  348.  
  349.     if (OP1_TYPE == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  350. @@ -465,8 +465,8 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_helper, VAR|UNUSED|CV, CONST|TMP|VAR|UNU
  351.                     zval *dim = GET_OP2_ZVAL_PTR(BP_VAR_R);
  352.  
  353.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, OP2_TYPE, BP_VAR_RW TSRMLS_CC);
  354. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  355. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  356. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  357. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  358.                 }
  359.             }
  360.             break;
  361. @@ -1636,7 +1636,7 @@ ZEND_VM_HANDLER(136, ZEND_ASSIGN_OBJ, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
  362.     if (OP1_TYPE == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  363.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  364.     }
  365. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  366. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  367.     if (IS_OP2_TMP_FREE()) {
  368.         zval_ptr_dtor(&property_name);
  369.     } else {
  370. @@ -1668,7 +1668,7 @@ ZEND_VM_HANDLER(147, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
  371.         if (IS_OP2_TMP_FREE()) {
  372.             MAKE_REAL_ZVAL_PTR(property_name);
  373.         }
  374. -       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_DIM, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  375. +       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_DIM, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  376.         if (IS_OP2_TMP_FREE()) {
  377.             zval_ptr_dtor(&property_name);
  378.         } else {
  379. @@ -1683,8 +1683,8 @@ ZEND_VM_HANDLER(147, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
  380.         zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, OP2_TYPE, BP_VAR_W TSRMLS_CC);
  381.         FREE_OP2();
  382.  
  383. -       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  384. -       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  385. +       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  386. +       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  387.         if (UNEXPECTED(variable_ptr_ptr == NULL)) {
  388.             if (zend_assign_to_string_offset(&EX_T((opline+1)->op2.var), value, (opline+1)->op1_type TSRMLS_CC)) {
  389.                 if (RETURN_VALUE_USED(opline)) {
  390. @@ -2029,7 +2029,7 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
  391.             /* saves one function call if zend_execute_internal is not used */
  392.             fbc->internal_function.handler(opline->extended_value, ret->var.ptr, (fbc->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) ? &ret->var.ptr : NULL, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC);
  393.         } else {
  394. -           zend_execute_internal(EXECUTE_DATA, NULL, RETURN_VALUE_USED(opline) TSRMLS_CC);
  395. +           zend_execute_internal(execute_data, NULL, RETURN_VALUE_USED(opline) TSRMLS_CC);
  396.         }
  397.  
  398.         if (!RETURN_VALUE_USED(opline)) {
  399. @@ -3311,7 +3311,7 @@ ZEND_VM_HANDLER(50, ZEND_BRK, ANY, CONST)
  400.  
  401.     SAVE_OPLINE();
  402.     el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
  403. -                      EX(op_array), EX_Ts() TSRMLS_CC);
  404. +                      EX(op_array), execute_data TSRMLS_CC);
  405.     FREE_OP2();
  406.     ZEND_VM_JMP(EX(op_array)->opcodes + el->brk);
  407.  }
  408. @@ -3323,7 +3323,7 @@ ZEND_VM_HANDLER(51, ZEND_CONT, ANY, CONST)
  409.  
  410.     SAVE_OPLINE();
  411.     el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
  412. -                      EX(op_array), EX_Ts() TSRMLS_CC);
  413. +                      EX(op_array), execute_data TSRMLS_CC);
  414.     FREE_OP2();
  415.     ZEND_VM_JMP(EX(op_array)->opcodes + el->cont);
  416.  }
  417. @@ -3336,7 +3336,7 @@ ZEND_VM_HANDLER(100, ZEND_GOTO, ANY, CONST)
  418.  
  419.     SAVE_OPLINE();
  420.     el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->extended_value,
  421. -                      EX(op_array), EX_Ts() TSRMLS_CC);
  422. +                      EX(op_array), execute_data TSRMLS_CC);
  423.  
  424.     brk_opline = EX(op_array)->opcodes + el->brk;
  425.  
  426. @@ -3953,7 +3953,7 @@ ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMP|VAR|CV, UNUSED|CONST|VAR)
  427.         ulong hash_value = zend_inline_hash_func(varname->value.str.val, varname->value.str.len+1);
  428.  
  429.         target_symbol_table = zend_get_target_symbol_table(opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
  430. -       zend_delete_variable(EXECUTE_DATA, target_symbol_table, varname->value.str.val, varname->value.str.len+1, hash_value TSRMLS_CC);
  431. +       zend_delete_variable(execute_data, target_symbol_table, varname->value.str.val, varname->value.str.len+1, hash_value TSRMLS_CC);
  432.     }
  433.  
  434.     if (OP1_TYPE != IS_CONST && varname == &tmp) {
  435. @@ -5035,7 +5035,7 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
  436.  
  437.     /* Figure out where the next stack frame (which maybe contains pushed
  438.      * arguments that have to be dtor'ed) starts */
  439. -   stack_frame = zend_vm_stack_frame_base(EXECUTE_DATA);
  440. +   stack_frame = zend_vm_stack_frame_base(execute_data);
  441.  
  442.     /* If the exception was thrown during a function call there might be
  443.      * arguments pushed to the stack that have to be dtor'ed. */
  444. diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
  445. index 921ece2..c64009e 100644
  446. --- a/Zend/zend_vm_execute.h
  447. +++ b/Zend/zend_vm_execute.h
  448. @@ -333,11 +333,6 @@ static opcode_handler_t zend_vm_get_opcode_handler(zend_uchar opcode, zend_op* o
  449.  #define EX_CV(var) EX(CVs)[var]
  450.  #undef EX_CVs
  451.  #define EX_CVs() EX(CVs)
  452. -#undef EX_T
  453. -#define EX_T(offset) (*(temp_variable *)((char *) EX(Ts) + offset))
  454. -#undef EX_Ts
  455. -#define EX_Ts() EX(Ts)
  456. -
  457.  
  458.  /*  
  459.   * Stack Frame Layout (the whole stack frame is allocated at once)
  460. @@ -357,21 +352,21 @@ static opcode_handler_t zend_vm_get_opcode_handler(zend_uchar opcode, zend_op* o
  461.   * EG(current_execute_data) -> | zend_execute_data                      |    |
  462.   *                             |     EX(prev_execute_data)              |----+
  463.   *                             +----------------------------------------+
  464. - *           EX(Ts) ---------> | EX(Ts)[0]                              |
  465. + *     EX_TMP_VAR_NUM(0) ----> | TMP_VAR[0]                             |
  466.   *                             | ...                                    |
  467. - *                             | EX(Tx)[op_arrat->T]                    |
  468. + *                             | TMP_VAR[op_arrat->T-1]                 |
  469.   *                             +----------------------------------------+
  470. - *           EX(CVs) --------> | EX(CVs)[0]                             |--+
  471. + *           EX(CVs) --------> | CV[0]                                  |--+
  472.   *                             | ...                                    |  |
  473. - *                             | EX(CVs)[op_array->last_var]            |  |
  474. + *                             | CV[op_array->last_var-1]               |  |
  475.   *                             +----------------------------------------+  |
  476.   *                             | Optional slot for CV[0] zval*          |<-+
  477.   *                             | ...                                    |
  478. - *                             | ...  for CV [op_array->last_var] zval* |
  479. + *                             | ...for CV [op_array->last_var-1] zval* |
  480.   *                             +----------------------------------------+
  481. - *           EX(call_slots) -> | EX(call_slots)[0]                      |
  482. + *           EX(call_slots) -> | CALL_SLOT[0]                           |
  483.   *                             | ...                                    |
  484. - *                             | EX(call_slots)[op_array->nested_calls] |
  485. + *                             | CALL_SLOT[op_array->nested_calls-1]    |
  486.   *                             +----------------------------------------+
  487.   * zend_vm_stack_frame_base -> | ARGUMENTS STACK [0]                    |
  488.   *                             | ...                                    |
  489. @@ -446,9 +441,7 @@ zend_execute_data *zend_create_execute_data_from_op_array(zend_op_array *op_arra
  490.         EX(prev_execute_data) = EG(current_execute_data);
  491.     }
  492.  
  493. -   EX(Ts) = (temp_variable *) ((char *) execute_data + execute_data_size);
  494. -
  495. -   EX(CVs) = (zval ***) ((char *) EX(Ts) + Ts_size);
  496. +   EX(CVs) = (zval ***) ((char *) EX_TMP_VAR_NUM(execute_data, 0) + Ts_size);
  497.     memset(EX(CVs), 0, sizeof(zval **) * op_array->last_var);
  498.  
  499.     EX(call_slots) = (call_slot*)((char *) EX(CVs) + CVs_size);
  500. @@ -1580,7 +1573,7 @@ static int ZEND_FASTCALL  ZEND_BRK_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  501.  
  502.     SAVE_OPLINE();
  503.     el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
  504. -                      EX(op_array), EX_Ts() TSRMLS_CC);
  505. +                      EX(op_array), execute_data TSRMLS_CC);
  506.  
  507.     ZEND_VM_JMP(EX(op_array)->opcodes + el->brk);
  508.  }
  509. @@ -1592,7 +1585,7 @@ static int ZEND_FASTCALL  ZEND_CONT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  510.  
  511.     SAVE_OPLINE();
  512.     el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
  513. -                      EX(op_array), EX_Ts() TSRMLS_CC);
  514. +                      EX(op_array), execute_data TSRMLS_CC);
  515.  
  516.     ZEND_VM_JMP(EX(op_array)->opcodes + el->cont);
  517.  }
  518. @@ -1605,7 +1598,7 @@ static int ZEND_FASTCALL  ZEND_GOTO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  519.  
  520.     SAVE_OPLINE();
  521.     el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->extended_value,
  522. -                      EX(op_array), EX_Ts() TSRMLS_CC);
  523. +                      EX(op_array), execute_data TSRMLS_CC);
  524.  
  525.     brk_opline = EX(op_array)->opcodes + el->brk;
  526.  
  527. @@ -1665,7 +1658,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_CLASS_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_
  528.         ZEND_VM_NEXT_OPCODE();
  529.     } else {
  530.         zend_free_op free_op2;
  531. -       zval *class_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  532. +       zval *class_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  533.  
  534.         if (IS_TMP_VAR == IS_CONST) {
  535.             if (CACHED_PTR(opline->op2.literal->cache_slot)) {
  536. @@ -1715,7 +1708,7 @@ static int ZEND_FASTCALL  ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H
  537.         zend_free_op free_op2;
  538.  
  539.         SAVE_OPLINE();
  540. -       function_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  541. +       function_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  542.  
  543.         if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) {
  544.             function_name_strval = Z_STRVAL_P(function_name);
  545. @@ -1843,7 +1836,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_CLASS_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_
  546.         ZEND_VM_NEXT_OPCODE();
  547.     } else {
  548.         zend_free_op free_op2;
  549. -       zval *class_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  550. +       zval *class_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  551.  
  552.         if (IS_VAR == IS_CONST) {
  553.             if (CACHED_PTR(opline->op2.literal->cache_slot)) {
  554. @@ -1893,7 +1886,7 @@ static int ZEND_FASTCALL  ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
  555.         zend_free_op free_op2;
  556.  
  557.         SAVE_OPLINE();
  558. -       function_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  559. +       function_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  560.  
  561.         if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) {
  562.             function_name_strval = Z_STRVAL_P(function_name);
  563. @@ -4370,7 +4363,7 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  564.     SAVE_OPLINE();
  565.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  566.         opline->op1.zv,
  567. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  568. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  569.  
  570.     zval_dtor(free_op2.var);
  571.     CHECK_EXCEPTION();
  572. @@ -4385,7 +4378,7 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  573.     SAVE_OPLINE();
  574.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  575.         opline->op1.zv,
  576. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  577. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  578.  
  579.     zval_dtor(free_op2.var);
  580.     CHECK_EXCEPTION();
  581. @@ -4400,7 +4393,7 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  582.     SAVE_OPLINE();
  583.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  584.         opline->op1.zv,
  585. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  586. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  587.  
  588.     zval_dtor(free_op2.var);
  589.     CHECK_EXCEPTION();
  590. @@ -4415,7 +4408,7 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  591.     SAVE_OPLINE();
  592.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  593.         opline->op1.zv,
  594. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  595. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  596.  
  597.     zval_dtor(free_op2.var);
  598.     CHECK_EXCEPTION();
  599. @@ -4430,7 +4423,7 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  600.     SAVE_OPLINE();
  601.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  602.         opline->op1.zv,
  603. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  604. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  605.  
  606.     zval_dtor(free_op2.var);
  607.     CHECK_EXCEPTION();
  608. @@ -4445,7 +4438,7 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
  609.     SAVE_OPLINE();
  610.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  611.         opline->op1.zv,
  612. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  613. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  614.  
  615.     zval_dtor(free_op2.var);
  616.     CHECK_EXCEPTION();
  617. @@ -4460,7 +4453,7 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
  618.     SAVE_OPLINE();
  619.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  620.         opline->op1.zv,
  621. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  622. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  623.  
  624.     zval_dtor(free_op2.var);
  625.     CHECK_EXCEPTION();
  626. @@ -4475,7 +4468,7 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER
  627.     SAVE_OPLINE();
  628.     concat_function(&EX_T(opline->result.var).tmp_var,
  629.         opline->op1.zv,
  630. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  631. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  632.  
  633.     zval_dtor(free_op2.var);
  634.     CHECK_EXCEPTION();
  635. @@ -4490,7 +4483,7 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_H
  636.     SAVE_OPLINE();
  637.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  638.         opline->op1.zv,
  639. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  640. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  641.  
  642.     zval_dtor(free_op2.var);
  643.     CHECK_EXCEPTION();
  644. @@ -4506,7 +4499,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_CONST_TMP_HANDLER(ZEND_OPCO
  645.     SAVE_OPLINE();
  646.     is_identical_function(result,
  647.         opline->op1.zv,
  648. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  649. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  650.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  651.  
  652.     zval_dtor(free_op2.var);
  653. @@ -4523,7 +4516,7 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDL
  654.     SAVE_OPLINE();
  655.     ZVAL_BOOL(result, fast_equal_function(result,
  656.         opline->op1.zv,
  657. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  658. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  659.  
  660.     zval_dtor(free_op2.var);
  661.     CHECK_EXCEPTION();
  662. @@ -4539,7 +4532,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_H
  663.     SAVE_OPLINE();
  664.     ZVAL_BOOL(result, fast_not_equal_function(result,
  665.         opline->op1.zv,
  666. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  667. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  668.  
  669.     zval_dtor(free_op2.var);
  670.     CHECK_EXCEPTION();
  671. @@ -4555,7 +4548,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HAN
  672.     SAVE_OPLINE();
  673.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  674.         opline->op1.zv,
  675. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  676. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  677.  
  678.     zval_dtor(free_op2.var);
  679.     CHECK_EXCEPTION();
  680. @@ -4571,7 +4564,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMP_HANDLER(ZEND_O
  681.     SAVE_OPLINE();
  682.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  683.         opline->op1.zv,
  684. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  685. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  686.  
  687.     zval_dtor(free_op2.var);
  688.     CHECK_EXCEPTION();
  689. @@ -4586,7 +4579,7 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_
  690.     SAVE_OPLINE();
  691.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  692.         opline->op1.zv,
  693. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  694. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  695.  
  696.     zval_dtor(free_op2.var);
  697.     CHECK_EXCEPTION();
  698. @@ -4601,7 +4594,7 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER
  699.     SAVE_OPLINE();
  700.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  701.         opline->op1.zv,
  702. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  703. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  704.  
  705.     zval_dtor(free_op2.var);
  706.     CHECK_EXCEPTION();
  707. @@ -4616,7 +4609,7 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER
  708.     SAVE_OPLINE();
  709.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  710.         opline->op1.zv,
  711. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  712. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  713.  
  714.     zval_dtor(free_op2.var);
  715.     CHECK_EXCEPTION();
  716. @@ -4631,7 +4624,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDL
  717.     SAVE_OPLINE();
  718.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  719.         opline->op1.zv,
  720. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  721. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  722.  
  723.     zval_dtor(free_op2.var);
  724.     CHECK_EXCEPTION();
  725. @@ -4654,12 +4647,12 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HA
  726.  
  727.     if (IS_CONST == IS_TMP_VAR || IS_CONST == IS_CONST) {
  728.         zval *container = opline->op1.zv;
  729. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  730. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  731.         zval_dtor(free_op2.var);
  732.  
  733.     } else {
  734.         container = NULL;
  735. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  736. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  737.         zval_dtor(free_op2.var);
  738.  
  739.     }
  740. @@ -4717,7 +4710,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZE
  741.             function_name_strval = Z_STRVAL_P(opline->op2.zv);
  742.             function_name_strlen = Z_STRLEN_P(opline->op2.zv);
  743.         } else {
  744. -           function_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  745. +           function_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  746.  
  747.             if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  748.                 zend_error_noreturn(E_ERROR, "Function name must be a string");
  749. @@ -4797,7 +4790,7 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
  750.     }
  751.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  752.                  opline->op1.zv,
  753. -                _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  754. +                _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  755.  
  756.     zval_dtor(free_op2.var);
  757.     CHECK_EXCEPTION();
  758. @@ -4842,7 +4835,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMP_HANDLER(ZEND_OPC
  759.  
  760.     if (IS_TMP_VAR != IS_UNUSED) {
  761.         zend_free_op free_op2;
  762. -       zval *offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  763. +       zval *offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  764.         ulong hval;
  765.  
  766.         switch (Z_TYPE_P(offset)) {
  767. @@ -5004,7 +4997,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_
  768.     /* Set the new yielded key */
  769.     if (IS_TMP_VAR != IS_UNUSED) {
  770.         zend_free_op free_op2;
  771. -       zval *key = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  772. +       zval *key = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  773.  
  774.         /* Consts, temporary variables and references need copying */
  775.         if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
  776. @@ -5066,7 +5059,7 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  777.     SAVE_OPLINE();
  778.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  779.         opline->op1.zv,
  780. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  781. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  782.  
  783.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  784.     CHECK_EXCEPTION();
  785. @@ -5081,7 +5074,7 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  786.     SAVE_OPLINE();
  787.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  788.         opline->op1.zv,
  789. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  790. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  791.  
  792.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  793.     CHECK_EXCEPTION();
  794. @@ -5096,7 +5089,7 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  795.     SAVE_OPLINE();
  796.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  797.         opline->op1.zv,
  798. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  799. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  800.  
  801.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  802.     CHECK_EXCEPTION();
  803. @@ -5111,7 +5104,7 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  804.     SAVE_OPLINE();
  805.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  806.         opline->op1.zv,
  807. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  808. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  809.  
  810.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  811.     CHECK_EXCEPTION();
  812. @@ -5126,7 +5119,7 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  813.     SAVE_OPLINE();
  814.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  815.         opline->op1.zv,
  816. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  817. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  818.  
  819.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  820.     CHECK_EXCEPTION();
  821. @@ -5141,7 +5134,7 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  822.     SAVE_OPLINE();
  823.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  824.         opline->op1.zv,
  825. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  826. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  827.  
  828.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  829.     CHECK_EXCEPTION();
  830. @@ -5156,7 +5149,7 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  831.     SAVE_OPLINE();
  832.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  833.         opline->op1.zv,
  834. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  835. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  836.  
  837.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  838.     CHECK_EXCEPTION();
  839. @@ -5171,7 +5164,7 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER
  840.     SAVE_OPLINE();
  841.     concat_function(&EX_T(opline->result.var).tmp_var,
  842.         opline->op1.zv,
  843. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  844. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  845.  
  846.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  847.     CHECK_EXCEPTION();
  848. @@ -5186,7 +5179,7 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_H
  849.     SAVE_OPLINE();
  850.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  851.         opline->op1.zv,
  852. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  853. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  854.  
  855.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  856.     CHECK_EXCEPTION();
  857. @@ -5202,7 +5195,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCO
  858.     SAVE_OPLINE();
  859.     is_identical_function(result,
  860.         opline->op1.zv,
  861. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  862. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  863.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  864.  
  865.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  866. @@ -5219,7 +5212,7 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDL
  867.     SAVE_OPLINE();
  868.     ZVAL_BOOL(result, fast_equal_function(result,
  869.         opline->op1.zv,
  870. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  871. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  872.  
  873.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  874.     CHECK_EXCEPTION();
  875. @@ -5235,7 +5228,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_H
  876.     SAVE_OPLINE();
  877.     ZVAL_BOOL(result, fast_not_equal_function(result,
  878.         opline->op1.zv,
  879. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  880. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  881.  
  882.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  883.     CHECK_EXCEPTION();
  884. @@ -5251,7 +5244,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HAN
  885.     SAVE_OPLINE();
  886.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  887.         opline->op1.zv,
  888. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  889. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  890.  
  891.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  892.     CHECK_EXCEPTION();
  893. @@ -5267,7 +5260,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_O
  894.     SAVE_OPLINE();
  895.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  896.         opline->op1.zv,
  897. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  898. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  899.  
  900.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  901.     CHECK_EXCEPTION();
  902. @@ -5282,7 +5275,7 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_
  903.     SAVE_OPLINE();
  904.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  905.         opline->op1.zv,
  906. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  907. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  908.  
  909.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  910.     CHECK_EXCEPTION();
  911. @@ -5297,7 +5290,7 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER
  912.     SAVE_OPLINE();
  913.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  914.         opline->op1.zv,
  915. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  916. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  917.  
  918.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  919.     CHECK_EXCEPTION();
  920. @@ -5312,7 +5305,7 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER
  921.     SAVE_OPLINE();
  922.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  923.         opline->op1.zv,
  924. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  925. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  926.  
  927.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  928.     CHECK_EXCEPTION();
  929. @@ -5327,7 +5320,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDL
  930.     SAVE_OPLINE();
  931.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  932.         opline->op1.zv,
  933. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  934. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  935.  
  936.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  937.     CHECK_EXCEPTION();
  938. @@ -5514,12 +5507,12 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HA
  939.  
  940.     if (IS_CONST == IS_TMP_VAR || IS_CONST == IS_CONST) {
  941.         zval *container = opline->op1.zv;
  942. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  943. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  944.         if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  945.  
  946.     } else {
  947.         container = NULL;
  948. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  949. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  950.         if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  951.  
  952.     }
  953. @@ -5577,7 +5570,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE
  954.             function_name_strval = Z_STRVAL_P(opline->op2.zv);
  955.             function_name_strlen = Z_STRLEN_P(opline->op2.zv);
  956.         } else {
  957. -           function_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  958. +           function_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  959.  
  960.             if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  961.                 zend_error_noreturn(E_ERROR, "Function name must be a string");
  962. @@ -5657,7 +5650,7 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
  963.     }
  964.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  965.                  opline->op1.zv,
  966. -                _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  967. +                _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  968.  
  969.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  970.     CHECK_EXCEPTION();
  971. @@ -5702,7 +5695,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_VAR_HANDLER(ZEND_OPC
  972.  
  973.     if (IS_VAR != IS_UNUSED) {
  974.         zend_free_op free_op2;
  975. -       zval *offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  976. +       zval *offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  977.         ulong hval;
  978.  
  979.         switch (Z_TYPE_P(offset)) {
  980. @@ -6025,7 +6018,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_
  981.     /* Set the new yielded key */
  982.     if (IS_VAR != IS_UNUSED) {
  983.         zend_free_op free_op2;
  984. -       zval *key = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  985. +       zval *key = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  986.  
  987.         /* Consts, temporary variables and references need copying */
  988.         if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
  989. @@ -7557,7 +7550,7 @@ static int ZEND_FASTCALL  ZEND_BW_NOT_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  990.  
  991.     SAVE_OPLINE();
  992.     bitwise_not_function(&EX_T(opline->result.var).tmp_var,
  993. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC) TSRMLS_CC);
  994. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC);
  995.     zval_dtor(free_op1.var);
  996.     CHECK_EXCEPTION();
  997.     ZEND_VM_NEXT_OPCODE();
  998. @@ -7570,7 +7563,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_NOT_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
  999.  
  1000.     SAVE_OPLINE();
  1001.     boolean_not_function(&EX_T(opline->result.var).tmp_var,
  1002. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC) TSRMLS_CC);
  1003. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC);
  1004.     zval_dtor(free_op1.var);
  1005.     CHECK_EXCEPTION();
  1006.     ZEND_VM_NEXT_OPCODE();
  1007. @@ -7584,7 +7577,7 @@ static int ZEND_FASTCALL  ZEND_ECHO_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1008.     zval *z;
  1009.  
  1010.     SAVE_OPLINE();
  1011. -   z = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1012. +   z = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1013.  
  1014.     if (IS_TMP_VAR != IS_CONST &&
  1015.         UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) &&
  1016. @@ -7623,7 +7616,7 @@ static int ZEND_FASTCALL  ZEND_JMPZ_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1017.     int ret;
  1018.  
  1019.     SAVE_OPLINE();
  1020. -   val = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1021. +   val = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1022.  
  1023.     if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
  1024.         ret = Z_LVAL_P(val);
  1025. @@ -7653,7 +7646,7 @@ static int ZEND_FASTCALL  ZEND_JMPNZ_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1026.     int ret;
  1027.  
  1028.     SAVE_OPLINE();
  1029. -   val = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1030. +   val = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1031.  
  1032.     if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
  1033.         ret = Z_LVAL_P(val);
  1034. @@ -7683,7 +7676,7 @@ static int ZEND_FASTCALL  ZEND_JMPZNZ_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1035.     int retval;
  1036.  
  1037.     SAVE_OPLINE();
  1038. -   val = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1039. +   val = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1040.  
  1041.     if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
  1042.         retval = Z_LVAL_P(val);
  1043. @@ -7717,7 +7710,7 @@ static int ZEND_FASTCALL  ZEND_JMPZ_EX_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1044.     int retval;
  1045.  
  1046.     SAVE_OPLINE();
  1047. -   val = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1048. +   val = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1049.  
  1050.     if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
  1051.         retval = Z_LVAL_P(val);
  1052. @@ -7748,7 +7741,7 @@ static int ZEND_FASTCALL  ZEND_JMPNZ_EX_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
  1053.     int retval;
  1054.  
  1055.     SAVE_OPLINE();
  1056. -   val = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1057. +   val = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1058.  
  1059.     if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
  1060.         retval = Z_LVAL_P(val);
  1061. @@ -7792,7 +7785,7 @@ static int ZEND_FASTCALL  ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1062.     zend_free_op free_op1;
  1063.  
  1064.     SAVE_OPLINE();
  1065. -   retval_ptr = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1066. +   retval_ptr = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1067.  
  1068.     if (!EG(return_value_ptr_ptr)) {
  1069.         if (IS_TMP_VAR == IS_TMP_VAR) {
  1070. @@ -7853,7 +7846,7 @@ static int ZEND_FASTCALL  ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLE
  1071.             /* Not supposed to happen, but we'll allow it */
  1072.             zend_error(E_NOTICE, "Only variable references should be returned by reference");
  1073.  
  1074. -           retval_ptr = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1075. +           retval_ptr = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1076.             if (!EG(return_value_ptr_ptr)) {
  1077.                 if (IS_TMP_VAR == IS_TMP_VAR) {
  1078.                     zval_dtor(free_op1.var);
  1079. @@ -7914,7 +7907,7 @@ static int ZEND_FASTCALL  ZEND_THROW_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1080.     zend_free_op free_op1;
  1081.  
  1082.     SAVE_OPLINE();
  1083. -   value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1084. +   value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1085.  
  1086.     if (IS_TMP_VAR == IS_CONST || UNEXPECTED(Z_TYPE_P(value) != IS_OBJECT)) {
  1087.         zend_error_noreturn(E_ERROR, "Can only throw objects");
  1088. @@ -7947,7 +7940,7 @@ static int ZEND_FASTCALL  ZEND_SEND_VAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
  1089.         zval *value;
  1090.         zend_free_op free_op1;
  1091.  
  1092. -       value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1093. +       value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1094.  
  1095.         ALLOC_ZVAL(valptr);
  1096.         INIT_PZVAL_COPY(valptr, value);
  1097. @@ -7969,7 +7962,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1098.  
  1099.     SAVE_OPLINE();
  1100.     /* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */
  1101. -   ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC)));
  1102. +   ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)));
  1103.     zval_dtor(free_op1.var);
  1104.  
  1105.     CHECK_EXCEPTION();
  1106. @@ -7986,7 +7979,7 @@ static int ZEND_FASTCALL  ZEND_CLONE_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1107.     zend_object_clone_obj_t clone_call;
  1108.  
  1109.     SAVE_OPLINE();
  1110. -   obj = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1111. +   obj = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1112.  
  1113.     if (IS_TMP_VAR == IS_CONST ||
  1114.         UNEXPECTED(Z_TYPE_P(obj) != IS_OBJECT)) {
  1115. @@ -8047,7 +8040,7 @@ static int ZEND_FASTCALL  ZEND_CAST_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1116.     zval *result = &EX_T(opline->result.var).tmp_var;
  1117.  
  1118.     SAVE_OPLINE();
  1119. -   expr = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1120. +   expr = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1121.  
  1122.     if (opline->extended_value != IS_STRING) {
  1123.         ZVAL_COPY_VALUE(result, expr);
  1124. @@ -8108,7 +8101,7 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HAND
  1125.     zend_bool failure_retval=0;
  1126.  
  1127.     SAVE_OPLINE();
  1128. -   inc_filename = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1129. +   inc_filename = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1130.  
  1131.     if (inc_filename->type!=IS_STRING) {
  1132.         MAKE_STD_ZVAL(tmp_inc_filename);
  1133. @@ -8282,7 +8275,7 @@ static int ZEND_FASTCALL  ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
  1134.             Z_ADDREF_P(array_ptr);
  1135.         }
  1136.     } else {
  1137. -       array_ptr = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1138. +       array_ptr = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1139.         if (1) { /* IS_TMP_VAR */
  1140.             zval *tmp;
  1141.  
  1142. @@ -8391,7 +8384,7 @@ static int ZEND_FASTCALL  ZEND_EXIT_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1143.     SAVE_OPLINE();
  1144.     if (IS_TMP_VAR != IS_UNUSED) {
  1145.         zend_free_op free_op1;
  1146. -       zval *ptr = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1147. +       zval *ptr = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1148.  
  1149.         if (Z_TYPE_P(ptr) == IS_LONG) {
  1150.             EG(exit_status) = Z_LVAL_P(ptr);
  1151. @@ -8441,7 +8434,7 @@ static int ZEND_FASTCALL  ZEND_JMP_SET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1152.     zval *value;
  1153.  
  1154.     SAVE_OPLINE();
  1155. -   value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1156. +   value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1157.  
  1158.     if (i_zend_is_true(value)) {
  1159.         ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, value);
  1160. @@ -8467,7 +8460,7 @@ static int ZEND_FASTCALL  ZEND_JMP_SET_VAR_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_
  1161.     zval *value, *ret;
  1162.  
  1163.     SAVE_OPLINE();
  1164. -   value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1165. +   value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1166.  
  1167.     if (i_zend_is_true(value)) {
  1168.         if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) {
  1169. @@ -8502,7 +8495,7 @@ static int ZEND_FASTCALL  ZEND_QM_ASSIGN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  1170.     zval *value;
  1171.  
  1172.     SAVE_OPLINE();
  1173. -   value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1174. +   value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1175.  
  1176.     ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, value);
  1177.     if (!1) {
  1178. @@ -8520,7 +8513,7 @@ static int ZEND_FASTCALL  ZEND_QM_ASSIGN_VAR_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLE
  1179.     zval *value, *ret;
  1180.  
  1181.     SAVE_OPLINE();
  1182. -   value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1183. +   value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1184.  
  1185.     if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) {
  1186.         Z_ADDREF_P(value);
  1187. @@ -8548,7 +8541,7 @@ static int ZEND_FASTCALL  ZEND_INSTANCEOF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
  1188.     zend_bool result;
  1189.  
  1190.     SAVE_OPLINE();
  1191. -   expr = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1192. +   expr = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1193.  
  1194.     if (Z_TYPE_P(expr) == IS_OBJECT && Z_OBJ_HT_P(expr)->get_class_entry) {
  1195.         result = instanceof_function(Z_OBJCE_P(expr), EX_T(opline->op2.var).class_entry TSRMLS_CC);
  1196. @@ -8568,7 +8561,7 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
  1197.  
  1198.     SAVE_OPLINE();
  1199.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  1200. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1201. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1202.         opline->op2.zv TSRMLS_CC);
  1203.     zval_dtor(free_op1.var);
  1204.  
  1205. @@ -8583,7 +8576,7 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
  1206.  
  1207.     SAVE_OPLINE();
  1208.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  1209. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1210. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1211.         opline->op2.zv TSRMLS_CC);
  1212.     zval_dtor(free_op1.var);
  1213.  
  1214. @@ -8598,7 +8591,7 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
  1215.  
  1216.     SAVE_OPLINE();
  1217.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  1218. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1219. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1220.         opline->op2.zv TSRMLS_CC);
  1221.     zval_dtor(free_op1.var);
  1222.  
  1223. @@ -8613,7 +8606,7 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
  1224.  
  1225.     SAVE_OPLINE();
  1226.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  1227. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1228. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1229.         opline->op2.zv TSRMLS_CC);
  1230.     zval_dtor(free_op1.var);
  1231.  
  1232. @@ -8628,7 +8621,7 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
  1233.  
  1234.     SAVE_OPLINE();
  1235.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  1236. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1237. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1238.         opline->op2.zv TSRMLS_CC);
  1239.     zval_dtor(free_op1.var);
  1240.  
  1241. @@ -8643,7 +8636,7 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
  1242.  
  1243.     SAVE_OPLINE();
  1244.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  1245. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1246. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1247.         opline->op2.zv TSRMLS_CC);
  1248.     zval_dtor(free_op1.var);
  1249.  
  1250. @@ -8658,7 +8651,7 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
  1251.  
  1252.     SAVE_OPLINE();
  1253.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  1254. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1255. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1256.         opline->op2.zv TSRMLS_CC);
  1257.     zval_dtor(free_op1.var);
  1258.  
  1259. @@ -8673,7 +8666,7 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER
  1260.  
  1261.     SAVE_OPLINE();
  1262.     concat_function(&EX_T(opline->result.var).tmp_var,
  1263. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1264. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1265.         opline->op2.zv TSRMLS_CC);
  1266.     zval_dtor(free_op1.var);
  1267.  
  1268. @@ -8688,7 +8681,7 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_H
  1269.  
  1270.     SAVE_OPLINE();
  1271.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  1272. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1273. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1274.         opline->op2.zv TSRMLS_CC);
  1275.     zval_dtor(free_op1.var);
  1276.  
  1277. @@ -8704,7 +8697,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCO
  1278.  
  1279.     SAVE_OPLINE();
  1280.     is_identical_function(result,
  1281. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1282. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1283.         opline->op2.zv TSRMLS_CC);
  1284.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  1285.     zval_dtor(free_op1.var);
  1286. @@ -8721,7 +8714,7 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDL
  1287.  
  1288.     SAVE_OPLINE();
  1289.     ZVAL_BOOL(result, fast_equal_function(result,
  1290. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1291. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1292.         opline->op2.zv TSRMLS_CC));
  1293.     zval_dtor(free_op1.var);
  1294.  
  1295. @@ -8737,7 +8730,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_H
  1296.  
  1297.     SAVE_OPLINE();
  1298.     ZVAL_BOOL(result, fast_not_equal_function(result,
  1299. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1300. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1301.         opline->op2.zv TSRMLS_CC));
  1302.     zval_dtor(free_op1.var);
  1303.  
  1304. @@ -8753,7 +8746,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HAN
  1305.  
  1306.     SAVE_OPLINE();
  1307.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  1308. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1309. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1310.         opline->op2.zv TSRMLS_CC));
  1311.     zval_dtor(free_op1.var);
  1312.  
  1313. @@ -8769,7 +8762,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_CONST_HANDLER(ZEND_O
  1314.  
  1315.     SAVE_OPLINE();
  1316.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  1317. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1318. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1319.         opline->op2.zv TSRMLS_CC));
  1320.     zval_dtor(free_op1.var);
  1321.  
  1322. @@ -8784,7 +8777,7 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_
  1323.  
  1324.     SAVE_OPLINE();
  1325.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  1326. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1327. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1328.         opline->op2.zv TSRMLS_CC);
  1329.     zval_dtor(free_op1.var);
  1330.  
  1331. @@ -8799,7 +8792,7 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER
  1332.  
  1333.     SAVE_OPLINE();
  1334.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  1335. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1336. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1337.         opline->op2.zv TSRMLS_CC);
  1338.     zval_dtor(free_op1.var);
  1339.  
  1340. @@ -8814,7 +8807,7 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER
  1341.  
  1342.     SAVE_OPLINE();
  1343.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  1344. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1345. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1346.         opline->op2.zv TSRMLS_CC);
  1347.     zval_dtor(free_op1.var);
  1348.  
  1349. @@ -8829,7 +8822,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDL
  1350.  
  1351.     SAVE_OPLINE();
  1352.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  1353. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1354. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1355.         opline->op2.zv TSRMLS_CC);
  1356.     zval_dtor(free_op1.var);
  1357.  
  1358. @@ -8848,7 +8841,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_CONST(int type,
  1359.     ulong hash_value;
  1360.  
  1361.     SAVE_OPLINE();
  1362. -   varname = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1363. +   varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1364.  
  1365.     if (IS_TMP_VAR != IS_CONST && UNEXPECTED(Z_TYPE_P(varname) != IS_STRING)) {
  1366.         ZVAL_COPY_VALUE(&tmp_varname, varname);
  1367. @@ -9016,7 +9009,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HA
  1368.     }
  1369.  
  1370.     if (IS_TMP_VAR == IS_TMP_VAR || IS_TMP_VAR == IS_CONST) {
  1371. -       zval *container = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1372. +       zval *container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1373.         zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
  1374.  
  1375.         zval_dtor(free_op1.var);
  1376. @@ -9038,7 +9031,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_TMP_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPC
  1377.     zval *container;
  1378.  
  1379.     SAVE_OPLINE();
  1380. -   container = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1381. +   container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1382.  
  1383.     if (UNEXPECTED(Z_TYPE_P(container) != IS_ARRAY)) {
  1384.         PZVAL_LOCK(&EG(uninitialized_zval));
  1385. @@ -9122,7 +9115,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_CONST_HANDLER(ZEND_OPCO
  1386.     function_name_strval = Z_STRVAL_P(function_name);
  1387.     function_name_strlen = Z_STRLEN_P(function_name);
  1388.  
  1389. -   call->object = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1390. +   call->object = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1391.  
  1392.     if (EXPECTED(call->object != NULL) &&
  1393.         EXPECTED(Z_TYPE_P(call->object) == IS_OBJECT)) {
  1394. @@ -9183,7 +9176,7 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
  1395.         PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
  1396.     }
  1397.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  1398. -                _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1399. +                _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1400.                  opline->op2.zv TSRMLS_CC);
  1401.  
  1402.     CHECK_EXCEPTION();
  1403. @@ -9207,7 +9200,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST_HANDLER(ZEND_OPC
  1404.         expr_ptr = *expr_ptr_ptr;
  1405.         Z_ADDREF_P(expr_ptr);
  1406.     } else {
  1407. -       expr_ptr=_get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1408. +       expr_ptr=_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1409.         if (1) { /* temporary variable */
  1410.             zval *new_expr;
  1411.  
  1412. @@ -9314,7 +9307,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HAND
  1413.         ZEND_VM_NEXT_OPCODE();
  1414.     }
  1415.  
  1416. -   varname = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1417. +   varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1418.  
  1419.     if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  1420.         ZVAL_COPY_VALUE(&tmp, varname);
  1421. @@ -9390,7 +9383,7 @@ static int ZEND_FASTCALL  ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPC
  1422.     } else {
  1423.         HashTable *target_symbol_table;
  1424.         zend_free_op free_op1;
  1425. -       zval tmp, *varname = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1426. +       zval tmp, *varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1427.  
  1428.         if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  1429.             ZVAL_COPY_VALUE(&tmp, varname);
  1430. @@ -9484,7 +9477,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_
  1431.  
  1432.                 zend_error(E_NOTICE, "Only variable references should be yielded by reference");
  1433.  
  1434. -               value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1435. +               value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1436.                 ALLOC_ZVAL(copy);
  1437.                 INIT_PZVAL_COPY(copy, value);
  1438.  
  1439. @@ -9519,7 +9512,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_
  1440.  
  1441.             }
  1442.         } else {
  1443. -           zval *value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1444. +           zval *value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1445.  
  1446.             /* Consts, temporary variables and references need copying */
  1447.             if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
  1448. @@ -9612,8 +9605,8 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1449.  
  1450.     SAVE_OPLINE();
  1451.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  1452. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1453. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1454. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1455. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1456.     zval_dtor(free_op1.var);
  1457.     zval_dtor(free_op2.var);
  1458.     CHECK_EXCEPTION();
  1459. @@ -9627,8 +9620,8 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1460.  
  1461.     SAVE_OPLINE();
  1462.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  1463. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1464. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1465. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1466. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1467.     zval_dtor(free_op1.var);
  1468.     zval_dtor(free_op2.var);
  1469.     CHECK_EXCEPTION();
  1470. @@ -9642,8 +9635,8 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1471.  
  1472.     SAVE_OPLINE();
  1473.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  1474. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1475. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1476. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1477. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1478.     zval_dtor(free_op1.var);
  1479.     zval_dtor(free_op2.var);
  1480.     CHECK_EXCEPTION();
  1481. @@ -9657,8 +9650,8 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1482.  
  1483.     SAVE_OPLINE();
  1484.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  1485. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1486. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1487. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1488. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1489.     zval_dtor(free_op1.var);
  1490.     zval_dtor(free_op2.var);
  1491.     CHECK_EXCEPTION();
  1492. @@ -9672,8 +9665,8 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1493.  
  1494.     SAVE_OPLINE();
  1495.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  1496. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1497. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1498. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1499. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1500.     zval_dtor(free_op1.var);
  1501.     zval_dtor(free_op2.var);
  1502.     CHECK_EXCEPTION();
  1503. @@ -9687,8 +9680,8 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1504.  
  1505.     SAVE_OPLINE();
  1506.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  1507. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1508. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1509. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1510. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1511.     zval_dtor(free_op1.var);
  1512.     zval_dtor(free_op2.var);
  1513.     CHECK_EXCEPTION();
  1514. @@ -9702,8 +9695,8 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1515.  
  1516.     SAVE_OPLINE();
  1517.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  1518. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1519. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1520. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1521. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1522.     zval_dtor(free_op1.var);
  1523.     zval_dtor(free_op2.var);
  1524.     CHECK_EXCEPTION();
  1525. @@ -9717,8 +9710,8 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
  1526.  
  1527.     SAVE_OPLINE();
  1528.     concat_function(&EX_T(opline->result.var).tmp_var,
  1529. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1530. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1531. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1532. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1533.     zval_dtor(free_op1.var);
  1534.     zval_dtor(free_op2.var);
  1535.     CHECK_EXCEPTION();
  1536. @@ -9732,8 +9725,8 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HAN
  1537.  
  1538.     SAVE_OPLINE();
  1539.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  1540. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1541. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1542. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1543. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1544.     zval_dtor(free_op1.var);
  1545.     zval_dtor(free_op2.var);
  1546.     CHECK_EXCEPTION();
  1547. @@ -9748,8 +9741,8 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE
  1548.  
  1549.     SAVE_OPLINE();
  1550.     is_identical_function(result,
  1551. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1552. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1553. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1554. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1555.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  1556.     zval_dtor(free_op1.var);
  1557.     zval_dtor(free_op2.var);
  1558. @@ -9765,8 +9758,8 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER
  1559.  
  1560.     SAVE_OPLINE();
  1561.     ZVAL_BOOL(result, fast_equal_function(result,
  1562. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1563. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  1564. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1565. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  1566.     zval_dtor(free_op1.var);
  1567.     zval_dtor(free_op2.var);
  1568.     CHECK_EXCEPTION();
  1569. @@ -9781,8 +9774,8 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HAN
  1570.  
  1571.     SAVE_OPLINE();
  1572.     ZVAL_BOOL(result, fast_not_equal_function(result,
  1573. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1574. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  1575. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1576. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  1577.     zval_dtor(free_op1.var);
  1578.     zval_dtor(free_op2.var);
  1579.     CHECK_EXCEPTION();
  1580. @@ -9797,8 +9790,8 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDL
  1581.  
  1582.     SAVE_OPLINE();
  1583.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  1584. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1585. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  1586. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1587. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  1588.     zval_dtor(free_op1.var);
  1589.     zval_dtor(free_op2.var);
  1590.     CHECK_EXCEPTION();
  1591. @@ -9813,8 +9806,8 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_TMP_HANDLER(ZEND_OPC
  1592.  
  1593.     SAVE_OPLINE();
  1594.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  1595. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1596. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  1597. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1598. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  1599.     zval_dtor(free_op1.var);
  1600.     zval_dtor(free_op2.var);
  1601.     CHECK_EXCEPTION();
  1602. @@ -9828,8 +9821,8 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  1603.  
  1604.     SAVE_OPLINE();
  1605.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  1606. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1607. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1608. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1609. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1610.     zval_dtor(free_op1.var);
  1611.     zval_dtor(free_op2.var);
  1612.     CHECK_EXCEPTION();
  1613. @@ -9843,8 +9836,8 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
  1614.  
  1615.     SAVE_OPLINE();
  1616.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  1617. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1618. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1619. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1620. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1621.     zval_dtor(free_op1.var);
  1622.     zval_dtor(free_op2.var);
  1623.     CHECK_EXCEPTION();
  1624. @@ -9858,8 +9851,8 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
  1625.  
  1626.     SAVE_OPLINE();
  1627.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  1628. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1629. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1630. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1631. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1632.     zval_dtor(free_op1.var);
  1633.     zval_dtor(free_op2.var);
  1634.     CHECK_EXCEPTION();
  1635. @@ -9873,8 +9866,8 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER
  1636.  
  1637.     SAVE_OPLINE();
  1638.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  1639. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1640. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1641. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1642. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1643.     zval_dtor(free_op1.var);
  1644.     zval_dtor(free_op2.var);
  1645.     CHECK_EXCEPTION();
  1646. @@ -9896,13 +9889,13 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HAND
  1647.     }
  1648.  
  1649.     if (IS_TMP_VAR == IS_TMP_VAR || IS_TMP_VAR == IS_CONST) {
  1650. -       zval *container = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1651. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  1652. +       zval *container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1653. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  1654.         zval_dtor(free_op2.var);
  1655.         zval_dtor(free_op1.var);
  1656.     } else {
  1657.         container = NULL;
  1658. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  1659. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  1660.         zval_dtor(free_op2.var);
  1661.  
  1662.     }
  1663. @@ -9921,7 +9914,7 @@ static int ZEND_FASTCALL  ZEND_ADD_VAR_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_
  1664.     int use_copy = 0;
  1665.  
  1666.     SAVE_OPLINE();
  1667. -   var = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  1668. +   var = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  1669.  
  1670.     if (IS_TMP_VAR == IS_UNUSED) {
  1671.         /* Initialize for erealloc in add_string_to_string */
  1672. @@ -9967,7 +9960,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE
  1673.  
  1674.     SAVE_OPLINE();
  1675.  
  1676. -   function_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  1677. +   function_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  1678.  
  1679.     if (IS_TMP_VAR != IS_CONST &&
  1680.         UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  1681. @@ -9977,7 +9970,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE
  1682.     function_name_strval = Z_STRVAL_P(function_name);
  1683.     function_name_strlen = Z_STRLEN_P(function_name);
  1684.  
  1685. -   call->object = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1686. +   call->object = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1687.  
  1688.     if (EXPECTED(call->object != NULL) &&
  1689.         EXPECTED(Z_TYPE_P(call->object) == IS_OBJECT)) {
  1690. @@ -10039,8 +10032,8 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
  1691.         PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
  1692.     }
  1693.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  1694. -                _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1695. -                _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1696. +                _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1697. +                _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1698.  
  1699.     zval_dtor(free_op2.var);
  1700.     CHECK_EXCEPTION();
  1701. @@ -10064,7 +10057,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMP_HANDLER(ZEND_OPCOD
  1702.         expr_ptr = *expr_ptr_ptr;
  1703.         Z_ADDREF_P(expr_ptr);
  1704.     } else {
  1705. -       expr_ptr=_get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1706. +       expr_ptr=_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1707.         if (1) { /* temporary variable */
  1708.             zval *new_expr;
  1709.  
  1710. @@ -10085,7 +10078,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMP_HANDLER(ZEND_OPCOD
  1711.  
  1712.     if (IS_TMP_VAR != IS_UNUSED) {
  1713.         zend_free_op free_op2;
  1714. -       zval *offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  1715. +       zval *offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  1716.         ulong hval;
  1717.  
  1718.         switch (Z_TYPE_P(offset)) {
  1719. @@ -10180,7 +10173,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  1720.  
  1721.                 zend_error(E_NOTICE, "Only variable references should be yielded by reference");
  1722.  
  1723. -               value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1724. +               value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1725.                 ALLOC_ZVAL(copy);
  1726.                 INIT_PZVAL_COPY(copy, value);
  1727.  
  1728. @@ -10215,7 +10208,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  1729.  
  1730.             }
  1731.         } else {
  1732. -           zval *value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1733. +           zval *value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1734.  
  1735.             /* Consts, temporary variables and references need copying */
  1736.             if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
  1737. @@ -10247,7 +10240,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  1738.     /* Set the new yielded key */
  1739.     if (IS_TMP_VAR != IS_UNUSED) {
  1740.         zend_free_op free_op2;
  1741. -       zval *key = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  1742. +       zval *key = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  1743.  
  1744.         /* Consts, temporary variables and references need copying */
  1745.         if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
  1746. @@ -10308,8 +10301,8 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1747.  
  1748.     SAVE_OPLINE();
  1749.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  1750. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1751. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1752. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1753. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1754.     zval_dtor(free_op1.var);
  1755.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1756.     CHECK_EXCEPTION();
  1757. @@ -10323,8 +10316,8 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1758.  
  1759.     SAVE_OPLINE();
  1760.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  1761. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1762. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1763. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1764. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1765.     zval_dtor(free_op1.var);
  1766.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1767.     CHECK_EXCEPTION();
  1768. @@ -10338,8 +10331,8 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1769.  
  1770.     SAVE_OPLINE();
  1771.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  1772. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1773. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1774. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1775. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1776.     zval_dtor(free_op1.var);
  1777.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1778.     CHECK_EXCEPTION();
  1779. @@ -10353,8 +10346,8 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1780.  
  1781.     SAVE_OPLINE();
  1782.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  1783. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1784. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1785. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1786. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1787.     zval_dtor(free_op1.var);
  1788.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1789.     CHECK_EXCEPTION();
  1790. @@ -10368,8 +10361,8 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  1791.  
  1792.     SAVE_OPLINE();
  1793.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  1794. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1795. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1796. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1797. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1798.     zval_dtor(free_op1.var);
  1799.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1800.     CHECK_EXCEPTION();
  1801. @@ -10383,8 +10376,8 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1802.  
  1803.     SAVE_OPLINE();
  1804.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  1805. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1806. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1807. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1808. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1809.     zval_dtor(free_op1.var);
  1810.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1811.     CHECK_EXCEPTION();
  1812. @@ -10398,8 +10391,8 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  1813.  
  1814.     SAVE_OPLINE();
  1815.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  1816. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1817. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1818. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1819. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1820.     zval_dtor(free_op1.var);
  1821.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1822.     CHECK_EXCEPTION();
  1823. @@ -10413,8 +10406,8 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
  1824.  
  1825.     SAVE_OPLINE();
  1826.     concat_function(&EX_T(opline->result.var).tmp_var,
  1827. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1828. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1829. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1830. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1831.     zval_dtor(free_op1.var);
  1832.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1833.     CHECK_EXCEPTION();
  1834. @@ -10428,8 +10421,8 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAN
  1835.  
  1836.     SAVE_OPLINE();
  1837.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  1838. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1839. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1840. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1841. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1842.     zval_dtor(free_op1.var);
  1843.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1844.     CHECK_EXCEPTION();
  1845. @@ -10444,8 +10437,8 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE
  1846.  
  1847.     SAVE_OPLINE();
  1848.     is_identical_function(result,
  1849. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1850. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1851. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1852. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1853.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  1854.     zval_dtor(free_op1.var);
  1855.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1856. @@ -10461,8 +10454,8 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER
  1857.  
  1858.     SAVE_OPLINE();
  1859.     ZVAL_BOOL(result, fast_equal_function(result,
  1860. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1861. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  1862. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1863. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  1864.     zval_dtor(free_op1.var);
  1865.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1866.     CHECK_EXCEPTION();
  1867. @@ -10477,8 +10470,8 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAN
  1868.  
  1869.     SAVE_OPLINE();
  1870.     ZVAL_BOOL(result, fast_not_equal_function(result,
  1871. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1872. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  1873. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1874. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  1875.     zval_dtor(free_op1.var);
  1876.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1877.     CHECK_EXCEPTION();
  1878. @@ -10493,8 +10486,8 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDL
  1879.  
  1880.     SAVE_OPLINE();
  1881.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  1882. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1883. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  1884. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1885. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  1886.     zval_dtor(free_op1.var);
  1887.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1888.     CHECK_EXCEPTION();
  1889. @@ -10509,8 +10502,8 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPC
  1890.  
  1891.     SAVE_OPLINE();
  1892.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  1893. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1894. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  1895. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1896. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  1897.     zval_dtor(free_op1.var);
  1898.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1899.     CHECK_EXCEPTION();
  1900. @@ -10524,8 +10517,8 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  1901.  
  1902.     SAVE_OPLINE();
  1903.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  1904. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1905. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1906. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1907. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1908.     zval_dtor(free_op1.var);
  1909.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1910.     CHECK_EXCEPTION();
  1911. @@ -10539,8 +10532,8 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
  1912.  
  1913.     SAVE_OPLINE();
  1914.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  1915. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1916. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1917. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1918. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1919.     zval_dtor(free_op1.var);
  1920.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1921.     CHECK_EXCEPTION();
  1922. @@ -10554,8 +10547,8 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
  1923.  
  1924.     SAVE_OPLINE();
  1925.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  1926. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1927. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1928. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1929. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1930.     zval_dtor(free_op1.var);
  1931.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1932.     CHECK_EXCEPTION();
  1933. @@ -10569,8 +10562,8 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER
  1934.  
  1935.     SAVE_OPLINE();
  1936.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  1937. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  1938. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  1939. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  1940. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  1941.     zval_dtor(free_op1.var);
  1942.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1943.     CHECK_EXCEPTION();
  1944. @@ -10588,7 +10581,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_VAR(int type, ZE
  1945.     ulong hash_value;
  1946.  
  1947.     SAVE_OPLINE();
  1948. -   varname = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1949. +   varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1950.  
  1951.     if (IS_TMP_VAR != IS_CONST && UNEXPECTED(Z_TYPE_P(varname) != IS_STRING)) {
  1952.         ZVAL_COPY_VALUE(&tmp_varname, varname);
  1953. @@ -10756,13 +10749,13 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAND
  1954.     }
  1955.  
  1956.     if (IS_TMP_VAR == IS_TMP_VAR || IS_TMP_VAR == IS_CONST) {
  1957. -       zval *container = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1958. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  1959. +       zval *container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1960. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  1961.         if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1962.         zval_dtor(free_op1.var);
  1963.     } else {
  1964.         container = NULL;
  1965. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  1966. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  1967.         if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  1968.  
  1969.     }
  1970. @@ -10781,7 +10774,7 @@ static int ZEND_FASTCALL  ZEND_ADD_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_
  1971.     int use_copy = 0;
  1972.  
  1973.     SAVE_OPLINE();
  1974. -   var = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  1975. +   var = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  1976.  
  1977.     if (IS_TMP_VAR == IS_UNUSED) {
  1978.         /* Initialize for erealloc in add_string_to_string */
  1979. @@ -10827,7 +10820,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE
  1980.  
  1981.     SAVE_OPLINE();
  1982.  
  1983. -   function_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  1984. +   function_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  1985.  
  1986.     if (IS_VAR != IS_CONST &&
  1987.         UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  1988. @@ -10837,7 +10830,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE
  1989.     function_name_strval = Z_STRVAL_P(function_name);
  1990.     function_name_strlen = Z_STRLEN_P(function_name);
  1991.  
  1992. -   call->object = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  1993. +   call->object = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  1994.  
  1995.     if (EXPECTED(call->object != NULL) &&
  1996.         EXPECTED(Z_TYPE_P(call->object) == IS_OBJECT)) {
  1997. @@ -10899,8 +10892,8 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  1998.         PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
  1999.     }
  2000.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  2001. -                _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2002. -                _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  2003. +                _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2004. +                _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  2005.  
  2006.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  2007.     CHECK_EXCEPTION();
  2008. @@ -10924,7 +10917,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_VAR_HANDLER(ZEND_OPCOD
  2009.         expr_ptr = *expr_ptr_ptr;
  2010.         Z_ADDREF_P(expr_ptr);
  2011.     } else {
  2012. -       expr_ptr=_get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2013. +       expr_ptr=_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2014.         if (1) { /* temporary variable */
  2015.             zval *new_expr;
  2016.  
  2017. @@ -10945,7 +10938,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_VAR_HANDLER(ZEND_OPCOD
  2018.  
  2019.     if (IS_VAR != IS_UNUSED) {
  2020.         zend_free_op free_op2;
  2021. -       zval *offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  2022. +       zval *offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  2023.         ulong hval;
  2024.  
  2025.         switch (Z_TYPE_P(offset)) {
  2026. @@ -11031,7 +11024,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLE
  2027.         ZEND_VM_NEXT_OPCODE();
  2028.     }
  2029.  
  2030. -   varname = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2031. +   varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2032.  
  2033.     if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  2034.         ZVAL_COPY_VALUE(&tmp, varname);
  2035. @@ -11107,7 +11100,7 @@ static int ZEND_FASTCALL  ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCOD
  2036.     } else {
  2037.         HashTable *target_symbol_table;
  2038.         zend_free_op free_op1;
  2039. -       zval tmp, *varname = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2040. +       zval tmp, *varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2041.  
  2042.         if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  2043.             ZVAL_COPY_VALUE(&tmp, varname);
  2044. @@ -11201,7 +11194,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  2045.  
  2046.                 zend_error(E_NOTICE, "Only variable references should be yielded by reference");
  2047.  
  2048. -               value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2049. +               value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2050.                 ALLOC_ZVAL(copy);
  2051.                 INIT_PZVAL_COPY(copy, value);
  2052.  
  2053. @@ -11236,7 +11229,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  2054.  
  2055.             }
  2056.         } else {
  2057. -           zval *value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2058. +           zval *value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2059.  
  2060.             /* Consts, temporary variables and references need copying */
  2061.             if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
  2062. @@ -11268,7 +11261,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  2063.     /* Set the new yielded key */
  2064.     if (IS_VAR != IS_UNUSED) {
  2065.         zend_free_op free_op2;
  2066. -       zval *key = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  2067. +       zval *key = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  2068.  
  2069.         /* Consts, temporary variables and references need copying */
  2070.         if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
  2071. @@ -11334,7 +11327,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_UNUSED(int type,
  2072.     ulong hash_value;
  2073.  
  2074.     SAVE_OPLINE();
  2075. -   varname = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2076. +   varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2077.  
  2078.     if (IS_TMP_VAR != IS_CONST && UNEXPECTED(Z_TYPE_P(varname) != IS_STRING)) {
  2079.         ZVAL_COPY_VALUE(&tmp_varname, varname);
  2080. @@ -11504,7 +11497,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_HANDLER(ZEND_OP
  2081.         expr_ptr = *expr_ptr_ptr;
  2082.         Z_ADDREF_P(expr_ptr);
  2083.     } else {
  2084. -       expr_ptr=_get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2085. +       expr_ptr=_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2086.         if (1) { /* temporary variable */
  2087.             zval *new_expr;
  2088.  
  2089. @@ -11611,7 +11604,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_VAR_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HAN
  2090.         ZEND_VM_NEXT_OPCODE();
  2091.     }
  2092.  
  2093. -   varname = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2094. +   varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2095.  
  2096.     if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  2097.         ZVAL_COPY_VALUE(&tmp, varname);
  2098. @@ -11687,7 +11680,7 @@ static int ZEND_FASTCALL  ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_UNUSED_HANDLER(ZEND_OP
  2099.     } else {
  2100.         HashTable *target_symbol_table;
  2101.         zend_free_op free_op1;
  2102. -       zval tmp, *varname = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2103. +       zval tmp, *varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2104.  
  2105.         if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  2106.             ZVAL_COPY_VALUE(&tmp, varname);
  2107. @@ -11781,7 +11774,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
  2108.  
  2109.                 zend_error(E_NOTICE, "Only variable references should be yielded by reference");
  2110.  
  2111. -               value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2112. +               value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2113.                 ALLOC_ZVAL(copy);
  2114.                 INIT_PZVAL_COPY(copy, value);
  2115.  
  2116. @@ -11816,7 +11809,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
  2117.  
  2118.             }
  2119.         } else {
  2120. -           zval *value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2121. +           zval *value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2122.  
  2123.             /* Consts, temporary variables and references need copying */
  2124.             if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
  2125. @@ -11909,7 +11902,7 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2126.  
  2127.     SAVE_OPLINE();
  2128.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  2129. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2130. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2131.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2132.     zval_dtor(free_op1.var);
  2133.  
  2134. @@ -11924,7 +11917,7 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2135.  
  2136.     SAVE_OPLINE();
  2137.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  2138. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2139. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2140.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2141.     zval_dtor(free_op1.var);
  2142.  
  2143. @@ -11939,7 +11932,7 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2144.  
  2145.     SAVE_OPLINE();
  2146.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  2147. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2148. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2149.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2150.     zval_dtor(free_op1.var);
  2151.  
  2152. @@ -11954,7 +11947,7 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2153.  
  2154.     SAVE_OPLINE();
  2155.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  2156. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2157. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2158.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2159.     zval_dtor(free_op1.var);
  2160.  
  2161. @@ -11969,7 +11962,7 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2162.  
  2163.     SAVE_OPLINE();
  2164.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  2165. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2166. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2167.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2168.     zval_dtor(free_op1.var);
  2169.  
  2170. @@ -11984,7 +11977,7 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2171.  
  2172.     SAVE_OPLINE();
  2173.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  2174. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2175. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2176.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2177.     zval_dtor(free_op1.var);
  2178.  
  2179. @@ -11999,7 +11992,7 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2180.  
  2181.     SAVE_OPLINE();
  2182.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  2183. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2184. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2185.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2186.     zval_dtor(free_op1.var);
  2187.  
  2188. @@ -12014,7 +12007,7 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
  2189.  
  2190.     SAVE_OPLINE();
  2191.     concat_function(&EX_T(opline->result.var).tmp_var,
  2192. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2193. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2194.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2195.     zval_dtor(free_op1.var);
  2196.  
  2197. @@ -12029,7 +12022,7 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HAND
  2198.  
  2199.     SAVE_OPLINE();
  2200.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  2201. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2202. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2203.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2204.     zval_dtor(free_op1.var);
  2205.  
  2206. @@ -12045,7 +12038,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_
  2207.  
  2208.     SAVE_OPLINE();
  2209.     is_identical_function(result,
  2210. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2211. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2212.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2213.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  2214.     zval_dtor(free_op1.var);
  2215. @@ -12062,7 +12055,7 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_
  2216.  
  2217.     SAVE_OPLINE();
  2218.     ZVAL_BOOL(result, fast_equal_function(result,
  2219. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2220. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2221.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC));
  2222.     zval_dtor(free_op1.var);
  2223.  
  2224. @@ -12078,7 +12071,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HAND
  2225.  
  2226.     SAVE_OPLINE();
  2227.     ZVAL_BOOL(result, fast_not_equal_function(result,
  2228. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2229. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2230.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC));
  2231.     zval_dtor(free_op1.var);
  2232.  
  2233. @@ -12094,7 +12087,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLE
  2234.  
  2235.     SAVE_OPLINE();
  2236.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  2237. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2238. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2239.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC));
  2240.     zval_dtor(free_op1.var);
  2241.  
  2242. @@ -12110,7 +12103,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_CV_HANDLER(ZEND_OPCO
  2243.  
  2244.     SAVE_OPLINE();
  2245.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  2246. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2247. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2248.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC));
  2249.     zval_dtor(free_op1.var);
  2250.  
  2251. @@ -12125,7 +12118,7 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2252.  
  2253.     SAVE_OPLINE();
  2254.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  2255. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2256. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2257.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2258.     zval_dtor(free_op1.var);
  2259.  
  2260. @@ -12140,7 +12133,7 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
  2261.  
  2262.     SAVE_OPLINE();
  2263.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  2264. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2265. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2266.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2267.     zval_dtor(free_op1.var);
  2268.  
  2269. @@ -12155,7 +12148,7 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
  2270.  
  2271.     SAVE_OPLINE();
  2272.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  2273. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2274. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2275.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2276.     zval_dtor(free_op1.var);
  2277.  
  2278. @@ -12170,7 +12163,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_
  2279.  
  2280.     SAVE_OPLINE();
  2281.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  2282. -       _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2283. +       _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2284.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2285.     zval_dtor(free_op1.var);
  2286.  
  2287. @@ -12193,7 +12186,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDL
  2288.     }
  2289.  
  2290.     if (IS_TMP_VAR == IS_TMP_VAR || IS_TMP_VAR == IS_CONST) {
  2291. -       zval *container = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2292. +       zval *container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2293.         zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
  2294.  
  2295.         zval_dtor(free_op1.var);
  2296. @@ -12273,7 +12266,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_
  2297.     function_name_strval = Z_STRVAL_P(function_name);
  2298.     function_name_strlen = Z_STRLEN_P(function_name);
  2299.  
  2300. -   call->object = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2301. +   call->object = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2302.  
  2303.     if (EXPECTED(call->object != NULL) &&
  2304.         EXPECTED(Z_TYPE_P(call->object) == IS_OBJECT)) {
  2305. @@ -12334,7 +12327,7 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  2306.         PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
  2307.     }
  2308.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  2309. -                _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2310. +                _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2311.                  _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  2312.  
  2313.     CHECK_EXCEPTION();
  2314. @@ -12358,7 +12351,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_HANDLER(ZEND_OPCODE
  2315.         expr_ptr = *expr_ptr_ptr;
  2316.         Z_ADDREF_P(expr_ptr);
  2317.     } else {
  2318. -       expr_ptr=_get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2319. +       expr_ptr=_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2320.         if (1) { /* temporary variable */
  2321.             zval *new_expr;
  2322.  
  2323. @@ -12474,7 +12467,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2324.  
  2325.                 zend_error(E_NOTICE, "Only variable references should be yielded by reference");
  2326.  
  2327. -               value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2328. +               value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2329.                 ALLOC_ZVAL(copy);
  2330.                 INIT_PZVAL_COPY(copy, value);
  2331.  
  2332. @@ -12509,7 +12502,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2333.  
  2334.             }
  2335.         } else {
  2336. -           zval *value = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2337. +           zval *value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2338.  
  2339.             /* Consts, temporary variables and references need copying */
  2340.             if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
  2341. @@ -12602,7 +12595,7 @@ static int ZEND_FASTCALL  ZEND_BW_NOT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2342.  
  2343.     SAVE_OPLINE();
  2344.     bitwise_not_function(&EX_T(opline->result.var).tmp_var,
  2345. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC) TSRMLS_CC);
  2346. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC);
  2347.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2348.     CHECK_EXCEPTION();
  2349.     ZEND_VM_NEXT_OPCODE();
  2350. @@ -12615,7 +12608,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_NOT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2351.  
  2352.     SAVE_OPLINE();
  2353.     boolean_not_function(&EX_T(opline->result.var).tmp_var,
  2354. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC) TSRMLS_CC);
  2355. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC);
  2356.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2357.     CHECK_EXCEPTION();
  2358.     ZEND_VM_NEXT_OPCODE();
  2359. @@ -12628,7 +12621,7 @@ static int ZEND_FASTCALL  ZEND_PRE_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  2360.     zval **var_ptr;
  2361.  
  2362.     SAVE_OPLINE();
  2363. -   var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2364. +   var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2365.  
  2366.     if (IS_VAR == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
  2367.         zend_error_noreturn(E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
  2368. @@ -12675,7 +12668,7 @@ static int ZEND_FASTCALL  ZEND_PRE_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  2369.     zval **var_ptr;
  2370.  
  2371.     SAVE_OPLINE();
  2372. -   var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2373. +   var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2374.  
  2375.     if (IS_VAR == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
  2376.         zend_error_noreturn(E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
  2377. @@ -12722,7 +12715,7 @@ static int ZEND_FASTCALL  ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2378.     zval **var_ptr, *retval;
  2379.  
  2380.     SAVE_OPLINE();
  2381. -   var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2382. +   var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2383.  
  2384.     if (IS_VAR == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
  2385.         zend_error_noreturn(E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
  2386. @@ -12765,7 +12758,7 @@ static int ZEND_FASTCALL  ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2387.     zval **var_ptr, *retval;
  2388.  
  2389.     SAVE_OPLINE();
  2390. -   var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2391. +   var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2392.  
  2393.     if (IS_VAR == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
  2394.         zend_error_noreturn(E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
  2395. @@ -12809,7 +12802,7 @@ static int ZEND_FASTCALL  ZEND_ECHO_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2396.     zval *z;
  2397.  
  2398.     SAVE_OPLINE();
  2399. -   z = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2400. +   z = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2401.  
  2402.     if (IS_VAR != IS_CONST &&
  2403.         UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) &&
  2404. @@ -12848,7 +12841,7 @@ static int ZEND_FASTCALL  ZEND_JMPZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2405.     int ret;
  2406.  
  2407.     SAVE_OPLINE();
  2408. -   val = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2409. +   val = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2410.  
  2411.     if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
  2412.         ret = Z_LVAL_P(val);
  2413. @@ -12878,7 +12871,7 @@ static int ZEND_FASTCALL  ZEND_JMPNZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2414.     int ret;
  2415.  
  2416.     SAVE_OPLINE();
  2417. -   val = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2418. +   val = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2419.  
  2420.     if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
  2421.         ret = Z_LVAL_P(val);
  2422. @@ -12908,7 +12901,7 @@ static int ZEND_FASTCALL  ZEND_JMPZNZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2423.     int retval;
  2424.  
  2425.     SAVE_OPLINE();
  2426. -   val = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2427. +   val = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2428.  
  2429.     if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
  2430.         retval = Z_LVAL_P(val);
  2431. @@ -12942,7 +12935,7 @@ static int ZEND_FASTCALL  ZEND_JMPZ_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  2432.     int retval;
  2433.  
  2434.     SAVE_OPLINE();
  2435. -   val = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2436. +   val = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2437.  
  2438.     if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
  2439.         retval = Z_LVAL_P(val);
  2440. @@ -12973,7 +12966,7 @@ static int ZEND_FASTCALL  ZEND_JMPNZ_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2441.     int retval;
  2442.  
  2443.     SAVE_OPLINE();
  2444. -   val = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2445. +   val = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2446.  
  2447.     if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
  2448.         retval = Z_LVAL_P(val);
  2449. @@ -13017,7 +13010,7 @@ static int ZEND_FASTCALL  ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2450.     zend_free_op free_op1;
  2451.  
  2452.     SAVE_OPLINE();
  2453. -   retval_ptr = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2454. +   retval_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2455.  
  2456.     if (!EG(return_value_ptr_ptr)) {
  2457.         if (IS_VAR == IS_TMP_VAR) {
  2458. @@ -13078,7 +13071,7 @@ static int ZEND_FASTCALL  ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
  2459.             /* Not supposed to happen, but we'll allow it */
  2460.             zend_error(E_NOTICE, "Only variable references should be returned by reference");
  2461.  
  2462. -           retval_ptr = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2463. +           retval_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2464.             if (!EG(return_value_ptr_ptr)) {
  2465.                 if (IS_VAR == IS_TMP_VAR) {
  2466.                     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2467. @@ -13100,7 +13093,7 @@ static int ZEND_FASTCALL  ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
  2468.             break;
  2469.         }
  2470.  
  2471. -       retval_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2472. +       retval_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2473.  
  2474.         if (IS_VAR == IS_VAR && UNEXPECTED(retval_ptr_ptr == NULL)) {
  2475.             zend_error_noreturn(E_ERROR, "Cannot return string offsets by reference");
  2476. @@ -13140,7 +13133,7 @@ static int ZEND_FASTCALL  ZEND_THROW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2477.     zend_free_op free_op1;
  2478.  
  2479.     SAVE_OPLINE();
  2480. -   value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2481. +   value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2482.  
  2483.     if (IS_VAR == IS_CONST || UNEXPECTED(Z_TYPE_P(value) != IS_OBJECT)) {
  2484.         zend_error_noreturn(E_ERROR, "Can only throw objects");
  2485. @@ -13164,7 +13157,7 @@ static int ZEND_FASTCALL zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_AR
  2486.     USE_OPLINE
  2487.     zval *varptr;
  2488.     zend_free_op free_op1;
  2489. -   varptr = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2490. +   varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2491.  
  2492.     if (varptr == &EG(uninitialized_zval)) {
  2493.         ALLOC_ZVAL(varptr);
  2494. @@ -13209,7 +13202,7 @@ static int ZEND_FASTCALL  ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
  2495.         varptr = EX_T(opline->op1.var).var.ptr;
  2496.         PZVAL_UNLOCK_EX(varptr, &free_op1, 0);
  2497.     } else {
  2498. -       varptr = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2499. +       varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2500.     }
  2501.     if ((!(opline->extended_value & ZEND_ARG_SEND_FUNCTION) ||
  2502.          EX_T(opline->op1.var).var.fcall_returned_reference) &&
  2503. @@ -13247,7 +13240,7 @@ static int ZEND_FASTCALL  ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2504.     zval *varptr;
  2505.  
  2506.     SAVE_OPLINE();
  2507. -   varptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2508. +   varptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2509.  
  2510.     if (IS_VAR == IS_VAR && UNEXPECTED(varptr_ptr == NULL)) {
  2511.         zend_error_noreturn(E_ERROR, "Only variables can be passed by reference");
  2512. @@ -13294,7 +13287,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2513.  
  2514.     SAVE_OPLINE();
  2515.     /* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */
  2516. -   ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC)));
  2517. +   ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)));
  2518.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2519.  
  2520.     CHECK_EXCEPTION();
  2521. @@ -13321,7 +13314,7 @@ static int ZEND_FASTCALL  ZEND_CLONE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2522.     zend_object_clone_obj_t clone_call;
  2523.  
  2524.     SAVE_OPLINE();
  2525. -   obj = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2526. +   obj = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2527.  
  2528.     if (IS_VAR == IS_CONST ||
  2529.         UNEXPECTED(Z_TYPE_P(obj) != IS_OBJECT)) {
  2530. @@ -13382,7 +13375,7 @@ static int ZEND_FASTCALL  ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2531.     zval *result = &EX_T(opline->result.var).tmp_var;
  2532.  
  2533.     SAVE_OPLINE();
  2534. -   expr = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2535. +   expr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2536.  
  2537.     if (opline->extended_value != IS_STRING) {
  2538.         ZVAL_COPY_VALUE(result, expr);
  2539. @@ -13443,7 +13436,7 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
  2540.     zend_bool failure_retval=0;
  2541.  
  2542.     SAVE_OPLINE();
  2543. -   inc_filename = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2544. +   inc_filename = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2545.  
  2546.     if (inc_filename->type!=IS_STRING) {
  2547.         MAKE_STD_ZVAL(tmp_inc_filename);
  2548. @@ -13590,7 +13583,7 @@ static int ZEND_FASTCALL  ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2549.  
  2550.     if ((IS_VAR == IS_CV || IS_VAR == IS_VAR) &&
  2551.         (opline->extended_value & ZEND_FE_RESET_VARIABLE)) {
  2552. -       array_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2553. +       array_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2554.         if (array_ptr_ptr == NULL || array_ptr_ptr == &EG(uninitialized_zval_ptr)) {
  2555.             MAKE_STD_ZVAL(array_ptr);
  2556.             ZVAL_NULL(array_ptr);
  2557. @@ -13617,7 +13610,7 @@ static int ZEND_FASTCALL  ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2558.             Z_ADDREF_P(array_ptr);
  2559.         }
  2560.     } else {
  2561. -       array_ptr = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2562. +       array_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2563.         if (0) { /* IS_TMP_VAR */
  2564.             zval *tmp;
  2565.  
  2566. @@ -13869,7 +13862,7 @@ static int ZEND_FASTCALL  ZEND_EXIT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  2567.     SAVE_OPLINE();
  2568.     if (IS_VAR != IS_UNUSED) {
  2569.         zend_free_op free_op1;
  2570. -       zval *ptr = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2571. +       zval *ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2572.  
  2573.         if (Z_TYPE_P(ptr) == IS_LONG) {
  2574.             EG(exit_status) = Z_LVAL_P(ptr);
  2575. @@ -13890,7 +13883,7 @@ static int ZEND_FASTCALL  ZEND_JMP_SET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  2576.     zval *value;
  2577.  
  2578.     SAVE_OPLINE();
  2579. -   value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2580. +   value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2581.  
  2582.     if (i_zend_is_true(value)) {
  2583.         ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, value);
  2584. @@ -13916,7 +13909,7 @@ static int ZEND_FASTCALL  ZEND_JMP_SET_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_
  2585.     zval *value, *ret;
  2586.  
  2587.     SAVE_OPLINE();
  2588. -   value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2589. +   value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2590.  
  2591.     if (i_zend_is_true(value)) {
  2592.         if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
  2593. @@ -13951,7 +13944,7 @@ static int ZEND_FASTCALL  ZEND_QM_ASSIGN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  2594.     zval *value;
  2595.  
  2596.     SAVE_OPLINE();
  2597. -   value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2598. +   value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2599.  
  2600.     ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, value);
  2601.     if (!0) {
  2602. @@ -13969,7 +13962,7 @@ static int ZEND_FASTCALL  ZEND_QM_ASSIGN_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
  2603.     zval *value, *ret;
  2604.  
  2605.     SAVE_OPLINE();
  2606. -   value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2607. +   value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2608.  
  2609.     if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
  2610.         Z_ADDREF_P(value);
  2611. @@ -13998,7 +13991,7 @@ static int ZEND_FASTCALL  ZEND_INSTANCEOF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
  2612.     zend_bool result;
  2613.  
  2614.     SAVE_OPLINE();
  2615. -   expr = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2616. +   expr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2617.  
  2618.     if (Z_TYPE_P(expr) == IS_OBJECT && Z_OBJ_HT_P(expr)->get_class_entry) {
  2619.         result = instanceof_function(Z_OBJCE_P(expr), EX_T(opline->op2.var).class_entry TSRMLS_CC);
  2620. @@ -14018,7 +14011,7 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
  2621.  
  2622.     SAVE_OPLINE();
  2623.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  2624. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2625. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2626.         opline->op2.zv TSRMLS_CC);
  2627.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2628.  
  2629. @@ -14033,7 +14026,7 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
  2630.  
  2631.     SAVE_OPLINE();
  2632.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  2633. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2634. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2635.         opline->op2.zv TSRMLS_CC);
  2636.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2637.  
  2638. @@ -14048,7 +14041,7 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
  2639.  
  2640.     SAVE_OPLINE();
  2641.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  2642. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2643. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2644.         opline->op2.zv TSRMLS_CC);
  2645.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2646.  
  2647. @@ -14063,7 +14056,7 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
  2648.  
  2649.     SAVE_OPLINE();
  2650.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  2651. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2652. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2653.         opline->op2.zv TSRMLS_CC);
  2654.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2655.  
  2656. @@ -14078,7 +14071,7 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
  2657.  
  2658.     SAVE_OPLINE();
  2659.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  2660. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2661. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2662.         opline->op2.zv TSRMLS_CC);
  2663.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2664.  
  2665. @@ -14093,7 +14086,7 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2666.  
  2667.     SAVE_OPLINE();
  2668.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  2669. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2670. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2671.         opline->op2.zv TSRMLS_CC);
  2672.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2673.  
  2674. @@ -14108,7 +14101,7 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
  2675.  
  2676.     SAVE_OPLINE();
  2677.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  2678. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2679. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2680.         opline->op2.zv TSRMLS_CC);
  2681.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2682.  
  2683. @@ -14123,7 +14116,7 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
  2684.  
  2685.     SAVE_OPLINE();
  2686.     concat_function(&EX_T(opline->result.var).tmp_var,
  2687. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2688. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2689.         opline->op2.zv TSRMLS_CC);
  2690.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2691.  
  2692. @@ -14138,7 +14131,7 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
  2693.  
  2694.     SAVE_OPLINE();
  2695.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  2696. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2697. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2698.         opline->op2.zv TSRMLS_CC);
  2699.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2700.  
  2701. @@ -14154,7 +14147,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO
  2702.  
  2703.     SAVE_OPLINE();
  2704.     is_identical_function(result,
  2705. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2706. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2707.         opline->op2.zv TSRMLS_CC);
  2708.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  2709.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2710. @@ -14171,7 +14164,7 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDL
  2711.  
  2712.     SAVE_OPLINE();
  2713.     ZVAL_BOOL(result, fast_equal_function(result,
  2714. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2715. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2716.         opline->op2.zv TSRMLS_CC));
  2717.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2718.  
  2719. @@ -14187,7 +14180,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
  2720.  
  2721.     SAVE_OPLINE();
  2722.     ZVAL_BOOL(result, fast_not_equal_function(result,
  2723. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2724. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2725.         opline->op2.zv TSRMLS_CC));
  2726.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2727.  
  2728. @@ -14203,7 +14196,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
  2729.  
  2730.     SAVE_OPLINE();
  2731.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  2732. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2733. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2734.         opline->op2.zv TSRMLS_CC));
  2735.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2736.  
  2737. @@ -14219,7 +14212,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_O
  2738.  
  2739.     SAVE_OPLINE();
  2740.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  2741. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2742. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2743.         opline->op2.zv TSRMLS_CC));
  2744.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2745.  
  2746. @@ -14234,7 +14227,7 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
  2747.  
  2748.     SAVE_OPLINE();
  2749.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  2750. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2751. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2752.         opline->op2.zv TSRMLS_CC);
  2753.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2754.  
  2755. @@ -14249,7 +14242,7 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
  2756.  
  2757.     SAVE_OPLINE();
  2758.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  2759. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2760. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2761.         opline->op2.zv TSRMLS_CC);
  2762.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2763.  
  2764. @@ -14264,7 +14257,7 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
  2765.  
  2766.     SAVE_OPLINE();
  2767.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  2768. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2769. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2770.         opline->op2.zv TSRMLS_CC);
  2771.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2772.  
  2773. @@ -14279,7 +14272,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDL
  2774.  
  2775.     SAVE_OPLINE();
  2776.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  2777. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  2778. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  2779.         opline->op2.zv TSRMLS_CC);
  2780.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2781.  
  2782. @@ -14291,10 +14284,10 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(int (*b
  2783.  {
  2784.     USE_OPLINE
  2785.     zend_free_op free_op1, free_op_data1;
  2786. -   zval **object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2787. +   zval **object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2788.     zval *object;
  2789.     zval *property = opline->op2.zv;
  2790. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  2791. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  2792.     int have_get_ptr = 0;
  2793.  
  2794.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  2795. @@ -14412,7 +14405,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CONST(int (*binar
  2796.             return zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
  2797.             break;
  2798.         case ZEND_ASSIGN_DIM: {
  2799. -               zval **container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2800. +               zval **container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2801.  
  2802.                 if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  2803.                     zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  2804. @@ -14425,14 +14418,14 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CONST(int (*binar
  2805.                     zval *dim = opline->op2.zv;
  2806.  
  2807.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_CONST, BP_VAR_RW TSRMLS_CC);
  2808. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  2809. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  2810. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  2811. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  2812.                 }
  2813.             }
  2814.             break;
  2815.         default:
  2816.             value = opline->op2.zv;
  2817. -           var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2818. +           var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2819.             /* do nothing */
  2820.             break;
  2821.     }
  2822. @@ -14554,7 +14547,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CONST(incdec_t
  2823.     int have_get_ptr = 0;
  2824.  
  2825.     SAVE_OPLINE();
  2826. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2827. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2828.     property = opline->op2.zv;
  2829.     retval = &EX_T(opline->result.var).var.ptr;
  2830.  
  2831. @@ -14658,7 +14651,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CONST(incdec_
  2832.     int have_get_ptr = 0;
  2833.  
  2834.     SAVE_OPLINE();
  2835. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2836. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2837.     property = opline->op2.zv;
  2838.     retval = &EX_T(opline->result.var).tmp_var;
  2839.  
  2840. @@ -14760,7 +14753,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type,
  2841.     ulong hash_value;
  2842.  
  2843.     SAVE_OPLINE();
  2844. -   varname = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2845. +   varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2846.  
  2847.     if (IS_VAR != IS_CONST && UNEXPECTED(Z_TYPE_P(varname) != IS_STRING)) {
  2848.         ZVAL_COPY_VALUE(&tmp_varname, varname);
  2849. @@ -14928,12 +14921,12 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
  2850.     }
  2851.  
  2852.     if (IS_VAR == IS_TMP_VAR || IS_VAR == IS_CONST) {
  2853. -       zval *container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2854. +       zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2855.         zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
  2856.  
  2857.         if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2858.     } else {
  2859. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2860. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2861.         zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
  2862.  
  2863.         if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2864. @@ -14950,7 +14943,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
  2865.     zval **container;
  2866.  
  2867.     SAVE_OPLINE();
  2868. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2869. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2870.  
  2871.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  2872.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  2873. @@ -14984,7 +14977,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
  2874.     zval **container;
  2875.  
  2876.     SAVE_OPLINE();
  2877. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2878. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2879.  
  2880.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  2881.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  2882. @@ -15006,7 +14999,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_IS_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
  2883.     zval **container;
  2884.  
  2885.     SAVE_OPLINE();
  2886. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2887. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2888.     zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_IS TSRMLS_CC);
  2889.  
  2890.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  2891. @@ -15023,7 +15016,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
  2892.     SAVE_OPLINE();
  2893.  
  2894.     if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
  2895. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2896. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2897.         if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  2898.             zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  2899.         }
  2900. @@ -15035,7 +15028,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
  2901.         if (IS_CONST == IS_UNUSED) {
  2902.             zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
  2903.         }
  2904. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2905. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2906.         zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
  2907.     }
  2908.  
  2909. @@ -15051,7 +15044,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD
  2910.     zval **container;
  2911.  
  2912.     SAVE_OPLINE();
  2913. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2914. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2915.  
  2916.     if (IS_VAR == IS_CV) {
  2917.         if (container != &EG(uninitialized_zval_ptr)) {
  2918. @@ -15093,7 +15086,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CONST(
  2919.     zval *offset;
  2920.  
  2921.     SAVE_OPLINE();
  2922. -   container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2923. +   container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2924.     offset  = opline->op2.zv;
  2925.  
  2926.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  2927. @@ -15150,7 +15143,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
  2928.     if (0) {
  2929.         MAKE_REAL_ZVAL_PTR(property);
  2930.     }
  2931. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2932. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2933.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  2934.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an object");
  2935.     }
  2936. @@ -15190,7 +15183,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
  2937.  
  2938.     SAVE_OPLINE();
  2939.     property = opline->op2.zv;
  2940. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2941. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2942.  
  2943.     if (0) {
  2944.         MAKE_REAL_ZVAL_PTR(property);
  2945. @@ -15221,7 +15214,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
  2946.     zval *offset;
  2947.  
  2948.     SAVE_OPLINE();
  2949. -   container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2950. +   container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2951.     offset  = opline->op2.zv;
  2952.  
  2953.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  2954. @@ -15266,7 +15259,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
  2955.  
  2956.         SAVE_OPLINE();
  2957.         property = opline->op2.zv;
  2958. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2959. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2960.  
  2961.         if (0) {
  2962.             MAKE_REAL_ZVAL_PTR(property);
  2963. @@ -15299,7 +15292,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD
  2964.     zval *property;
  2965.  
  2966.     SAVE_OPLINE();
  2967. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2968. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2969.     property = opline->op2.zv;
  2970.  
  2971.     if (IS_VAR == IS_CV) {
  2972. @@ -15342,7 +15335,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
  2973.     zval *property_name;
  2974.  
  2975.     SAVE_OPLINE();
  2976. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2977. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2978.     property_name = opline->op2.zv;
  2979.  
  2980.     if (0) {
  2981. @@ -15351,7 +15344,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
  2982.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  2983.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  2984.     }
  2985. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  2986. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  2987.     if (0) {
  2988.         zval_ptr_dtor(&property_name);
  2989.     } else {
  2990. @@ -15371,7 +15364,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
  2991.     zval **object_ptr;
  2992.  
  2993.     SAVE_OPLINE();
  2994. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  2995. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  2996.  
  2997.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  2998.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  2999. @@ -15383,7 +15376,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
  3000.         if (0) {
  3001.             MAKE_REAL_ZVAL_PTR(property_name);
  3002.         }
  3003. -       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_DIM, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  3004. +       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_DIM, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  3005.         if (0) {
  3006.             zval_ptr_dtor(&property_name);
  3007.         } else {
  3008. @@ -15397,8 +15390,8 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
  3009.  
  3010.         zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_CONST, BP_VAR_W TSRMLS_CC);
  3011.  
  3012. -       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  3013. -       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  3014. +       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  3015. +       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  3016.         if (UNEXPECTED(variable_ptr_ptr == NULL)) {
  3017.             if (zend_assign_to_string_offset(&EX_T((opline+1)->op2.var), value, (opline+1)->op1_type TSRMLS_CC)) {
  3018.                 if (RETURN_VALUE_USED(opline)) {
  3019. @@ -15453,7 +15446,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
  3020.  
  3021.     SAVE_OPLINE();
  3022.     value = opline->op2.zv;
  3023. -   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3024. +   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3025.  
  3026.     if (IS_VAR == IS_VAR && UNEXPECTED(variable_ptr_ptr == NULL)) {
  3027.         if (zend_assign_to_string_offset(&EX_T(opline->op1.var), value, IS_CONST TSRMLS_CC)) {
  3028. @@ -15520,7 +15513,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO
  3029.     function_name_strval = Z_STRVAL_P(function_name);
  3030.     function_name_strlen = Z_STRLEN_P(function_name);
  3031.  
  3032. -   call->object = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3033. +   call->object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3034.  
  3035.     if (EXPECTED(call->object != NULL) &&
  3036.         EXPECTED(Z_TYPE_P(call->object) == IS_OBJECT)) {
  3037. @@ -15700,7 +15693,7 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
  3038.         PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
  3039.     }
  3040.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  3041. -                _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3042. +                _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3043.                  opline->op2.zv TSRMLS_CC);
  3044.  
  3045.     CHECK_EXCEPTION();
  3046. @@ -15807,7 +15800,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPC
  3047.  
  3048.     SAVE_OPLINE();
  3049.     if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
  3050. -       zval **expr_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3051. +       zval **expr_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3052.  
  3053.         if (IS_VAR == IS_VAR && UNEXPECTED(expr_ptr_ptr == NULL)) {
  3054.             zend_error_noreturn(E_ERROR, "Cannot create references to/from string offsets");
  3055. @@ -15816,7 +15809,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPC
  3056.         expr_ptr = *expr_ptr_ptr;
  3057.         Z_ADDREF_P(expr_ptr);
  3058.     } else {
  3059. -       expr_ptr=_get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3060. +       expr_ptr=_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3061.         if (0) { /* temporary variable */
  3062.             zval *new_expr;
  3063.  
  3064. @@ -15923,7 +15916,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
  3065.         ZEND_VM_NEXT_OPCODE();
  3066.     }
  3067.  
  3068. -   varname = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3069. +   varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3070.  
  3071.     if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  3072.         ZVAL_COPY_VALUE(&tmp, varname);
  3073. @@ -15984,7 +15977,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
  3074.     ulong hval;
  3075.  
  3076.     SAVE_OPLINE();
  3077. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3078. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3079.     if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  3080.         SEPARATE_ZVAL_IF_NOT_REF(container);
  3081.     }
  3082. @@ -16083,7 +16076,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
  3083.     zval *offset;
  3084.  
  3085.     SAVE_OPLINE();
  3086. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3087. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3088.     offset = opline->op2.zv;
  3089.  
  3090.     if (IS_VAR != IS_VAR || container) {
  3091. @@ -16140,7 +16133,7 @@ static int ZEND_FASTCALL  ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPC
  3092.     } else {
  3093.         HashTable *target_symbol_table;
  3094.         zend_free_op free_op1;
  3095. -       zval tmp, *varname = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3096. +       zval tmp, *varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3097.  
  3098.         if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  3099.             ZVAL_COPY_VALUE(&tmp, varname);
  3100. @@ -16212,7 +16205,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CONST(
  3101.     zval *offset;
  3102.  
  3103.     SAVE_OPLINE();
  3104. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3105. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3106.  
  3107.     offset = opline->op2.zv;
  3108.  
  3109. @@ -16388,7 +16381,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
  3110.  
  3111.                 zend_error(E_NOTICE, "Only variable references should be yielded by reference");
  3112.  
  3113. -               value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3114. +               value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3115.                 ALLOC_ZVAL(copy);
  3116.                 INIT_PZVAL_COPY(copy, value);
  3117.  
  3118. @@ -16399,7 +16392,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
  3119.  
  3120.                 generator->value = copy;
  3121.             } else {
  3122. -               zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3123. +               zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3124.  
  3125.                 if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
  3126.                     zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
  3127. @@ -16424,7 +16417,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
  3128.                 if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3129.             }
  3130.         } else {
  3131. -           zval *value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3132. +           zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3133.  
  3134.             /* Consts, temporary variables and references need copying */
  3135.             if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
  3136. @@ -16518,8 +16511,8 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  3137.  
  3138.     SAVE_OPLINE();
  3139.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  3140. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3141. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3142. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3143. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3144.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3145.     zval_dtor(free_op2.var);
  3146.     CHECK_EXCEPTION();
  3147. @@ -16533,8 +16526,8 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  3148.  
  3149.     SAVE_OPLINE();
  3150.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  3151. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3152. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3153. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3154. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3155.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3156.     zval_dtor(free_op2.var);
  3157.     CHECK_EXCEPTION();
  3158. @@ -16548,8 +16541,8 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  3159.  
  3160.     SAVE_OPLINE();
  3161.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  3162. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3163. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3164. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3165. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3166.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3167.     zval_dtor(free_op2.var);
  3168.     CHECK_EXCEPTION();
  3169. @@ -16563,8 +16556,8 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  3170.  
  3171.     SAVE_OPLINE();
  3172.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  3173. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3174. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3175. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3176. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3177.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3178.     zval_dtor(free_op2.var);
  3179.     CHECK_EXCEPTION();
  3180. @@ -16578,8 +16571,8 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  3181.  
  3182.     SAVE_OPLINE();
  3183.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  3184. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3185. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3186. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3187. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3188.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3189.     zval_dtor(free_op2.var);
  3190.     CHECK_EXCEPTION();
  3191. @@ -16593,8 +16586,8 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  3192.  
  3193.     SAVE_OPLINE();
  3194.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  3195. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3196. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3197. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3198. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3199.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3200.     zval_dtor(free_op2.var);
  3201.     CHECK_EXCEPTION();
  3202. @@ -16608,8 +16601,8 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  3203.  
  3204.     SAVE_OPLINE();
  3205.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  3206. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3207. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3208. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3209. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3210.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3211.     zval_dtor(free_op2.var);
  3212.     CHECK_EXCEPTION();
  3213. @@ -16623,8 +16616,8 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
  3214.  
  3215.     SAVE_OPLINE();
  3216.     concat_function(&EX_T(opline->result.var).tmp_var,
  3217. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3218. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3219. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3220. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3221.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3222.     zval_dtor(free_op2.var);
  3223.     CHECK_EXCEPTION();
  3224. @@ -16638,8 +16631,8 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
  3225.  
  3226.     SAVE_OPLINE();
  3227.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  3228. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3229. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3230. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3231. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3232.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3233.     zval_dtor(free_op2.var);
  3234.     CHECK_EXCEPTION();
  3235. @@ -16654,8 +16647,8 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE
  3236.  
  3237.     SAVE_OPLINE();
  3238.     is_identical_function(result,
  3239. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3240. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3241. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3242. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3243.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  3244.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3245.     zval_dtor(free_op2.var);
  3246. @@ -16671,8 +16664,8 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER
  3247.  
  3248.     SAVE_OPLINE();
  3249.     ZVAL_BOOL(result, fast_equal_function(result,
  3250. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3251. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  3252. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3253. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  3254.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3255.     zval_dtor(free_op2.var);
  3256.     CHECK_EXCEPTION();
  3257. @@ -16687,8 +16680,8 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
  3258.  
  3259.     SAVE_OPLINE();
  3260.     ZVAL_BOOL(result, fast_not_equal_function(result,
  3261. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3262. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  3263. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3264. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  3265.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3266.     zval_dtor(free_op2.var);
  3267.     CHECK_EXCEPTION();
  3268. @@ -16703,8 +16696,8 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
  3269.  
  3270.     SAVE_OPLINE();
  3271.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  3272. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3273. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  3274. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3275. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  3276.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3277.     zval_dtor(free_op2.var);
  3278.     CHECK_EXCEPTION();
  3279. @@ -16719,8 +16712,8 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPC
  3280.  
  3281.     SAVE_OPLINE();
  3282.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  3283. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3284. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  3285. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3286. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  3287.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3288.     zval_dtor(free_op2.var);
  3289.     CHECK_EXCEPTION();
  3290. @@ -16734,8 +16727,8 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  3291.  
  3292.     SAVE_OPLINE();
  3293.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  3294. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3295. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3296. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3297. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3298.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3299.     zval_dtor(free_op2.var);
  3300.     CHECK_EXCEPTION();
  3301. @@ -16749,8 +16742,8 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
  3302.  
  3303.     SAVE_OPLINE();
  3304.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  3305. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3306. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3307. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3308. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3309.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3310.     zval_dtor(free_op2.var);
  3311.     CHECK_EXCEPTION();
  3312. @@ -16764,8 +16757,8 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
  3313.  
  3314.     SAVE_OPLINE();
  3315.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  3316. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3317. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3318. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3319. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3320.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3321.     zval_dtor(free_op2.var);
  3322.     CHECK_EXCEPTION();
  3323. @@ -16779,8 +16772,8 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER
  3324.  
  3325.     SAVE_OPLINE();
  3326.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  3327. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3328. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3329. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3330. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3331.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3332.     zval_dtor(free_op2.var);
  3333.     CHECK_EXCEPTION();
  3334. @@ -16791,10 +16784,10 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(int (*bin
  3335.  {
  3336.     USE_OPLINE
  3337.     zend_free_op free_op1, free_op2, free_op_data1;
  3338. -   zval **object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3339. +   zval **object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3340.     zval *object;
  3341. -   zval *property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3342. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  3343. +   zval *property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3344. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  3345.     int have_get_ptr = 0;
  3346.  
  3347.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  3348. @@ -16912,7 +16905,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_TMP(int (*binary_
  3349.             return zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
  3350.             break;
  3351.         case ZEND_ASSIGN_DIM: {
  3352. -               zval **container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3353. +               zval **container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3354.  
  3355.                 if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  3356.                     zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  3357. @@ -16922,17 +16915,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_TMP(int (*binary_
  3358.                     }
  3359.                     return zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
  3360.                 } else {
  3361. -                   zval *dim = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3362. +                   zval *dim = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3363.  
  3364.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_TMP_VAR, BP_VAR_RW TSRMLS_CC);
  3365. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  3366. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  3367. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  3368. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  3369.                 }
  3370.             }
  3371.             break;
  3372.         default:
  3373. -           value = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3374. -           var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3375. +           value = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3376. +           var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3377.             /* do nothing */
  3378.             break;
  3379.     }
  3380. @@ -17055,8 +17048,8 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_TMP(incdec_t i
  3381.     int have_get_ptr = 0;
  3382.  
  3383.     SAVE_OPLINE();
  3384. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3385. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3386. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3387. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3388.     retval = &EX_T(opline->result.var).var.ptr;
  3389.  
  3390.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  3391. @@ -17159,8 +17152,8 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_TMP(incdec_t
  3392.     int have_get_ptr = 0;
  3393.  
  3394.     SAVE_OPLINE();
  3395. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3396. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3397. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3398. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3399.     retval = &EX_T(opline->result.var).tmp_var;
  3400.  
  3401.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  3402. @@ -17265,13 +17258,13 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
  3403.     }
  3404.  
  3405.     if (IS_VAR == IS_TMP_VAR || IS_VAR == IS_CONST) {
  3406. -       zval *container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3407. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  3408. +       zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3409. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  3410.         zval_dtor(free_op2.var);
  3411.         if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3412.     } else {
  3413. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3414. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  3415. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3416. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  3417.         zval_dtor(free_op2.var);
  3418.         if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3419.     }
  3420. @@ -17287,12 +17280,12 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
  3421.     zval **container;
  3422.  
  3423.     SAVE_OPLINE();
  3424. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3425. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3426.  
  3427.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  3428.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  3429.     }
  3430. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
  3431. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
  3432.     zval_dtor(free_op2.var);
  3433.     if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
  3434.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  3435. @@ -17321,12 +17314,12 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
  3436.     zval **container;
  3437.  
  3438.     SAVE_OPLINE();
  3439. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3440. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3441.  
  3442.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  3443.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  3444.     }
  3445. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_RW TSRMLS_CC);
  3446. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_RW TSRMLS_CC);
  3447.     zval_dtor(free_op2.var);
  3448.     if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
  3449.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  3450. @@ -17343,8 +17336,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_IS_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
  3451.     zval **container;
  3452.  
  3453.     SAVE_OPLINE();
  3454. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3455. -   zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_IS TSRMLS_CC);
  3456. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3457. +   zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_IS TSRMLS_CC);
  3458.     zval_dtor(free_op2.var);
  3459.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3460.     CHECK_EXCEPTION();
  3461. @@ -17360,11 +17353,11 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
  3462.     SAVE_OPLINE();
  3463.  
  3464.     if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
  3465. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3466. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3467.         if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  3468.             zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  3469.         }
  3470. -       zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
  3471. +       zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
  3472.         if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
  3473.             EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  3474.         }
  3475. @@ -17372,8 +17365,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
  3476.         if (IS_TMP_VAR == IS_UNUSED) {
  3477.             zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
  3478.         }
  3479. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3480. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  3481. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3482. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  3483.     }
  3484.     zval_dtor(free_op2.var);
  3485.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3486. @@ -17388,7 +17381,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_
  3487.     zval **container;
  3488.  
  3489.     SAVE_OPLINE();
  3490. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3491. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3492.  
  3493.     if (IS_VAR == IS_CV) {
  3494.         if (container != &EG(uninitialized_zval_ptr)) {
  3495. @@ -17398,7 +17391,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_
  3496.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  3497.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  3498.     }
  3499. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_UNSET TSRMLS_CC);
  3500. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_UNSET TSRMLS_CC);
  3501.     zval_dtor(free_op2.var);
  3502.     if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
  3503.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  3504. @@ -17430,8 +17423,8 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_TMP(ZE
  3505.     zval *offset;
  3506.  
  3507.     SAVE_OPLINE();
  3508. -   container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3509. -   offset  = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3510. +   container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3511. +   offset  = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3512.  
  3513.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  3514.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  3515. @@ -17477,7 +17470,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
  3516.     zval **container;
  3517.  
  3518.     SAVE_OPLINE();
  3519. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3520. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3521.  
  3522.     if (IS_VAR == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
  3523.         PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
  3524. @@ -17487,7 +17480,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
  3525.     if (1) {
  3526.         MAKE_REAL_ZVAL_PTR(property);
  3527.     }
  3528. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3529. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3530.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  3531.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an object");
  3532.     }
  3533. @@ -17526,8 +17519,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
  3534.     zval **container;
  3535.  
  3536.     SAVE_OPLINE();
  3537. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3538. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3539. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3540. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3541.  
  3542.     if (1) {
  3543.         MAKE_REAL_ZVAL_PTR(property);
  3544. @@ -17558,8 +17551,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
  3545.     zval *offset;
  3546.  
  3547.     SAVE_OPLINE();
  3548. -   container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3549. -   offset  = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3550. +   container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3551. +   offset  = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3552.  
  3553.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  3554.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  3555. @@ -17602,8 +17595,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
  3556.         zval **container;
  3557.  
  3558.         SAVE_OPLINE();
  3559. -       property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3560. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3561. +       property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3562. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3563.  
  3564.         if (1) {
  3565.             MAKE_REAL_ZVAL_PTR(property);
  3566. @@ -17636,8 +17629,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_
  3567.     zval *property;
  3568.  
  3569.     SAVE_OPLINE();
  3570. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3571. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3572. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3573. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3574.  
  3575.     if (IS_VAR == IS_CV) {
  3576.         if (container != &EG(uninitialized_zval_ptr)) {
  3577. @@ -17679,8 +17672,8 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
  3578.     zval *property_name;
  3579.  
  3580.     SAVE_OPLINE();
  3581. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3582. -   property_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3583. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3584. +   property_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3585.  
  3586.     if (1) {
  3587.         MAKE_REAL_ZVAL_PTR(property_name);
  3588. @@ -17688,7 +17681,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
  3589.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  3590.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  3591.     }
  3592. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  3593. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  3594.     if (1) {
  3595.         zval_ptr_dtor(&property_name);
  3596.     } else {
  3597. @@ -17708,19 +17701,19 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
  3598.     zval **object_ptr;
  3599.  
  3600.     SAVE_OPLINE();
  3601. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3602. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3603.  
  3604.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  3605.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  3606.     }
  3607.     if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
  3608.         zend_free_op free_op2;
  3609. -       zval *property_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3610. +       zval *property_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3611.  
  3612.         if (1) {
  3613.             MAKE_REAL_ZVAL_PTR(property_name);
  3614.         }
  3615. -       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_DIM, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  3616. +       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_DIM, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  3617.         if (1) {
  3618.             zval_ptr_dtor(&property_name);
  3619.         } else {
  3620. @@ -17729,14 +17722,14 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
  3621.     } else {
  3622.         zend_free_op free_op2, free_op_data1, free_op_data2;
  3623.         zval *value;
  3624. -       zval *dim = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3625. +       zval *dim = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3626.         zval **variable_ptr_ptr;
  3627.  
  3628.         zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
  3629.         zval_dtor(free_op2.var);
  3630.  
  3631. -       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  3632. -       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  3633. +       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  3634. +       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  3635.         if (UNEXPECTED(variable_ptr_ptr == NULL)) {
  3636.             if (zend_assign_to_string_offset(&EX_T((opline+1)->op2.var), value, (opline+1)->op1_type TSRMLS_CC)) {
  3637.                 if (RETURN_VALUE_USED(opline)) {
  3638. @@ -17790,8 +17783,8 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
  3639.     zval **variable_ptr_ptr;
  3640.  
  3641.     SAVE_OPLINE();
  3642. -   value = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3643. -   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3644. +   value = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3645. +   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3646.  
  3647.     if (IS_VAR == IS_VAR && UNEXPECTED(variable_ptr_ptr == NULL)) {
  3648.         if (zend_assign_to_string_offset(&EX_T(opline->op1.var), value, IS_TMP_VAR TSRMLS_CC)) {
  3649. @@ -17848,7 +17841,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE
  3650.  
  3651.     SAVE_OPLINE();
  3652.  
  3653. -   function_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3654. +   function_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3655.  
  3656.     if (IS_TMP_VAR != IS_CONST &&
  3657.         UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  3658. @@ -17858,7 +17851,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE
  3659.     function_name_strval = Z_STRVAL_P(function_name);
  3660.     function_name_strlen = Z_STRLEN_P(function_name);
  3661.  
  3662. -   call->object = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3663. +   call->object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3664.  
  3665.     if (EXPECTED(call->object != NULL) &&
  3666.         EXPECTED(Z_TYPE_P(call->object) == IS_OBJECT)) {
  3667. @@ -17960,7 +17953,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND
  3668.             function_name_strval = Z_STRVAL_P(opline->op2.zv);
  3669.             function_name_strlen = Z_STRLEN_P(opline->op2.zv);
  3670.         } else {
  3671. -           function_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3672. +           function_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3673.  
  3674.             if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  3675.                 zend_error_noreturn(E_ERROR, "Function name must be a string");
  3676. @@ -18039,8 +18032,8 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
  3677.         PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
  3678.     }
  3679.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  3680. -                _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3681. -                _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3682. +                _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3683. +                _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3684.  
  3685.     zval_dtor(free_op2.var);
  3686.     CHECK_EXCEPTION();
  3687. @@ -18055,7 +18048,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMP_HANDLER(ZEND_OPCOD
  3688.  
  3689.     SAVE_OPLINE();
  3690.     if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
  3691. -       zval **expr_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3692. +       zval **expr_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3693.  
  3694.         if (IS_VAR == IS_VAR && UNEXPECTED(expr_ptr_ptr == NULL)) {
  3695.             zend_error_noreturn(E_ERROR, "Cannot create references to/from string offsets");
  3696. @@ -18064,7 +18057,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMP_HANDLER(ZEND_OPCOD
  3697.         expr_ptr = *expr_ptr_ptr;
  3698.         Z_ADDREF_P(expr_ptr);
  3699.     } else {
  3700. -       expr_ptr=_get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3701. +       expr_ptr=_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3702.         if (0) { /* temporary variable */
  3703.             zval *new_expr;
  3704.  
  3705. @@ -18085,7 +18078,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMP_HANDLER(ZEND_OPCOD
  3706.  
  3707.     if (IS_TMP_VAR != IS_UNUSED) {
  3708.         zend_free_op free_op2;
  3709. -       zval *offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3710. +       zval *offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3711.         ulong hval;
  3712.  
  3713.         switch (Z_TYPE_P(offset)) {
  3714. @@ -18156,11 +18149,11 @@ static int ZEND_FASTCALL  ZEND_UNSET_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLE
  3715.     ulong hval;
  3716.  
  3717.     SAVE_OPLINE();
  3718. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3719. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3720.     if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  3721.         SEPARATE_ZVAL_IF_NOT_REF(container);
  3722.     }
  3723. -   offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3724. +   offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3725.  
  3726.     if (IS_VAR != IS_VAR || container) {
  3727.         switch (Z_TYPE_PP(container)) {
  3728. @@ -18255,8 +18248,8 @@ static int ZEND_FASTCALL  ZEND_UNSET_OBJ_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLE
  3729.     zval *offset;
  3730.  
  3731.     SAVE_OPLINE();
  3732. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3733. -   offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3734. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3735. +   offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3736.  
  3737.     if (IS_VAR != IS_VAR || container) {
  3738.         if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  3739. @@ -18299,9 +18292,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_TMP(in
  3740.     zval *offset;
  3741.  
  3742.     SAVE_OPLINE();
  3743. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3744. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3745.  
  3746. -   offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3747. +   offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3748.  
  3749.     if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
  3750.         HashTable *ht;
  3751. @@ -18475,7 +18468,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  3752.  
  3753.                 zend_error(E_NOTICE, "Only variable references should be yielded by reference");
  3754.  
  3755. -               value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3756. +               value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3757.                 ALLOC_ZVAL(copy);
  3758.                 INIT_PZVAL_COPY(copy, value);
  3759.  
  3760. @@ -18486,7 +18479,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  3761.  
  3762.                 generator->value = copy;
  3763.             } else {
  3764. -               zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3765. +               zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3766.  
  3767.                 if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
  3768.                     zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
  3769. @@ -18511,7 +18504,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  3770.                 if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3771.             }
  3772.         } else {
  3773. -           zval *value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3774. +           zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3775.  
  3776.             /* Consts, temporary variables and references need copying */
  3777.             if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
  3778. @@ -18544,7 +18537,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  3779.     /* Set the new yielded key */
  3780.     if (IS_TMP_VAR != IS_UNUSED) {
  3781.         zend_free_op free_op2;
  3782. -       zval *key = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3783. +       zval *key = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3784.  
  3785.         /* Consts, temporary variables and references need copying */
  3786.         if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
  3787. @@ -18605,8 +18598,8 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  3788.  
  3789.     SAVE_OPLINE();
  3790.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  3791. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3792. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3793. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3794. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3795.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3796.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3797.     CHECK_EXCEPTION();
  3798. @@ -18620,8 +18613,8 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  3799.  
  3800.     SAVE_OPLINE();
  3801.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  3802. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3803. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3804. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3805. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3806.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3807.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3808.     CHECK_EXCEPTION();
  3809. @@ -18635,8 +18628,8 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  3810.  
  3811.     SAVE_OPLINE();
  3812.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  3813. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3814. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3815. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3816. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3817.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3818.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3819.     CHECK_EXCEPTION();
  3820. @@ -18650,8 +18643,8 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  3821.  
  3822.     SAVE_OPLINE();
  3823.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  3824. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3825. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3826. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3827. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3828.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3829.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3830.     CHECK_EXCEPTION();
  3831. @@ -18665,8 +18658,8 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  3832.  
  3833.     SAVE_OPLINE();
  3834.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  3835. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3836. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3837. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3838. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3839.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3840.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3841.     CHECK_EXCEPTION();
  3842. @@ -18680,8 +18673,8 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  3843.  
  3844.     SAVE_OPLINE();
  3845.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  3846. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3847. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3848. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3849. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3850.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3851.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3852.     CHECK_EXCEPTION();
  3853. @@ -18695,8 +18688,8 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  3854.  
  3855.     SAVE_OPLINE();
  3856.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  3857. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3858. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3859. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3860. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3861.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3862.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3863.     CHECK_EXCEPTION();
  3864. @@ -18710,8 +18703,8 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
  3865.  
  3866.     SAVE_OPLINE();
  3867.     concat_function(&EX_T(opline->result.var).tmp_var,
  3868. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3869. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3870. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3871. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3872.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3873.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3874.     CHECK_EXCEPTION();
  3875. @@ -18725,8 +18718,8 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
  3876.  
  3877.     SAVE_OPLINE();
  3878.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  3879. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3880. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3881. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3882. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3883.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3884.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3885.     CHECK_EXCEPTION();
  3886. @@ -18741,8 +18734,8 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE
  3887.  
  3888.     SAVE_OPLINE();
  3889.     is_identical_function(result,
  3890. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3891. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3892. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3893. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3894.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  3895.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3896.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3897. @@ -18758,8 +18751,8 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER
  3898.  
  3899.     SAVE_OPLINE();
  3900.     ZVAL_BOOL(result, fast_equal_function(result,
  3901. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3902. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  3903. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3904. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  3905.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3906.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3907.     CHECK_EXCEPTION();
  3908. @@ -18774,8 +18767,8 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
  3909.  
  3910.     SAVE_OPLINE();
  3911.     ZVAL_BOOL(result, fast_not_equal_function(result,
  3912. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3913. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  3914. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3915. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  3916.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3917.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3918.     CHECK_EXCEPTION();
  3919. @@ -18790,8 +18783,8 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
  3920.  
  3921.     SAVE_OPLINE();
  3922.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  3923. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3924. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  3925. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3926. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  3927.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3928.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3929.     CHECK_EXCEPTION();
  3930. @@ -18806,8 +18799,8 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPC
  3931.  
  3932.     SAVE_OPLINE();
  3933.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  3934. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3935. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  3936. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3937. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  3938.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3939.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3940.     CHECK_EXCEPTION();
  3941. @@ -18821,8 +18814,8 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  3942.  
  3943.     SAVE_OPLINE();
  3944.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  3945. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3946. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3947. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3948. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3949.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3950.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3951.     CHECK_EXCEPTION();
  3952. @@ -18836,8 +18829,8 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
  3953.  
  3954.     SAVE_OPLINE();
  3955.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  3956. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3957. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3958. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3959. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3960.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3961.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3962.     CHECK_EXCEPTION();
  3963. @@ -18851,8 +18844,8 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
  3964.  
  3965.     SAVE_OPLINE();
  3966.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  3967. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3968. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3969. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3970. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3971.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3972.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3973.     CHECK_EXCEPTION();
  3974. @@ -18866,8 +18859,8 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER
  3975.  
  3976.     SAVE_OPLINE();
  3977.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  3978. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  3979. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  3980. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  3981. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  3982.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  3983.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  3984.     CHECK_EXCEPTION();
  3985. @@ -18878,10 +18871,10 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(int (*bin
  3986.  {
  3987.     USE_OPLINE
  3988.     zend_free_op free_op1, free_op2, free_op_data1;
  3989. -   zval **object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  3990. +   zval **object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  3991.     zval *object;
  3992. -   zval *property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  3993. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  3994. +   zval *property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  3995. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  3996.     int have_get_ptr = 0;
  3997.  
  3998.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  3999. @@ -18999,7 +18992,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_VAR(int (*binary_
  4000.             return zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
  4001.             break;
  4002.         case ZEND_ASSIGN_DIM: {
  4003. -               zval **container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4004. +               zval **container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4005.  
  4006.                 if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4007.                     zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4008. @@ -19009,17 +19002,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_VAR(int (*binary_
  4009.                     }
  4010.                     return zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
  4011.                 } else {
  4012. -                   zval *dim = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4013. +                   zval *dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4014.  
  4015.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_VAR, BP_VAR_RW TSRMLS_CC);
  4016. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  4017. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  4018. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  4019. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  4020.                 }
  4021.             }
  4022.             break;
  4023.         default:
  4024. -           value = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4025. -           var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4026. +           value = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4027. +           var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4028.             /* do nothing */
  4029.             break;
  4030.     }
  4031. @@ -19142,8 +19135,8 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_VAR(incdec_t i
  4032.     int have_get_ptr = 0;
  4033.  
  4034.     SAVE_OPLINE();
  4035. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4036. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4037. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4038. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4039.     retval = &EX_T(opline->result.var).var.ptr;
  4040.  
  4041.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  4042. @@ -19246,8 +19239,8 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_VAR(incdec_t
  4043.     int have_get_ptr = 0;
  4044.  
  4045.     SAVE_OPLINE();
  4046. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4047. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4048. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4049. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4050.     retval = &EX_T(opline->result.var).tmp_var;
  4051.  
  4052.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  4053. @@ -19348,7 +19341,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE
  4054.     ulong hash_value;
  4055.  
  4056.     SAVE_OPLINE();
  4057. -   varname = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4058. +   varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4059.  
  4060.     if (IS_VAR != IS_CONST && UNEXPECTED(Z_TYPE_P(varname) != IS_STRING)) {
  4061.         ZVAL_COPY_VALUE(&tmp_varname, varname);
  4062. @@ -19516,13 +19509,13 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
  4063.     }
  4064.  
  4065.     if (IS_VAR == IS_TMP_VAR || IS_VAR == IS_CONST) {
  4066. -       zval *container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4067. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  4068. +       zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4069. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  4070.         if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  4071.         if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4072.     } else {
  4073. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4074. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  4075. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4076. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  4077.         if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  4078.         if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4079.     }
  4080. @@ -19538,12 +19531,12 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
  4081.     zval **container;
  4082.  
  4083.     SAVE_OPLINE();
  4084. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4085. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4086.  
  4087.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4088.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4089.     }
  4090. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
  4091. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
  4092.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  4093.     if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
  4094.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  4095. @@ -19572,12 +19565,12 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
  4096.     zval **container;
  4097.  
  4098.     SAVE_OPLINE();
  4099. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4100. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4101.  
  4102.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4103.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4104.     }
  4105. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC);
  4106. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC);
  4107.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  4108.     if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
  4109.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  4110. @@ -19594,8 +19587,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
  4111.     zval **container;
  4112.  
  4113.     SAVE_OPLINE();
  4114. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4115. -   zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_IS TSRMLS_CC);
  4116. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4117. +   zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_IS TSRMLS_CC);
  4118.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  4119.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4120.     CHECK_EXCEPTION();
  4121. @@ -19611,11 +19604,11 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
  4122.     SAVE_OPLINE();
  4123.  
  4124.     if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
  4125. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4126. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4127.         if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4128.             zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4129.         }
  4130. -       zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
  4131. +       zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
  4132.         if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
  4133.             EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  4134.         }
  4135. @@ -19623,8 +19616,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
  4136.         if (IS_VAR == IS_UNUSED) {
  4137.             zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
  4138.         }
  4139. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4140. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  4141. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4142. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  4143.     }
  4144.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  4145.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4146. @@ -19639,7 +19632,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_
  4147.     zval **container;
  4148.  
  4149.     SAVE_OPLINE();
  4150. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4151. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4152.  
  4153.     if (IS_VAR == IS_CV) {
  4154.         if (container != &EG(uninitialized_zval_ptr)) {
  4155. @@ -19649,7 +19642,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_
  4156.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4157.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4158.     }
  4159. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC);
  4160. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC);
  4161.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  4162.     if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
  4163.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  4164. @@ -19681,8 +19674,8 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_VAR(ZE
  4165.     zval *offset;
  4166.  
  4167.     SAVE_OPLINE();
  4168. -   container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4169. -   offset  = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4170. +   container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4171. +   offset  = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4172.  
  4173.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  4174.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  4175. @@ -19728,7 +19721,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
  4176.     zval **container;
  4177.  
  4178.     SAVE_OPLINE();
  4179. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4180. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4181.  
  4182.     if (IS_VAR == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
  4183.         PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
  4184. @@ -19738,7 +19731,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
  4185.     if (0) {
  4186.         MAKE_REAL_ZVAL_PTR(property);
  4187.     }
  4188. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4189. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4190.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4191.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an object");
  4192.     }
  4193. @@ -19777,8 +19770,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
  4194.     zval **container;
  4195.  
  4196.     SAVE_OPLINE();
  4197. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4198. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4199. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4200. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4201.  
  4202.     if (0) {
  4203.         MAKE_REAL_ZVAL_PTR(property);
  4204. @@ -19809,8 +19802,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
  4205.     zval *offset;
  4206.  
  4207.     SAVE_OPLINE();
  4208. -   container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4209. -   offset  = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4210. +   container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4211. +   offset  = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4212.  
  4213.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  4214.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  4215. @@ -19853,8 +19846,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
  4216.         zval **container;
  4217.  
  4218.         SAVE_OPLINE();
  4219. -       property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4220. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4221. +       property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4222. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4223.  
  4224.         if (0) {
  4225.             MAKE_REAL_ZVAL_PTR(property);
  4226. @@ -19887,8 +19880,8 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_
  4227.     zval *property;
  4228.  
  4229.     SAVE_OPLINE();
  4230. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4231. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4232. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4233. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4234.  
  4235.     if (IS_VAR == IS_CV) {
  4236.         if (container != &EG(uninitialized_zval_ptr)) {
  4237. @@ -19930,8 +19923,8 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
  4238.     zval *property_name;
  4239.  
  4240.     SAVE_OPLINE();
  4241. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4242. -   property_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4243. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4244. +   property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4245.  
  4246.     if (0) {
  4247.         MAKE_REAL_ZVAL_PTR(property_name);
  4248. @@ -19939,7 +19932,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
  4249.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  4250.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4251.     }
  4252. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  4253. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  4254.     if (0) {
  4255.         zval_ptr_dtor(&property_name);
  4256.     } else {
  4257. @@ -19959,19 +19952,19 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
  4258.     zval **object_ptr;
  4259.  
  4260.     SAVE_OPLINE();
  4261. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4262. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4263.  
  4264.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  4265.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4266.     }
  4267.     if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
  4268.         zend_free_op free_op2;
  4269. -       zval *property_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4270. +       zval *property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4271.  
  4272.         if (0) {
  4273.             MAKE_REAL_ZVAL_PTR(property_name);
  4274.         }
  4275. -       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_DIM, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  4276. +       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_DIM, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  4277.         if (0) {
  4278.             zval_ptr_dtor(&property_name);
  4279.         } else {
  4280. @@ -19980,14 +19973,14 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
  4281.     } else {
  4282.         zend_free_op free_op2, free_op_data1, free_op_data2;
  4283.         zval *value;
  4284. -       zval *dim = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4285. +       zval *dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4286.         zval **variable_ptr_ptr;
  4287.  
  4288.         zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_VAR, BP_VAR_W TSRMLS_CC);
  4289.         if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  4290.  
  4291. -       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  4292. -       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  4293. +       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  4294. +       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  4295.         if (UNEXPECTED(variable_ptr_ptr == NULL)) {
  4296.             if (zend_assign_to_string_offset(&EX_T((opline+1)->op2.var), value, (opline+1)->op1_type TSRMLS_CC)) {
  4297.                 if (RETURN_VALUE_USED(opline)) {
  4298. @@ -20041,8 +20034,8 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
  4299.     zval **variable_ptr_ptr;
  4300.  
  4301.     SAVE_OPLINE();
  4302. -   value = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4303. -   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4304. +   value = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4305. +   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4306.  
  4307.     if (IS_VAR == IS_VAR && UNEXPECTED(variable_ptr_ptr == NULL)) {
  4308.         if (zend_assign_to_string_offset(&EX_T(opline->op1.var), value, IS_VAR TSRMLS_CC)) {
  4309. @@ -20097,7 +20090,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
  4310.     zval **value_ptr_ptr;
  4311.  
  4312.     SAVE_OPLINE();
  4313. -   value_ptr_ptr = _get_zval_ptr_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4314. +   value_ptr_ptr = _get_zval_ptr_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4315.  
  4316.     if (IS_VAR == IS_VAR &&
  4317.         value_ptr_ptr &&
  4318. @@ -20120,7 +20113,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
  4319.         zend_error_noreturn(E_ERROR, "Cannot assign by reference to overloaded object");
  4320.     }
  4321.  
  4322. -   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4323. +   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4324.     if ((IS_VAR == IS_VAR && UNEXPECTED(value_ptr_ptr == NULL)) ||
  4325.         (IS_VAR == IS_VAR && UNEXPECTED(variable_ptr_ptr == NULL))) {
  4326.         zend_error_noreturn(E_ERROR, "Cannot create references to/from string offsets nor overloaded objects");
  4327. @@ -20154,7 +20147,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE
  4328.  
  4329.     SAVE_OPLINE();
  4330.  
  4331. -   function_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4332. +   function_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4333.  
  4334.     if (IS_VAR != IS_CONST &&
  4335.         UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  4336. @@ -20164,7 +20157,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE
  4337.     function_name_strval = Z_STRVAL_P(function_name);
  4338.     function_name_strlen = Z_STRLEN_P(function_name);
  4339.  
  4340. -   call->object = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4341. +   call->object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4342.  
  4343.     if (EXPECTED(call->object != NULL) &&
  4344.         EXPECTED(Z_TYPE_P(call->object) == IS_OBJECT)) {
  4345. @@ -20266,7 +20259,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND
  4346.             function_name_strval = Z_STRVAL_P(opline->op2.zv);
  4347.             function_name_strlen = Z_STRLEN_P(opline->op2.zv);
  4348.         } else {
  4349. -           function_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4350. +           function_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4351.  
  4352.             if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  4353.                 zend_error_noreturn(E_ERROR, "Function name must be a string");
  4354. @@ -20345,8 +20338,8 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  4355.         PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
  4356.     }
  4357.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  4358. -                _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4359. -                _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  4360. +                _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4361. +                _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  4362.  
  4363.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  4364.     CHECK_EXCEPTION();
  4365. @@ -20361,7 +20354,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
  4366.  
  4367.     SAVE_OPLINE();
  4368.     if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
  4369. -       zval **expr_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4370. +       zval **expr_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4371.  
  4372.         if (IS_VAR == IS_VAR && UNEXPECTED(expr_ptr_ptr == NULL)) {
  4373.             zend_error_noreturn(E_ERROR, "Cannot create references to/from string offsets");
  4374. @@ -20370,7 +20363,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
  4375.         expr_ptr = *expr_ptr_ptr;
  4376.         Z_ADDREF_P(expr_ptr);
  4377.     } else {
  4378. -       expr_ptr=_get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4379. +       expr_ptr=_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4380.         if (0) { /* temporary variable */
  4381.             zval *new_expr;
  4382.  
  4383. @@ -20391,7 +20384,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
  4384.  
  4385.     if (IS_VAR != IS_UNUSED) {
  4386.         zend_free_op free_op2;
  4387. -       zval *offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4388. +       zval *offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4389.         ulong hval;
  4390.  
  4391.         switch (Z_TYPE_P(offset)) {
  4392. @@ -20477,7 +20470,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
  4393.         ZEND_VM_NEXT_OPCODE();
  4394.     }
  4395.  
  4396. -   varname = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4397. +   varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4398.  
  4399.     if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  4400.         ZVAL_COPY_VALUE(&tmp, varname);
  4401. @@ -20538,11 +20531,11 @@ static int ZEND_FASTCALL  ZEND_UNSET_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
  4402.     ulong hval;
  4403.  
  4404.     SAVE_OPLINE();
  4405. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4406. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4407.     if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  4408.         SEPARATE_ZVAL_IF_NOT_REF(container);
  4409.     }
  4410. -   offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4411. +   offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4412.  
  4413.     if (IS_VAR != IS_VAR || container) {
  4414.         switch (Z_TYPE_PP(container)) {
  4415. @@ -20637,8 +20630,8 @@ static int ZEND_FASTCALL  ZEND_UNSET_OBJ_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
  4416.     zval *offset;
  4417.  
  4418.     SAVE_OPLINE();
  4419. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4420. -   offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4421. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4422. +   offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4423.  
  4424.     if (IS_VAR != IS_VAR || container) {
  4425.         if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  4426. @@ -20694,7 +20687,7 @@ static int ZEND_FASTCALL  ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
  4427.     } else {
  4428.         HashTable *target_symbol_table;
  4429.         zend_free_op free_op1;
  4430. -       zval tmp, *varname = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4431. +       zval tmp, *varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4432.  
  4433.         if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  4434.             ZVAL_COPY_VALUE(&tmp, varname);
  4435. @@ -20766,9 +20759,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_VAR(in
  4436.     zval *offset;
  4437.  
  4438.     SAVE_OPLINE();
  4439. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4440. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4441.  
  4442. -   offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4443. +   offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4444.  
  4445.     if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
  4446.         HashTable *ht;
  4447. @@ -20942,7 +20935,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  4448.  
  4449.                 zend_error(E_NOTICE, "Only variable references should be yielded by reference");
  4450.  
  4451. -               value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4452. +               value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4453.                 ALLOC_ZVAL(copy);
  4454.                 INIT_PZVAL_COPY(copy, value);
  4455.  
  4456. @@ -20953,7 +20946,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  4457.  
  4458.                 generator->value = copy;
  4459.             } else {
  4460. -               zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4461. +               zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4462.  
  4463.                 if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
  4464.                     zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
  4465. @@ -20978,7 +20971,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  4466.                 if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4467.             }
  4468.         } else {
  4469. -           zval *value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4470. +           zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4471.  
  4472.             /* Consts, temporary variables and references need copying */
  4473.             if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
  4474. @@ -21011,7 +21004,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  4475.     /* Set the new yielded key */
  4476.     if (IS_VAR != IS_UNUSED) {
  4477.         zend_free_op free_op2;
  4478. -       zval *key = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  4479. +       zval *key = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  4480.  
  4481.         /* Consts, temporary variables and references need copying */
  4482.         if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
  4483. @@ -21070,10 +21063,10 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (*
  4484.  {
  4485.     USE_OPLINE
  4486.     zend_free_op free_op1, free_op_data1;
  4487. -   zval **object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4488. +   zval **object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4489.     zval *object;
  4490.     zval *property = NULL;
  4491. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  4492. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  4493.     int have_get_ptr = 0;
  4494.  
  4495.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  4496. @@ -21191,7 +21184,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_UNUSED(int (*bina
  4497.             return zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
  4498.             break;
  4499.         case ZEND_ASSIGN_DIM: {
  4500. -               zval **container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4501. +               zval **container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4502.  
  4503.                 if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4504.                     zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4505. @@ -21204,14 +21197,14 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_UNUSED(int (*bina
  4506.                     zval *dim = NULL;
  4507.  
  4508.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_UNUSED, BP_VAR_RW TSRMLS_CC);
  4509. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  4510. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  4511. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  4512. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  4513.                 }
  4514.             }
  4515.             break;
  4516.         default:
  4517.             value = NULL;
  4518. -           var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4519. +           var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4520.             /* do nothing */
  4521.             break;
  4522.     }
  4523. @@ -21333,7 +21326,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type,
  4524.     ulong hash_value;
  4525.  
  4526.     SAVE_OPLINE();
  4527. -   varname = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4528. +   varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4529.  
  4530.     if (IS_VAR != IS_CONST && UNEXPECTED(Z_TYPE_P(varname) != IS_STRING)) {
  4531.         ZVAL_COPY_VALUE(&tmp_varname, varname);
  4532. @@ -21493,7 +21486,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_H
  4533.     zval **container;
  4534.  
  4535.     SAVE_OPLINE();
  4536. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4537. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4538.  
  4539.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4540.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4541. @@ -21527,7 +21520,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_
  4542.     zval **container;
  4543.  
  4544.     SAVE_OPLINE();
  4545. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4546. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4547.  
  4548.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4549.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4550. @@ -21551,7 +21544,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_O
  4551.     SAVE_OPLINE();
  4552.  
  4553.     if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
  4554. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4555. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4556.         if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4557.             zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4558.         }
  4559. @@ -21563,7 +21556,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_O
  4560.         if (IS_UNUSED == IS_UNUSED) {
  4561.             zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
  4562.         }
  4563. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4564. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4565.         zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, NULL, IS_UNUSED, BP_VAR_R TSRMLS_CC);
  4566.     }
  4567.  
  4568. @@ -21579,7 +21572,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HA
  4569.     zval **object_ptr;
  4570.  
  4571.     SAVE_OPLINE();
  4572. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4573. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4574.  
  4575.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  4576.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4577. @@ -21591,7 +21584,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HA
  4578.         if (0) {
  4579.             MAKE_REAL_ZVAL_PTR(property_name);
  4580.         }
  4581. -       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_DIM, ((IS_UNUSED == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  4582. +       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_DIM, ((IS_UNUSED == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  4583.         if (0) {
  4584.             zval_ptr_dtor(&property_name);
  4585.         } else {
  4586. @@ -21605,8 +21598,8 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HA
  4587.  
  4588.         zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_UNUSED, BP_VAR_W TSRMLS_CC);
  4589.  
  4590. -       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  4591. -       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  4592. +       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  4593. +       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  4594.         if (UNEXPECTED(variable_ptr_ptr == NULL)) {
  4595.             if (zend_assign_to_string_offset(&EX_T((opline+1)->op2.var), value, (opline+1)->op1_type TSRMLS_CC)) {
  4596.                 if (RETURN_VALUE_USED(opline)) {
  4597. @@ -21778,7 +21771,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
  4598.  
  4599.     SAVE_OPLINE();
  4600.     if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
  4601. -       zval **expr_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4602. +       zval **expr_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4603.  
  4604.         if (IS_VAR == IS_VAR && UNEXPECTED(expr_ptr_ptr == NULL)) {
  4605.             zend_error_noreturn(E_ERROR, "Cannot create references to/from string offsets");
  4606. @@ -21787,7 +21780,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
  4607.         expr_ptr = *expr_ptr_ptr;
  4608.         Z_ADDREF_P(expr_ptr);
  4609.     } else {
  4610. -       expr_ptr=_get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4611. +       expr_ptr=_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4612.         if (0) { /* temporary variable */
  4613.             zval *new_expr;
  4614.  
  4615. @@ -21894,7 +21887,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HAN
  4616.         ZEND_VM_NEXT_OPCODE();
  4617.     }
  4618.  
  4619. -   varname = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4620. +   varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4621.  
  4622.     if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  4623.         ZVAL_COPY_VALUE(&tmp, varname);
  4624. @@ -21970,7 +21963,7 @@ static int ZEND_FASTCALL  ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
  4625.     } else {
  4626.         HashTable *target_symbol_table;
  4627.         zend_free_op free_op1;
  4628. -       zval tmp, *varname = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4629. +       zval tmp, *varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4630.  
  4631.         if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
  4632.             ZVAL_COPY_VALUE(&tmp, varname);
  4633. @@ -22085,7 +22078,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
  4634.  
  4635.                 zend_error(E_NOTICE, "Only variable references should be yielded by reference");
  4636.  
  4637. -               value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4638. +               value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4639.                 ALLOC_ZVAL(copy);
  4640.                 INIT_PZVAL_COPY(copy, value);
  4641.  
  4642. @@ -22096,7 +22089,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
  4643.  
  4644.                 generator->value = copy;
  4645.             } else {
  4646. -               zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4647. +               zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4648.  
  4649.                 if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
  4650.                     zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
  4651. @@ -22121,7 +22114,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
  4652.                 if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4653.             }
  4654.         } else {
  4655. -           zval *value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4656. +           zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4657.  
  4658.             /* Consts, temporary variables and references need copying */
  4659.             if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
  4660. @@ -22215,7 +22208,7 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  4661.  
  4662.     SAVE_OPLINE();
  4663.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  4664. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4665. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4666.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4667.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4668.  
  4669. @@ -22230,7 +22223,7 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  4670.  
  4671.     SAVE_OPLINE();
  4672.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  4673. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4674. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4675.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4676.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4677.  
  4678. @@ -22245,7 +22238,7 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  4679.  
  4680.     SAVE_OPLINE();
  4681.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  4682. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4683. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4684.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4685.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4686.  
  4687. @@ -22260,7 +22253,7 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  4688.  
  4689.     SAVE_OPLINE();
  4690.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  4691. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4692. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4693.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4694.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4695.  
  4696. @@ -22275,7 +22268,7 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  4697.  
  4698.     SAVE_OPLINE();
  4699.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  4700. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4701. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4702.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4703.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4704.  
  4705. @@ -22290,7 +22283,7 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  4706.  
  4707.     SAVE_OPLINE();
  4708.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  4709. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4710. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4711.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4712.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4713.  
  4714. @@ -22305,7 +22298,7 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  4715.  
  4716.     SAVE_OPLINE();
  4717.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  4718. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4719. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4720.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4721.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4722.  
  4723. @@ -22320,7 +22313,7 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
  4724.  
  4725.     SAVE_OPLINE();
  4726.     concat_function(&EX_T(opline->result.var).tmp_var,
  4727. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4728. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4729.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4730.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4731.  
  4732. @@ -22335,7 +22328,7 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
  4733.  
  4734.     SAVE_OPLINE();
  4735.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  4736. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4737. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4738.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4739.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4740.  
  4741. @@ -22351,7 +22344,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_
  4742.  
  4743.     SAVE_OPLINE();
  4744.     is_identical_function(result,
  4745. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4746. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4747.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4748.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  4749.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4750. @@ -22368,7 +22361,7 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_
  4751.  
  4752.     SAVE_OPLINE();
  4753.     ZVAL_BOOL(result, fast_equal_function(result,
  4754. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4755. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4756.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC));
  4757.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4758.  
  4759. @@ -22384,7 +22377,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
  4760.  
  4761.     SAVE_OPLINE();
  4762.     ZVAL_BOOL(result, fast_not_equal_function(result,
  4763. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4764. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4765.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC));
  4766.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4767.  
  4768. @@ -22400,7 +22393,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
  4769.  
  4770.     SAVE_OPLINE();
  4771.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  4772. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4773. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4774.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC));
  4775.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4776.  
  4777. @@ -22416,7 +22409,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCO
  4778.  
  4779.     SAVE_OPLINE();
  4780.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  4781. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4782. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4783.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC));
  4784.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4785.  
  4786. @@ -22431,7 +22424,7 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
  4787.  
  4788.     SAVE_OPLINE();
  4789.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  4790. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4791. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4792.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4793.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4794.  
  4795. @@ -22446,7 +22439,7 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
  4796.  
  4797.     SAVE_OPLINE();
  4798.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  4799. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4800. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4801.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4802.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4803.  
  4804. @@ -22461,7 +22454,7 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
  4805.  
  4806.     SAVE_OPLINE();
  4807.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  4808. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4809. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4810.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4811.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4812.  
  4813. @@ -22476,7 +22469,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_
  4814.  
  4815.     SAVE_OPLINE();
  4816.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  4817. -       _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  4818. +       _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  4819.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  4820.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4821.  
  4822. @@ -22488,10 +22481,10 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CV(int (*bina
  4823.  {
  4824.     USE_OPLINE
  4825.     zend_free_op free_op1, free_op_data1;
  4826. -   zval **object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4827. +   zval **object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4828.     zval *object;
  4829.     zval *property = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  4830. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  4831. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  4832.     int have_get_ptr = 0;
  4833.  
  4834.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  4835. @@ -22609,7 +22602,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CV(int (*binary_o
  4836.             return zend_binary_assign_op_obj_helper_SPEC_VAR_CV(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
  4837.             break;
  4838.         case ZEND_ASSIGN_DIM: {
  4839. -               zval **container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4840. +               zval **container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4841.  
  4842.                 if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4843.                     zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4844. @@ -22622,14 +22615,14 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CV(int (*binary_o
  4845.                     zval *dim = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  4846.  
  4847.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_CV, BP_VAR_RW TSRMLS_CC);
  4848. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  4849. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  4850. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  4851. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  4852.                 }
  4853.             }
  4854.             break;
  4855.         default:
  4856.             value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  4857. -           var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4858. +           var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4859.             /* do nothing */
  4860.             break;
  4861.     }
  4862. @@ -22751,7 +22744,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CV(incdec_t in
  4863.     int have_get_ptr = 0;
  4864.  
  4865.     SAVE_OPLINE();
  4866. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4867. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4868.     property = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  4869.     retval = &EX_T(opline->result.var).var.ptr;
  4870.  
  4871. @@ -22855,7 +22848,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CV(incdec_t i
  4872.     int have_get_ptr = 0;
  4873.  
  4874.     SAVE_OPLINE();
  4875. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4876. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4877.     property = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  4878.     retval = &EX_T(opline->result.var).tmp_var;
  4879.  
  4880. @@ -22961,12 +22954,12 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
  4881.     }
  4882.  
  4883.     if (IS_VAR == IS_TMP_VAR || IS_VAR == IS_CONST) {
  4884. -       zval *container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4885. +       zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4886.         zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
  4887.  
  4888.         if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4889.     } else {
  4890. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4891. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4892.         zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
  4893.  
  4894.         if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4895. @@ -22983,7 +22976,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
  4896.     zval **container;
  4897.  
  4898.     SAVE_OPLINE();
  4899. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4900. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4901.  
  4902.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4903.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4904. @@ -23017,7 +23010,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
  4905.     zval **container;
  4906.  
  4907.     SAVE_OPLINE();
  4908. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4909. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4910.  
  4911.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4912.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4913. @@ -23039,7 +23032,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_IS_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
  4914.     zval **container;
  4915.  
  4916.     SAVE_OPLINE();
  4917. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4918. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4919.     zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_IS TSRMLS_CC);
  4920.  
  4921.     if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  4922. @@ -23056,7 +23049,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
  4923.     SAVE_OPLINE();
  4924.  
  4925.     if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, (opline->extended_value & ZEND_FETCH_ARG_MASK))) {
  4926. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4927. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4928.         if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4929.             zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  4930.         }
  4931. @@ -23068,7 +23061,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
  4932.         if (IS_CV == IS_UNUSED) {
  4933.             zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
  4934.         }
  4935. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4936. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4937.         zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
  4938.     }
  4939.  
  4940. @@ -23084,7 +23077,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_H
  4941.     zval **container;
  4942.  
  4943.     SAVE_OPLINE();
  4944. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4945. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4946.  
  4947.     if (IS_VAR == IS_CV) {
  4948.         if (container != &EG(uninitialized_zval_ptr)) {
  4949. @@ -23126,7 +23119,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CV(ZEN
  4950.     zval *offset;
  4951.  
  4952.     SAVE_OPLINE();
  4953. -   container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4954. +   container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4955.     offset  = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  4956.  
  4957.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  4958. @@ -23183,7 +23176,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
  4959.     if (0) {
  4960.         MAKE_REAL_ZVAL_PTR(property);
  4961.     }
  4962. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4963. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4964.     if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
  4965.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an object");
  4966.     }
  4967. @@ -23223,7 +23216,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
  4968.  
  4969.     SAVE_OPLINE();
  4970.     property = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  4971. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4972. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4973.  
  4974.     if (0) {
  4975.         MAKE_REAL_ZVAL_PTR(property);
  4976. @@ -23254,7 +23247,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
  4977.     zval *offset;
  4978.  
  4979.     SAVE_OPLINE();
  4980. -   container = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4981. +   container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4982.     offset  = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  4983.  
  4984.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  4985. @@ -23299,7 +23292,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
  4986.  
  4987.         SAVE_OPLINE();
  4988.         property = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  4989. -       container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4990. +       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  4991.  
  4992.         if (0) {
  4993.             MAKE_REAL_ZVAL_PTR(property);
  4994. @@ -23332,7 +23325,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_H
  4995.     zval *property;
  4996.  
  4997.     SAVE_OPLINE();
  4998. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  4999. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5000.     property = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  5001.  
  5002.     if (IS_VAR == IS_CV) {
  5003. @@ -23375,7 +23368,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
  5004.     zval *property_name;
  5005.  
  5006.     SAVE_OPLINE();
  5007. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5008. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5009.     property_name = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  5010.  
  5011.     if (0) {
  5012. @@ -23384,7 +23377,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
  5013.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5014.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5015.     }
  5016. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5017. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5018.     if (0) {
  5019.         zval_ptr_dtor(&property_name);
  5020.     } else {
  5021. @@ -23404,7 +23397,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
  5022.     zval **object_ptr;
  5023.  
  5024.     SAVE_OPLINE();
  5025. -   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5026. +   object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5027.  
  5028.     if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5029.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5030. @@ -23416,7 +23409,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
  5031.         if (0) {
  5032.             MAKE_REAL_ZVAL_PTR(property_name);
  5033.         }
  5034. -       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_DIM, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5035. +       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_DIM, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5036.         if (0) {
  5037.             zval_ptr_dtor(&property_name);
  5038.         } else {
  5039. @@ -23430,8 +23423,8 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
  5040.  
  5041.         zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_CV, BP_VAR_W TSRMLS_CC);
  5042.  
  5043. -       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5044. -       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  5045. +       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5046. +       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  5047.         if (UNEXPECTED(variable_ptr_ptr == NULL)) {
  5048.             if (zend_assign_to_string_offset(&EX_T((opline+1)->op2.var), value, (opline+1)->op1_type TSRMLS_CC)) {
  5049.                 if (RETURN_VALUE_USED(opline)) {
  5050. @@ -23486,7 +23479,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
  5051.  
  5052.     SAVE_OPLINE();
  5053.     value = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  5054. -   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5055. +   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5056.  
  5057.     if (IS_VAR == IS_VAR && UNEXPECTED(variable_ptr_ptr == NULL)) {
  5058.         if (zend_assign_to_string_offset(&EX_T(opline->op1.var), value, IS_CV TSRMLS_CC)) {
  5059. @@ -23563,7 +23556,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
  5060.         zend_error_noreturn(E_ERROR, "Cannot assign by reference to overloaded object");
  5061.     }
  5062.  
  5063. -   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5064. +   variable_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5065.     if ((IS_CV == IS_VAR && UNEXPECTED(value_ptr_ptr == NULL)) ||
  5066.         (IS_VAR == IS_VAR && UNEXPECTED(variable_ptr_ptr == NULL))) {
  5067.         zend_error_noreturn(E_ERROR, "Cannot create references to/from string offsets nor overloaded objects");
  5068. @@ -23606,7 +23599,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_
  5069.     function_name_strval = Z_STRVAL_P(function_name);
  5070.     function_name_strlen = Z_STRLEN_P(function_name);
  5071.  
  5072. -   call->object = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5073. +   call->object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5074.  
  5075.     if (EXPECTED(call->object != NULL) &&
  5076.         EXPECTED(Z_TYPE_P(call->object) == IS_OBJECT)) {
  5077. @@ -23786,7 +23779,7 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  5078.         PZVAL_LOCK(EX_T(opline->op1.var).var.ptr);
  5079.     }
  5080.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  5081. -                _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC),
  5082. +                _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
  5083.                  _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC) TSRMLS_CC);
  5084.  
  5085.     CHECK_EXCEPTION();
  5086. @@ -23801,7 +23794,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE
  5087.  
  5088.     SAVE_OPLINE();
  5089.     if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
  5090. -       zval **expr_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5091. +       zval **expr_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5092.  
  5093.         if (IS_VAR == IS_VAR && UNEXPECTED(expr_ptr_ptr == NULL)) {
  5094.             zend_error_noreturn(E_ERROR, "Cannot create references to/from string offsets");
  5095. @@ -23810,7 +23803,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE
  5096.         expr_ptr = *expr_ptr_ptr;
  5097.         Z_ADDREF_P(expr_ptr);
  5098.     } else {
  5099. -       expr_ptr=_get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5100. +       expr_ptr=_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5101.         if (0) { /* temporary variable */
  5102.             zval *new_expr;
  5103.  
  5104. @@ -23902,7 +23895,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER
  5105.     ulong hval;
  5106.  
  5107.     SAVE_OPLINE();
  5108. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5109. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5110.     if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  5111.         SEPARATE_ZVAL_IF_NOT_REF(container);
  5112.     }
  5113. @@ -24001,7 +23994,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER
  5114.     zval *offset;
  5115.  
  5116.     SAVE_OPLINE();
  5117. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5118. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5119.     offset = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  5120.  
  5121.     if (IS_VAR != IS_VAR || container) {
  5122. @@ -24045,7 +24038,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CV(int
  5123.     zval *offset;
  5124.  
  5125.     SAVE_OPLINE();
  5126. -   container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5127. +   container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5128.  
  5129.     offset = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  5130.  
  5131. @@ -24221,7 +24214,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
  5132.  
  5133.                 zend_error(E_NOTICE, "Only variable references should be yielded by reference");
  5134.  
  5135. -               value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5136. +               value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5137.                 ALLOC_ZVAL(copy);
  5138.                 INIT_PZVAL_COPY(copy, value);
  5139.  
  5140. @@ -24232,7 +24225,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
  5141.  
  5142.                 generator->value = copy;
  5143.             } else {
  5144. -               zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5145. +               zval **value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5146.  
  5147.                 if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
  5148.                     zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
  5149. @@ -24257,7 +24250,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
  5150.                 if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
  5151.             }
  5152.         } else {
  5153. -           zval *value = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
  5154. +           zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
  5155.  
  5156.             /* Consts, temporary variables and references need copying */
  5157.             if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
  5158. @@ -24436,7 +24429,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CONST(int
  5159.     zval **object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5160.     zval *object;
  5161.     zval *property = opline->op2.zv;
  5162. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5163. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5164.     int have_get_ptr = 0;
  5165.  
  5166.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5167. @@ -24566,8 +24559,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_CONST(int (*bi
  5168.                     zval *dim = opline->op2.zv;
  5169.  
  5170.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_CONST, BP_VAR_RW TSRMLS_CC);
  5171. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5172. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  5173. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5174. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  5175.                 }
  5176.             }
  5177.             break;
  5178. @@ -25153,7 +25146,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_
  5179.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5180.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5181.     }
  5182. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5183. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5184.     if (0) {
  5185.         zval_ptr_dtor(&property_name);
  5186.     } else {
  5187. @@ -25841,8 +25834,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMP(int (*
  5188.     zend_free_op free_op2, free_op_data1;
  5189.     zval **object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5190.     zval *object;
  5191. -   zval *property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5192. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5193. +   zval *property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5194. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5195.     int have_get_ptr = 0;
  5196.  
  5197.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5198. @@ -25969,16 +25962,16 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_TMP(int (*bina
  5199.                     }
  5200.                     return zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMP(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
  5201.                 } else {
  5202. -                   zval *dim = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5203. +                   zval *dim = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5204.  
  5205.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_TMP_VAR, BP_VAR_RW TSRMLS_CC);
  5206. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5207. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  5208. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5209. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  5210.                 }
  5211.             }
  5212.             break;
  5213.         default:
  5214. -           value = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5215. +           value = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5216.             var_ptr = NULL;
  5217.             /* do nothing */
  5218.             break;
  5219. @@ -26103,7 +26096,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_TMP(incdec_
  5220.  
  5221.     SAVE_OPLINE();
  5222.     object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5223. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5224. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5225.     retval = &EX_T(opline->result.var).var.ptr;
  5226.  
  5227.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5228. @@ -26207,7 +26200,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_TMP(incdec
  5229.  
  5230.     SAVE_OPLINE();
  5231.     object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5232. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5233. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5234.     retval = &EX_T(opline->result.var).tmp_var;
  5235.  
  5236.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5237. @@ -26307,7 +26300,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_TMP
  5238.  
  5239.     SAVE_OPLINE();
  5240.     container = _get_obj_zval_ptr_unused(TSRMLS_C);
  5241. -   offset  = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5242. +   offset  = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5243.  
  5244.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  5245.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  5246. @@ -26352,7 +26345,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_H
  5247.     zval **container;
  5248.  
  5249.     SAVE_OPLINE();
  5250. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5251. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5252.  
  5253.     if (IS_UNUSED == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
  5254.         PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
  5255. @@ -26400,7 +26393,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_
  5256.     zval **container;
  5257.  
  5258.     SAVE_OPLINE();
  5259. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5260. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5261.     container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5262.  
  5263.     if (1) {
  5264. @@ -26433,7 +26426,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_
  5265.  
  5266.     SAVE_OPLINE();
  5267.     container = _get_obj_zval_ptr_unused(TSRMLS_C);
  5268. -   offset  = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5269. +   offset  = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5270.  
  5271.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  5272.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  5273. @@ -26475,7 +26468,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMP_HANDLER(ZEND_O
  5274.         zval **container;
  5275.  
  5276.         SAVE_OPLINE();
  5277. -       property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5278. +       property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5279.         container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5280.  
  5281.         if (1) {
  5282. @@ -26510,7 +26503,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCO
  5283.  
  5284.     SAVE_OPLINE();
  5285.     container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5286. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5287. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5288.  
  5289.     if (IS_UNUSED == IS_CV) {
  5290.         if (container != &EG(uninitialized_zval_ptr)) {
  5291. @@ -26552,7 +26545,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HA
  5292.  
  5293.     SAVE_OPLINE();
  5294.     object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5295. -   property_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5296. +   property_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5297.  
  5298.     if (1) {
  5299.         MAKE_REAL_ZVAL_PTR(property_name);
  5300. @@ -26560,7 +26553,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HA
  5301.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5302.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5303.     }
  5304. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5305. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5306.     if (1) {
  5307.         zval_ptr_dtor(&property_name);
  5308.     } else {
  5309. @@ -26583,7 +26576,7 @@ static int ZEND_FASTCALL  ZEND_ADD_VAR_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDL
  5310.     int use_copy = 0;
  5311.  
  5312.     SAVE_OPLINE();
  5313. -   var = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5314. +   var = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5315.  
  5316.     if (IS_UNUSED == IS_UNUSED) {
  5317.         /* Initialize for erealloc in add_string_to_string */
  5318. @@ -26629,7 +26622,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMP_HANDLER(ZEND_OPC
  5319.  
  5320.     SAVE_OPLINE();
  5321.  
  5322. -   function_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5323. +   function_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5324.  
  5325.     if (IS_TMP_VAR != IS_CONST &&
  5326.         UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  5327. @@ -26718,7 +26711,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_DIM_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HAN
  5328.     if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  5329.         SEPARATE_ZVAL_IF_NOT_REF(container);
  5330.     }
  5331. -   offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5332. +   offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5333.  
  5334.     if (IS_UNUSED != IS_VAR || container) {
  5335.         switch (Z_TYPE_PP(container)) {
  5336. @@ -26813,7 +26806,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_OBJ_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HAN
  5337.  
  5338.     SAVE_OPLINE();
  5339.     container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5340. -   offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5341. +   offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5342.  
  5343.     if (IS_UNUSED != IS_VAR || container) {
  5344.         if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  5345. @@ -26857,7 +26850,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_TMP
  5346.     SAVE_OPLINE();
  5347.     container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5348.  
  5349. -   offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5350. +   offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5351.  
  5352.     if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
  5353.         HashTable *ht;
  5354. @@ -27096,7 +27089,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER
  5355.     /* Set the new yielded key */
  5356.     if (IS_TMP_VAR != IS_UNUSED) {
  5357.         zend_free_op free_op2;
  5358. -       zval *key = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5359. +       zval *key = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5360.  
  5361.         /* Consts, temporary variables and references need copying */
  5362.         if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
  5363. @@ -27156,8 +27149,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*
  5364.     zend_free_op free_op2, free_op_data1;
  5365.     zval **object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5366.     zval *object;
  5367. -   zval *property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5368. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5369. +   zval *property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5370. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5371.     int have_get_ptr = 0;
  5372.  
  5373.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5374. @@ -27284,16 +27277,16 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_VAR(int (*bina
  5375.                     }
  5376.                     return zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
  5377.                 } else {
  5378. -                   zval *dim = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5379. +                   zval *dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5380.  
  5381.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_VAR, BP_VAR_RW TSRMLS_CC);
  5382. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5383. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  5384. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5385. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  5386.                 }
  5387.             }
  5388.             break;
  5389.         default:
  5390. -           value = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5391. +           value = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5392.             var_ptr = NULL;
  5393.             /* do nothing */
  5394.             break;
  5395. @@ -27418,7 +27411,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_VAR(incdec_
  5396.  
  5397.     SAVE_OPLINE();
  5398.     object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5399. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5400. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5401.     retval = &EX_T(opline->result.var).var.ptr;
  5402.  
  5403.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5404. @@ -27522,7 +27515,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_VAR(incdec
  5405.  
  5406.     SAVE_OPLINE();
  5407.     object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5408. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5409. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5410.     retval = &EX_T(opline->result.var).tmp_var;
  5411.  
  5412.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5413. @@ -27622,7 +27615,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_VAR
  5414.  
  5415.     SAVE_OPLINE();
  5416.     container = _get_obj_zval_ptr_unused(TSRMLS_C);
  5417. -   offset  = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5418. +   offset  = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5419.  
  5420.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  5421.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  5422. @@ -27667,7 +27660,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_W_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_H
  5423.     zval **container;
  5424.  
  5425.     SAVE_OPLINE();
  5426. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5427. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5428.  
  5429.     if (IS_UNUSED == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
  5430.         PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
  5431. @@ -27715,7 +27708,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_RW_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_
  5432.     zval **container;
  5433.  
  5434.     SAVE_OPLINE();
  5435. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5436. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5437.     container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5438.  
  5439.     if (0) {
  5440. @@ -27748,7 +27741,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_
  5441.  
  5442.     SAVE_OPLINE();
  5443.     container = _get_obj_zval_ptr_unused(TSRMLS_C);
  5444. -   offset  = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5445. +   offset  = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5446.  
  5447.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  5448.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  5449. @@ -27790,7 +27783,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_VAR_HANDLER(ZEND_O
  5450.         zval **container;
  5451.  
  5452.         SAVE_OPLINE();
  5453. -       property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5454. +       property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5455.         container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5456.  
  5457.         if (0) {
  5458. @@ -27825,7 +27818,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCO
  5459.  
  5460.     SAVE_OPLINE();
  5461.     container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5462. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5463. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5464.  
  5465.     if (IS_UNUSED == IS_CV) {
  5466.         if (container != &EG(uninitialized_zval_ptr)) {
  5467. @@ -27867,7 +27860,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HA
  5468.  
  5469.     SAVE_OPLINE();
  5470.     object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5471. -   property_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5472. +   property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5473.  
  5474.     if (0) {
  5475.         MAKE_REAL_ZVAL_PTR(property_name);
  5476. @@ -27875,7 +27868,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HA
  5477.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5478.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5479.     }
  5480. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5481. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5482.     if (0) {
  5483.         zval_ptr_dtor(&property_name);
  5484.     } else {
  5485. @@ -27898,7 +27891,7 @@ static int ZEND_FASTCALL  ZEND_ADD_VAR_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDL
  5486.     int use_copy = 0;
  5487.  
  5488.     SAVE_OPLINE();
  5489. -   var = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5490. +   var = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5491.  
  5492.     if (IS_UNUSED == IS_UNUSED) {
  5493.         /* Initialize for erealloc in add_string_to_string */
  5494. @@ -27944,7 +27937,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_UNUSED_VAR_HANDLER(ZEND_OPC
  5495.  
  5496.     SAVE_OPLINE();
  5497.  
  5498. -   function_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5499. +   function_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5500.  
  5501.     if (IS_VAR != IS_CONST &&
  5502.         UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  5503. @@ -28033,7 +28026,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_DIM_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HAN
  5504.     if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  5505.         SEPARATE_ZVAL_IF_NOT_REF(container);
  5506.     }
  5507. -   offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5508. +   offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5509.  
  5510.     if (IS_UNUSED != IS_VAR || container) {
  5511.         switch (Z_TYPE_PP(container)) {
  5512. @@ -28128,7 +28121,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_OBJ_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HAN
  5513.  
  5514.     SAVE_OPLINE();
  5515.     container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5516. -   offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5517. +   offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5518.  
  5519.     if (IS_UNUSED != IS_VAR || container) {
  5520.         if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  5521. @@ -28172,7 +28165,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_VAR
  5522.     SAVE_OPLINE();
  5523.     container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5524.  
  5525. -   offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5526. +   offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5527.  
  5528.     if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
  5529.         HashTable *ht;
  5530. @@ -28411,7 +28404,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER
  5531.     /* Set the new yielded key */
  5532.     if (IS_VAR != IS_UNUSED) {
  5533.         zend_free_op free_op2;
  5534. -       zval *key = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5535. +       zval *key = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5536.  
  5537.         /* Consts, temporary variables and references need copying */
  5538.         if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
  5539. @@ -28473,7 +28466,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_UNUSED(int
  5540.     zval **object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5541.     zval *object;
  5542.     zval *property = NULL;
  5543. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5544. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5545.     int have_get_ptr = 0;
  5546.  
  5547.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5548. @@ -28603,8 +28596,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_UNUSED(int (*b
  5549.                     zval *dim = NULL;
  5550.  
  5551.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_UNUSED, BP_VAR_RW TSRMLS_CC);
  5552. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5553. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  5554. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5555. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  5556.                 }
  5557.             }
  5558.             break;
  5559. @@ -28896,7 +28889,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CV(int (*b
  5560.     zval **object_ptr = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
  5561.     zval *object;
  5562.     zval *property = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  5563. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5564. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5565.     int have_get_ptr = 0;
  5566.  
  5567.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5568. @@ -29026,8 +29019,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_CV(int (*binar
  5569.                     zval *dim = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  5570.  
  5571.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_CV, BP_VAR_RW TSRMLS_CC);
  5572. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5573. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  5574. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5575. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  5576.                 }
  5577.             }
  5578.             break;
  5579. @@ -29613,7 +29606,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HAN
  5580.     if (IS_UNUSED == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5581.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5582.     }
  5583. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5584. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5585.     if (0) {
  5586.         zval_ptr_dtor(&property_name);
  5587.     } else {
  5588. @@ -31722,7 +31715,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CONST(int (*bi
  5589.     zval **object_ptr = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  5590.     zval *object;
  5591.     zval *property = opline->op2.zv;
  5592. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5593. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5594.     int have_get_ptr = 0;
  5595.  
  5596.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5597. @@ -31852,8 +31845,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CONST(int (*binary
  5598.                     zval *dim = opline->op2.zv;
  5599.  
  5600.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_CONST, BP_VAR_RW TSRMLS_CC);
  5601. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5602. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  5603. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5604. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  5605.                 }
  5606.             }
  5607.             break;
  5608. @@ -32773,7 +32766,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAND
  5609.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5610.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5611.     }
  5612. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5613. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5614.     if (0) {
  5615.         zval_ptr_dtor(&property_name);
  5616.     } else {
  5617. @@ -32805,7 +32798,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAND
  5618.         if (0) {
  5619.             MAKE_REAL_ZVAL_PTR(property_name);
  5620.         }
  5621. -       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_DIM, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5622. +       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_DIM, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5623.         if (0) {
  5624.             zval_ptr_dtor(&property_name);
  5625.         } else {
  5626. @@ -32819,8 +32812,8 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAND
  5627.  
  5628.         zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_CONST, BP_VAR_W TSRMLS_CC);
  5629.  
  5630. -       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5631. -       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  5632. +       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5633. +       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  5634.         if (UNEXPECTED(variable_ptr_ptr == NULL)) {
  5635.             if (zend_assign_to_string_offset(&EX_T((opline+1)->op2.var), value, (opline+1)->op1_type TSRMLS_CC)) {
  5636.                 if (RETURN_VALUE_USED(opline)) {
  5637. @@ -33722,7 +33715,7 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  5638.     SAVE_OPLINE();
  5639.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  5640.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5641. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5642. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5643.  
  5644.     zval_dtor(free_op2.var);
  5645.     CHECK_EXCEPTION();
  5646. @@ -33737,7 +33730,7 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  5647.     SAVE_OPLINE();
  5648.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  5649.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5650. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5651. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5652.  
  5653.     zval_dtor(free_op2.var);
  5654.     CHECK_EXCEPTION();
  5655. @@ -33752,7 +33745,7 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  5656.     SAVE_OPLINE();
  5657.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  5658.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5659. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5660. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5661.  
  5662.     zval_dtor(free_op2.var);
  5663.     CHECK_EXCEPTION();
  5664. @@ -33767,7 +33760,7 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  5665.     SAVE_OPLINE();
  5666.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  5667.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5668. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5669. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5670.  
  5671.     zval_dtor(free_op2.var);
  5672.     CHECK_EXCEPTION();
  5673. @@ -33782,7 +33775,7 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  5674.     SAVE_OPLINE();
  5675.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  5676.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5677. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5678. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5679.  
  5680.     zval_dtor(free_op2.var);
  5681.     CHECK_EXCEPTION();
  5682. @@ -33797,7 +33790,7 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  5683.     SAVE_OPLINE();
  5684.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  5685.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5686. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5687. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5688.  
  5689.     zval_dtor(free_op2.var);
  5690.     CHECK_EXCEPTION();
  5691. @@ -33812,7 +33805,7 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  5692.     SAVE_OPLINE();
  5693.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  5694.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5695. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5696. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5697.  
  5698.     zval_dtor(free_op2.var);
  5699.     CHECK_EXCEPTION();
  5700. @@ -33827,7 +33820,7 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  5701.     SAVE_OPLINE();
  5702.     concat_function(&EX_T(opline->result.var).tmp_var,
  5703.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5704. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5705. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5706.  
  5707.     zval_dtor(free_op2.var);
  5708.     CHECK_EXCEPTION();
  5709. @@ -33842,7 +33835,7 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HAND
  5710.     SAVE_OPLINE();
  5711.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  5712.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5713. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5714. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5715.  
  5716.     zval_dtor(free_op2.var);
  5717.     CHECK_EXCEPTION();
  5718. @@ -33858,7 +33851,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_
  5719.     SAVE_OPLINE();
  5720.     is_identical_function(result,
  5721.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5722. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5723. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5724.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  5725.  
  5726.     zval_dtor(free_op2.var);
  5727. @@ -33875,7 +33868,7 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_
  5728.     SAVE_OPLINE();
  5729.     ZVAL_BOOL(result, fast_equal_function(result,
  5730.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5731. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  5732. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  5733.  
  5734.     zval_dtor(free_op2.var);
  5735.     CHECK_EXCEPTION();
  5736. @@ -33891,7 +33884,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HAND
  5737.     SAVE_OPLINE();
  5738.     ZVAL_BOOL(result, fast_not_equal_function(result,
  5739.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5740. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  5741. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  5742.  
  5743.     zval_dtor(free_op2.var);
  5744.     CHECK_EXCEPTION();
  5745. @@ -33907,7 +33900,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLE
  5746.     SAVE_OPLINE();
  5747.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  5748.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5749. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  5750. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  5751.  
  5752.     zval_dtor(free_op2.var);
  5753.     CHECK_EXCEPTION();
  5754. @@ -33923,7 +33916,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMP_HANDLER(ZEND_OPCO
  5755.     SAVE_OPLINE();
  5756.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  5757.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5758. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  5759. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  5760.  
  5761.     zval_dtor(free_op2.var);
  5762.     CHECK_EXCEPTION();
  5763. @@ -33938,7 +33931,7 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
  5764.     SAVE_OPLINE();
  5765.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  5766.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5767. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5768. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5769.  
  5770.     zval_dtor(free_op2.var);
  5771.     CHECK_EXCEPTION();
  5772. @@ -33953,7 +33946,7 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  5773.     SAVE_OPLINE();
  5774.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  5775.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5776. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5777. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5778.  
  5779.     zval_dtor(free_op2.var);
  5780.     CHECK_EXCEPTION();
  5781. @@ -33968,7 +33961,7 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  5782.     SAVE_OPLINE();
  5783.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  5784.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5785. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5786. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5787.  
  5788.     zval_dtor(free_op2.var);
  5789.     CHECK_EXCEPTION();
  5790. @@ -33983,7 +33976,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_
  5791.     SAVE_OPLINE();
  5792.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  5793.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  5794. -       _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  5795. +       _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  5796.  
  5797.     zval_dtor(free_op2.var);
  5798.     CHECK_EXCEPTION();
  5799. @@ -33996,8 +33989,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_TMP(int (*bina
  5800.     zend_free_op free_op2, free_op_data1;
  5801.     zval **object_ptr = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  5802.     zval *object;
  5803. -   zval *property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5804. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5805. +   zval *property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5806. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5807.     int have_get_ptr = 0;
  5808.  
  5809.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5810. @@ -34124,16 +34117,16 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_TMP(int (*binary_o
  5811.                     }
  5812.                     return zend_binary_assign_op_obj_helper_SPEC_CV_TMP(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
  5813.                 } else {
  5814. -                   zval *dim = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5815. +                   zval *dim = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5816.  
  5817.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_TMP_VAR, BP_VAR_RW TSRMLS_CC);
  5818. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  5819. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  5820. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  5821. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  5822.                 }
  5823.             }
  5824.             break;
  5825.         default:
  5826. -           value = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5827. +           value = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5828.             var_ptr = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  5829.             /* do nothing */
  5830.             break;
  5831. @@ -34258,7 +34251,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_TMP(incdec_t in
  5832.  
  5833.     SAVE_OPLINE();
  5834.     object_ptr = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  5835. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5836. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5837.     retval = &EX_T(opline->result.var).var.ptr;
  5838.  
  5839.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5840. @@ -34362,7 +34355,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_TMP(incdec_t i
  5841.  
  5842.     SAVE_OPLINE();
  5843.     object_ptr = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  5844. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5845. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5846.     retval = &EX_T(opline->result.var).tmp_var;
  5847.  
  5848.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5849. @@ -34468,12 +34461,12 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDL
  5850.  
  5851.     if (IS_CV == IS_TMP_VAR || IS_CV == IS_CONST) {
  5852.         zval *container = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
  5853. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  5854. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  5855.         zval_dtor(free_op2.var);
  5856.  
  5857.     } else {
  5858.         container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
  5859. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  5860. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  5861.         zval_dtor(free_op2.var);
  5862.  
  5863.     }
  5864. @@ -34494,7 +34487,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_W_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDL
  5865.     if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
  5866.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5867.     }
  5868. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
  5869. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
  5870.     zval_dtor(free_op2.var);
  5871.     if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
  5872.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  5873. @@ -34527,7 +34520,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_RW_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HAND
  5874.     if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
  5875.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5876.     }
  5877. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_RW TSRMLS_CC);
  5878. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_RW TSRMLS_CC);
  5879.     zval_dtor(free_op2.var);
  5880.     if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
  5881.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  5882. @@ -34545,7 +34538,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_IS_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HAND
  5883.  
  5884.     SAVE_OPLINE();
  5885.     container = _get_zval_ptr_ptr_cv_BP_VAR_IS(EX_CVs(), opline->op1.var TSRMLS_CC);
  5886. -   zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_IS TSRMLS_CC);
  5887. +   zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_IS TSRMLS_CC);
  5888.     zval_dtor(free_op2.var);
  5889.  
  5890.     CHECK_EXCEPTION();
  5891. @@ -34565,7 +34558,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMP_HANDLER(ZEND_OPCOD
  5892.         if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
  5893.             zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5894.         }
  5895. -       zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
  5896. +       zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
  5897.         if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
  5898.             EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  5899.         }
  5900. @@ -34574,7 +34567,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMP_HANDLER(ZEND_OPCOD
  5901.             zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
  5902.         }
  5903.         container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
  5904. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  5905. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
  5906.     }
  5907.     zval_dtor(free_op2.var);
  5908.  
  5909. @@ -34599,7 +34592,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_UNSET_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_H
  5910.     if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
  5911.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5912.     }
  5913. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_UNSET TSRMLS_CC);
  5914. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_UNSET TSRMLS_CC);
  5915.     zval_dtor(free_op2.var);
  5916.     if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
  5917.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  5918. @@ -34632,7 +34625,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_TMP(ZEN
  5919.  
  5920.     SAVE_OPLINE();
  5921.     container = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
  5922. -   offset  = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5923. +   offset  = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5924.  
  5925.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  5926.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  5927. @@ -34677,7 +34670,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_W_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDL
  5928.     zval **container;
  5929.  
  5930.     SAVE_OPLINE();
  5931. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5932. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5933.  
  5934.     if (IS_CV == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
  5935.         PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
  5936. @@ -34725,7 +34718,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_RW_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HAND
  5937.     zval **container;
  5938.  
  5939.     SAVE_OPLINE();
  5940. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5941. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5942.     container = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  5943.  
  5944.     if (1) {
  5945. @@ -34758,7 +34751,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HAND
  5946.  
  5947.     SAVE_OPLINE();
  5948.     container = _get_zval_ptr_cv_BP_VAR_IS(EX_CVs(), opline->op1.var TSRMLS_CC);
  5949. -   offset  = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5950. +   offset  = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5951.  
  5952.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  5953.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  5954. @@ -34800,7 +34793,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMP_HANDLER(ZEND_OPCOD
  5955.         zval **container;
  5956.  
  5957.         SAVE_OPLINE();
  5958. -       property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5959. +       property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5960.         container = _get_zval_ptr_ptr_cv_BP_VAR_W(EX_CVs(), opline->op1.var TSRMLS_CC);
  5961.  
  5962.         if (1) {
  5963. @@ -34835,7 +34828,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_H
  5964.  
  5965.     SAVE_OPLINE();
  5966.     container = _get_zval_ptr_ptr_cv_BP_VAR_UNSET(EX_CVs(), opline->op1.var TSRMLS_CC);
  5967. -   property = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5968. +   property = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5969.  
  5970.     if (IS_CV == IS_CV) {
  5971.         if (container != &EG(uninitialized_zval_ptr)) {
  5972. @@ -34877,7 +34870,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLE
  5973.  
  5974.     SAVE_OPLINE();
  5975.     object_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(EX_CVs(), opline->op1.var TSRMLS_CC);
  5976. -   property_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5977. +   property_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5978.  
  5979.     if (1) {
  5980.         MAKE_REAL_ZVAL_PTR(property_name);
  5981. @@ -34885,7 +34878,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLE
  5982.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  5983.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  5984.     }
  5985. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5986. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  5987.     if (1) {
  5988.         zval_ptr_dtor(&property_name);
  5989.     } else {
  5990. @@ -34912,12 +34905,12 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLE
  5991.     }
  5992.     if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
  5993.         zend_free_op free_op2;
  5994. -       zval *property_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  5995. +       zval *property_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  5996.  
  5997.         if (1) {
  5998.             MAKE_REAL_ZVAL_PTR(property_name);
  5999.         }
  6000. -       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_DIM, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6001. +       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_DIM, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6002.         if (1) {
  6003.             zval_ptr_dtor(&property_name);
  6004.         } else {
  6005. @@ -34926,14 +34919,14 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLE
  6006.     } else {
  6007.         zend_free_op free_op2, free_op_data1, free_op_data2;
  6008.         zval *value;
  6009. -       zval *dim = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6010. +       zval *dim = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6011.         zval **variable_ptr_ptr;
  6012.  
  6013.         zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
  6014.         zval_dtor(free_op2.var);
  6015.  
  6016. -       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  6017. -       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  6018. +       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  6019. +       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  6020.         if (UNEXPECTED(variable_ptr_ptr == NULL)) {
  6021.             if (zend_assign_to_string_offset(&EX_T((opline+1)->op2.var), value, (opline+1)->op1_type TSRMLS_CC)) {
  6022.                 if (RETURN_VALUE_USED(opline)) {
  6023. @@ -34987,7 +34980,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
  6024.     zval **variable_ptr_ptr;
  6025.  
  6026.     SAVE_OPLINE();
  6027. -   value = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6028. +   value = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6029.     variable_ptr_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(EX_CVs(), opline->op1.var TSRMLS_CC);
  6030.  
  6031.     if (IS_CV == IS_VAR && UNEXPECTED(variable_ptr_ptr == NULL)) {
  6032. @@ -35043,7 +35036,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_
  6033.  
  6034.     SAVE_OPLINE();
  6035.  
  6036. -   function_name = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6037. +   function_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6038.  
  6039.     if (IS_TMP_VAR != IS_CONST &&
  6040.         UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  6041. @@ -35116,7 +35109,7 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  6042.     }
  6043.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  6044.                  _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6045. -                _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6046. +                _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6047.  
  6048.     zval_dtor(free_op2.var);
  6049.     CHECK_EXCEPTION();
  6050. @@ -35161,7 +35154,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMP_HANDLER(ZEND_OPCODE
  6051.  
  6052.     if (IS_TMP_VAR != IS_UNUSED) {
  6053.         zend_free_op free_op2;
  6054. -       zval *offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6055. +       zval *offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6056.         ulong hval;
  6057.  
  6058.         switch (Z_TYPE_P(offset)) {
  6059. @@ -35236,7 +35229,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER
  6060.     if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  6061.         SEPARATE_ZVAL_IF_NOT_REF(container);
  6062.     }
  6063. -   offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6064. +   offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6065.  
  6066.     if (IS_CV != IS_VAR || container) {
  6067.         switch (Z_TYPE_PP(container)) {
  6068. @@ -35331,7 +35324,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_OBJ_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER
  6069.  
  6070.     SAVE_OPLINE();
  6071.     container = _get_zval_ptr_ptr_cv_BP_VAR_UNSET(EX_CVs(), opline->op1.var TSRMLS_CC);
  6072. -   offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6073. +   offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6074.  
  6075.     if (IS_CV != IS_VAR || container) {
  6076.         if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  6077. @@ -35375,7 +35368,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_TMP(int
  6078.     SAVE_OPLINE();
  6079.     container = _get_zval_ptr_ptr_cv_BP_VAR_IS(EX_CVs(), opline->op1.var TSRMLS_CC);
  6080.  
  6081. -   offset = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6082. +   offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6083.  
  6084.     if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
  6085.         HashTable *ht;
  6086. @@ -35614,7 +35607,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
  6087.     /* Set the new yielded key */
  6088.     if (IS_TMP_VAR != IS_UNUSED) {
  6089.         zend_free_op free_op2;
  6090. -       zval *key = _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6091. +       zval *key = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6092.  
  6093.         /* Consts, temporary variables and references need copying */
  6094.         if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR
  6095. @@ -35676,7 +35669,7 @@ static int ZEND_FASTCALL  ZEND_ADD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  6096.     SAVE_OPLINE();
  6097.     fast_add_function(&EX_T(opline->result.var).tmp_var,
  6098.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6099. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6100. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6101.  
  6102.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6103.     CHECK_EXCEPTION();
  6104. @@ -35691,7 +35684,7 @@ static int ZEND_FASTCALL  ZEND_SUB_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  6105.     SAVE_OPLINE();
  6106.     fast_sub_function(&EX_T(opline->result.var).tmp_var,
  6107.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6108. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6109. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6110.  
  6111.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6112.     CHECK_EXCEPTION();
  6113. @@ -35706,7 +35699,7 @@ static int ZEND_FASTCALL  ZEND_MUL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  6114.     SAVE_OPLINE();
  6115.     fast_mul_function(&EX_T(opline->result.var).tmp_var,
  6116.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6117. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6118. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6119.  
  6120.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6121.     CHECK_EXCEPTION();
  6122. @@ -35721,7 +35714,7 @@ static int ZEND_FASTCALL  ZEND_DIV_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  6123.     SAVE_OPLINE();
  6124.     fast_div_function(&EX_T(opline->result.var).tmp_var,
  6125.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6126. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6127. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6128.  
  6129.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6130.     CHECK_EXCEPTION();
  6131. @@ -35736,7 +35729,7 @@ static int ZEND_FASTCALL  ZEND_MOD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  6132.     SAVE_OPLINE();
  6133.     fast_mod_function(&EX_T(opline->result.var).tmp_var,
  6134.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6135. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6136. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6137.  
  6138.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6139.     CHECK_EXCEPTION();
  6140. @@ -35751,7 +35744,7 @@ static int ZEND_FASTCALL  ZEND_SL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  6141.     SAVE_OPLINE();
  6142.     shift_left_function(&EX_T(opline->result.var).tmp_var,
  6143.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6144. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6145. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6146.  
  6147.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6148.     CHECK_EXCEPTION();
  6149. @@ -35766,7 +35759,7 @@ static int ZEND_FASTCALL  ZEND_SR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
  6150.     SAVE_OPLINE();
  6151.     shift_right_function(&EX_T(opline->result.var).tmp_var,
  6152.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6153. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6154. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6155.  
  6156.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6157.     CHECK_EXCEPTION();
  6158. @@ -35781,7 +35774,7 @@ static int ZEND_FASTCALL  ZEND_CONCAT_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  6159.     SAVE_OPLINE();
  6160.     concat_function(&EX_T(opline->result.var).tmp_var,
  6161.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6162. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6163. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6164.  
  6165.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6166.     CHECK_EXCEPTION();
  6167. @@ -35796,7 +35789,7 @@ static int ZEND_FASTCALL  ZEND_IS_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
  6168.     SAVE_OPLINE();
  6169.     is_identical_function(&EX_T(opline->result.var).tmp_var,
  6170.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6171. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6172. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6173.  
  6174.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6175.     CHECK_EXCEPTION();
  6176. @@ -35812,7 +35805,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_
  6177.     SAVE_OPLINE();
  6178.     is_identical_function(result,
  6179.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6180. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6181. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6182.     Z_LVAL_P(result) = !Z_LVAL_P(result);
  6183.  
  6184.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6185. @@ -35829,7 +35822,7 @@ static int ZEND_FASTCALL  ZEND_IS_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_
  6186.     SAVE_OPLINE();
  6187.     ZVAL_BOOL(result, fast_equal_function(result,
  6188.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6189. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  6190. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  6191.  
  6192.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6193.     CHECK_EXCEPTION();
  6194. @@ -35845,7 +35838,7 @@ static int ZEND_FASTCALL  ZEND_IS_NOT_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
  6195.     SAVE_OPLINE();
  6196.     ZVAL_BOOL(result, fast_not_equal_function(result,
  6197.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6198. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  6199. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  6200.  
  6201.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6202.     CHECK_EXCEPTION();
  6203. @@ -35861,7 +35854,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
  6204.     SAVE_OPLINE();
  6205.     ZVAL_BOOL(result, fast_is_smaller_function(result,
  6206.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6207. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  6208. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  6209.  
  6210.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6211.     CHECK_EXCEPTION();
  6212. @@ -35877,7 +35870,7 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCO
  6213.     SAVE_OPLINE();
  6214.     ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
  6215.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6216. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC));
  6217. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
  6218.  
  6219.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6220.     CHECK_EXCEPTION();
  6221. @@ -35892,7 +35885,7 @@ static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  6222.     SAVE_OPLINE();
  6223.     bitwise_or_function(&EX_T(opline->result.var).tmp_var,
  6224.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6225. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6226. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6227.  
  6228.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6229.     CHECK_EXCEPTION();
  6230. @@ -35907,7 +35900,7 @@ static int ZEND_FASTCALL  ZEND_BW_AND_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  6231.     SAVE_OPLINE();
  6232.     bitwise_and_function(&EX_T(opline->result.var).tmp_var,
  6233.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6234. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6235. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6236.  
  6237.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6238.     CHECK_EXCEPTION();
  6239. @@ -35922,7 +35915,7 @@ static int ZEND_FASTCALL  ZEND_BW_XOR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  6240.     SAVE_OPLINE();
  6241.     bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
  6242.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6243. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6244. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6245.  
  6246.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6247.     CHECK_EXCEPTION();
  6248. @@ -35937,7 +35930,7 @@ static int ZEND_FASTCALL  ZEND_BOOL_XOR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_
  6249.     SAVE_OPLINE();
  6250.     boolean_xor_function(&EX_T(opline->result.var).tmp_var,
  6251.         _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6252. -       _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6253. +       _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6254.  
  6255.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6256.     CHECK_EXCEPTION();
  6257. @@ -35950,8 +35943,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_VAR(int (*bina
  6258.     zend_free_op free_op2, free_op_data1;
  6259.     zval **object_ptr = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  6260.     zval *object;
  6261. -   zval *property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6262. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  6263. +   zval *property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6264. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  6265.     int have_get_ptr = 0;
  6266.  
  6267.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  6268. @@ -36078,16 +36071,16 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_VAR(int (*binary_o
  6269.                     }
  6270.                     return zend_binary_assign_op_obj_helper_SPEC_CV_VAR(binary_op, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
  6271.                 } else {
  6272. -                   zval *dim = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6273. +                   zval *dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6274.  
  6275.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_VAR, BP_VAR_RW TSRMLS_CC);
  6276. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  6277. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  6278. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  6279. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  6280.                 }
  6281.             }
  6282.             break;
  6283.         default:
  6284. -           value = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6285. +           value = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6286.             var_ptr = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  6287.             /* do nothing */
  6288.             break;
  6289. @@ -36212,7 +36205,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_VAR(incdec_t in
  6290.  
  6291.     SAVE_OPLINE();
  6292.     object_ptr = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  6293. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6294. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6295.     retval = &EX_T(opline->result.var).var.ptr;
  6296.  
  6297.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  6298. @@ -36316,7 +36309,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_VAR(incdec_t i
  6299.  
  6300.     SAVE_OPLINE();
  6301.     object_ptr = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  6302. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6303. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6304.     retval = &EX_T(opline->result.var).tmp_var;
  6305.  
  6306.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  6307. @@ -36586,12 +36579,12 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_R_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
  6308.  
  6309.     if (IS_CV == IS_TMP_VAR || IS_CV == IS_CONST) {
  6310.         zval *container = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
  6311. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  6312. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  6313.         if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6314.  
  6315.     } else {
  6316.         container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
  6317. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  6318. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  6319.         if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6320.  
  6321.     }
  6322. @@ -36612,7 +36605,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
  6323.     if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
  6324.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  6325.     }
  6326. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
  6327. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
  6328.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6329.     if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
  6330.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  6331. @@ -36645,7 +36638,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
  6332.     if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
  6333.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  6334.     }
  6335. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC);
  6336. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC);
  6337.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6338.     if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
  6339.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  6340. @@ -36663,7 +36656,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
  6341.  
  6342.     SAVE_OPLINE();
  6343.     container = _get_zval_ptr_ptr_cv_BP_VAR_IS(EX_CVs(), opline->op1.var TSRMLS_CC);
  6344. -   zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_IS TSRMLS_CC);
  6345. +   zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_IS TSRMLS_CC);
  6346.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6347.  
  6348.     CHECK_EXCEPTION();
  6349. @@ -36683,7 +36676,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
  6350.         if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
  6351.             zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  6352.         }
  6353. -       zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
  6354. +       zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
  6355.         if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
  6356.             EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  6357.         }
  6358. @@ -36692,7 +36685,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
  6359.             zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
  6360.         }
  6361.         container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
  6362. -       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  6363. +       zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
  6364.     }
  6365.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6366.  
  6367. @@ -36717,7 +36710,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_DIM_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_H
  6368.     if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
  6369.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  6370.     }
  6371. -   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC);
  6372. +   zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC);
  6373.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6374.     if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
  6375.         EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
  6376. @@ -36750,7 +36743,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_VAR(ZEN
  6377.  
  6378.     SAVE_OPLINE();
  6379.     container = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
  6380. -   offset  = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6381. +   offset  = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6382.  
  6383.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  6384.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  6385. @@ -36795,7 +36788,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
  6386.     zval **container;
  6387.  
  6388.     SAVE_OPLINE();
  6389. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6390. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6391.  
  6392.     if (IS_CV == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
  6393.         PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
  6394. @@ -36843,7 +36836,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
  6395.     zval **container;
  6396.  
  6397.     SAVE_OPLINE();
  6398. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6399. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6400.     container = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  6401.  
  6402.     if (0) {
  6403. @@ -36876,7 +36869,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
  6404.  
  6405.     SAVE_OPLINE();
  6406.     container = _get_zval_ptr_cv_BP_VAR_IS(EX_CVs(), opline->op1.var TSRMLS_CC);
  6407. -   offset  = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6408. +   offset  = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6409.  
  6410.     if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  6411.         UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  6412. @@ -36918,7 +36911,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
  6413.         zval **container;
  6414.  
  6415.         SAVE_OPLINE();
  6416. -       property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6417. +       property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6418.         container = _get_zval_ptr_ptr_cv_BP_VAR_W(EX_CVs(), opline->op1.var TSRMLS_CC);
  6419.  
  6420.         if (0) {
  6421. @@ -36953,7 +36946,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_H
  6422.  
  6423.     SAVE_OPLINE();
  6424.     container = _get_zval_ptr_ptr_cv_BP_VAR_UNSET(EX_CVs(), opline->op1.var TSRMLS_CC);
  6425. -   property = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6426. +   property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6427.  
  6428.     if (IS_CV == IS_CV) {
  6429.         if (container != &EG(uninitialized_zval_ptr)) {
  6430. @@ -36995,7 +36988,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
  6431.  
  6432.     SAVE_OPLINE();
  6433.     object_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(EX_CVs(), opline->op1.var TSRMLS_CC);
  6434. -   property_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6435. +   property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6436.  
  6437.     if (0) {
  6438.         MAKE_REAL_ZVAL_PTR(property_name);
  6439. @@ -37003,7 +36996,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
  6440.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  6441.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  6442.     }
  6443. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6444. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6445.     if (0) {
  6446.         zval_ptr_dtor(&property_name);
  6447.     } else {
  6448. @@ -37030,12 +37023,12 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
  6449.     }
  6450.     if (Z_TYPE_PP(object_ptr) == IS_OBJECT) {
  6451.         zend_free_op free_op2;
  6452. -       zval *property_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6453. +       zval *property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6454.  
  6455.         if (0) {
  6456.             MAKE_REAL_ZVAL_PTR(property_name);
  6457.         }
  6458. -       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_DIM, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6459. +       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_DIM, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6460.         if (0) {
  6461.             zval_ptr_dtor(&property_name);
  6462.         } else {
  6463. @@ -37044,14 +37037,14 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
  6464.     } else {
  6465.         zend_free_op free_op2, free_op_data1, free_op_data2;
  6466.         zval *value;
  6467. -       zval *dim = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6468. +       zval *dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6469.         zval **variable_ptr_ptr;
  6470.  
  6471.         zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_VAR, BP_VAR_W TSRMLS_CC);
  6472.         if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6473.  
  6474. -       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  6475. -       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  6476. +       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  6477. +       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  6478.         if (UNEXPECTED(variable_ptr_ptr == NULL)) {
  6479.             if (zend_assign_to_string_offset(&EX_T((opline+1)->op2.var), value, (opline+1)->op1_type TSRMLS_CC)) {
  6480.                 if (RETURN_VALUE_USED(opline)) {
  6481. @@ -37105,7 +37098,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
  6482.     zval **variable_ptr_ptr;
  6483.  
  6484.     SAVE_OPLINE();
  6485. -   value = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6486. +   value = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6487.     variable_ptr_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(EX_CVs(), opline->op1.var TSRMLS_CC);
  6488.  
  6489.     if (IS_CV == IS_VAR && UNEXPECTED(variable_ptr_ptr == NULL)) {
  6490. @@ -37159,7 +37152,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
  6491.     zval **value_ptr_ptr;
  6492.  
  6493.     SAVE_OPLINE();
  6494. -   value_ptr_ptr = _get_zval_ptr_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6495. +   value_ptr_ptr = _get_zval_ptr_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6496.  
  6497.     if (IS_VAR == IS_VAR &&
  6498.         value_ptr_ptr &&
  6499. @@ -37215,7 +37208,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_
  6500.  
  6501.     SAVE_OPLINE();
  6502.  
  6503. -   function_name = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6504. +   function_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6505.  
  6506.     if (IS_VAR != IS_CONST &&
  6507.         UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
  6508. @@ -37288,7 +37281,7 @@ static int ZEND_FASTCALL  ZEND_CASE_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
  6509.     }
  6510.     is_equal_function(&EX_T(opline->result.var).tmp_var,
  6511.                  _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC),
  6512. -                _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC) TSRMLS_CC);
  6513. +                _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
  6514.  
  6515.     if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
  6516.     CHECK_EXCEPTION();
  6517. @@ -37333,7 +37326,7 @@ static int ZEND_FASTCALL  ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_VAR_HANDLER(ZEND_OPCODE
  6518.  
  6519.     if (IS_VAR != IS_UNUSED) {
  6520.         zend_free_op free_op2;
  6521. -       zval *offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6522. +       zval *offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6523.         ulong hval;
  6524.  
  6525.         switch (Z_TYPE_P(offset)) {
  6526. @@ -37484,7 +37477,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER
  6527.     if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  6528.         SEPARATE_ZVAL_IF_NOT_REF(container);
  6529.     }
  6530. -   offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6531. +   offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6532.  
  6533.     if (IS_CV != IS_VAR || container) {
  6534.         switch (Z_TYPE_PP(container)) {
  6535. @@ -37579,7 +37572,7 @@ static int ZEND_FASTCALL  ZEND_UNSET_OBJ_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER
  6536.  
  6537.     SAVE_OPLINE();
  6538.     container = _get_zval_ptr_ptr_cv_BP_VAR_UNSET(EX_CVs(), opline->op1.var TSRMLS_CC);
  6539. -   offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6540. +   offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6541.  
  6542.     if (IS_CV != IS_VAR || container) {
  6543.         if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
  6544. @@ -37708,7 +37701,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_VAR(int
  6545.     SAVE_OPLINE();
  6546.     container = _get_zval_ptr_ptr_cv_BP_VAR_IS(EX_CVs(), opline->op1.var TSRMLS_CC);
  6547.  
  6548. -   offset = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6549. +   offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6550.  
  6551.     if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
  6552.         HashTable *ht;
  6553. @@ -37947,7 +37940,7 @@ static int ZEND_FASTCALL  ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
  6554.     /* Set the new yielded key */
  6555.     if (IS_VAR != IS_UNUSED) {
  6556.         zend_free_op free_op2;
  6557. -       zval *key = _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC);
  6558. +       zval *key = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
  6559.  
  6560.         /* Consts, temporary variables and references need copying */
  6561.         if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR
  6562. @@ -38009,7 +38002,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_UNUSED(int (*b
  6563.     zval **object_ptr = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  6564.     zval *object;
  6565.     zval *property = NULL;
  6566. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  6567. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  6568.     int have_get_ptr = 0;
  6569.  
  6570.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  6571. @@ -38139,8 +38132,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_UNUSED(int (*binar
  6572.                     zval *dim = NULL;
  6573.  
  6574.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_UNUSED, BP_VAR_RW TSRMLS_CC);
  6575. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  6576. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  6577. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  6578. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  6579.                 }
  6580.             }
  6581.             break;
  6582. @@ -38525,7 +38518,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HAN
  6583.         if (0) {
  6584.             MAKE_REAL_ZVAL_PTR(property_name);
  6585.         }
  6586. -       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_DIM, ((IS_UNUSED == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6587. +       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_DIM, ((IS_UNUSED == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6588.         if (0) {
  6589.             zval_ptr_dtor(&property_name);
  6590.         } else {
  6591. @@ -38539,8 +38532,8 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HAN
  6592.  
  6593.         zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_UNUSED, BP_VAR_W TSRMLS_CC);
  6594.  
  6595. -       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  6596. -       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  6597. +       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  6598. +       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  6599.         if (UNEXPECTED(variable_ptr_ptr == NULL)) {
  6600.             if (zend_assign_to_string_offset(&EX_T((opline+1)->op2.var), value, (opline+1)->op1_type TSRMLS_CC)) {
  6601.                 if (RETURN_VALUE_USED(opline)) {
  6602. @@ -39284,7 +39277,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CV(int (*binar
  6603.     zval **object_ptr = _get_zval_ptr_ptr_cv_BP_VAR_RW(EX_CVs(), opline->op1.var TSRMLS_CC);
  6604.     zval *object;
  6605.     zval *property = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  6606. -   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  6607. +   zval *value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  6608.     int have_get_ptr = 0;
  6609.  
  6610.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  6611. @@ -39414,8 +39407,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CV(int (*binary_op
  6612.                     zval *dim = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC);
  6613.  
  6614.                     zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), container, dim, IS_CV, BP_VAR_RW TSRMLS_CC);
  6615. -                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  6616. -                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  6617. +                   value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  6618. +                   var_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  6619.                 }
  6620.             }
  6621.             break;
  6622. @@ -40171,7 +40164,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER
  6623.     if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
  6624.         zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
  6625.     }
  6626. -   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_OBJ, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6627. +   zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_OBJ, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6628.     if (0) {
  6629.         zval_ptr_dtor(&property_name);
  6630.     } else {
  6631. @@ -40203,7 +40196,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER
  6632.         if (0) {
  6633.             MAKE_REAL_ZVAL_PTR(property_name);
  6634.         }
  6635. -       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), ZEND_ASSIGN_DIM, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6636. +       zend_assign_to_object(RETURN_VALUE_USED(opline)?&EX_T(opline->result.var).var.ptr:NULL, object_ptr, property_name, (opline+1)->op1_type, &(opline+1)->op1, execute_data, ZEND_ASSIGN_DIM, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
  6637.         if (0) {
  6638.             zval_ptr_dtor(&property_name);
  6639.         } else {
  6640. @@ -40217,8 +40210,8 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER
  6641.  
  6642.         zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_CV, BP_VAR_W TSRMLS_CC);
  6643.  
  6644. -       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, EX_Ts(), &free_op_data1, BP_VAR_R);
  6645. -       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, EX_Ts(), &free_op_data2 TSRMLS_CC);
  6646. +       value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
  6647. +       variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
  6648.         if (UNEXPECTED(variable_ptr_ptr == NULL)) {
  6649.             if (zend_assign_to_string_offset(&EX_T((opline+1)->op2.var), value, (opline+1)->op1_type TSRMLS_CC)) {
  6650.                 if (RETURN_VALUE_USED(opline)) {
  6651. diff --git a/Zend/zend_vm_execute.skl b/Zend/zend_vm_execute.skl
  6652. index 85d3dfb..0f2c4d5 100644
  6653. --- a/Zend/zend_vm_execute.skl
  6654. +++ b/Zend/zend_vm_execute.skl
  6655. @@ -18,21 +18,21 @@
  6656.   * EG(current_execute_data) -> | zend_execute_data                      |    |
  6657.   *                             |     EX(prev_execute_data)              |----+
  6658.   *                             +----------------------------------------+
  6659. - *           EX(Ts) ---------> | EX(Ts)[0]                              |
  6660. + *     EX_TMP_VAR_NUM(0) ----> | TMP_VAR[0]                             |
  6661.   *                             | ...                                    |
  6662. - *                             | EX(Tx)[op_arrat->T]                    |
  6663. + *                             | TMP_VAR[op_arrat->T-1]                 |
  6664.   *                             +----------------------------------------+
  6665. - *           EX(CVs) --------> | EX(CVs)[0]                             |--+
  6666. + *           EX(CVs) --------> | CV[0]                                  |--+
  6667.   *                             | ...                                    |  |
  6668. - *                             | EX(CVs)[op_array->last_var]            |  |
  6669. + *                             | CV[op_array->last_var-1]               |  |
  6670.   *                             +----------------------------------------+  |
  6671.   *                             | Optional slot for CV[0] zval*          |<-+
  6672.   *                             | ...                                    |
  6673. - *                             | ...  for CV [op_array->last_var] zval* |
  6674. + *                             | ...for CV [op_array->last_var-1] zval* |
  6675.   *                             +----------------------------------------+
  6676. - *           EX(call_slots) -> | EX(call_slots)[0]                      |
  6677. + *           EX(call_slots) -> | CALL_SLOT[0]                           |
  6678.   *                             | ...                                    |
  6679. - *                             | EX(call_slots)[op_array->nested_calls] |
  6680. + *                             | CALL_SLOT[op_array->nested_calls-1]    |
  6681.   *                             +----------------------------------------+
  6682.   * zend_vm_stack_frame_base -> | ARGUMENTS STACK [0]                    |
  6683.   *                             | ...                                    |
  6684. @@ -107,9 +107,7 @@ zend_execute_data *zend_create_execute_data_from_op_array(zend_op_array *op_arra
  6685.         EX(prev_execute_data) = EG(current_execute_data);
  6686.     }
  6687.  
  6688. -   EX(Ts) = (temp_variable *) ((char *) execute_data + execute_data_size);
  6689. -
  6690. -   EX(CVs) = (zval ***) ((char *) EX(Ts) + Ts_size);
  6691. +   EX(CVs) = (zval ***) ((char *) EX_TMP_VAR_NUM(execute_data, 0) + Ts_size);
  6692.     memset(EX(CVs), 0, sizeof(zval **) * op_array->last_var);
  6693.  
  6694.     EX(call_slots) = (call_slot*)((char *) EX(CVs) + CVs_size);
  6695. diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
  6696. index bd5f2de..6c12c40 100644
  6697. --- a/Zend/zend_vm_gen.php
  6698. +++ b/Zend/zend_vm_gen.php
  6699. @@ -118,72 +118,72 @@ $op2_free = array(
  6700.  );
  6701.  
  6702.  $op1_get_zval_ptr = array(
  6703. -   "ANY"    => "get_zval_ptr(opline->op1_type, &opline->op1, EX_Ts(), &free_op1, \)",
  6704. -   "TMP"    => "_get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC)",
  6705. -   "VAR"    => "_get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC)",
  6706. +   "ANY"    => "get_zval_ptr(opline->op1_type, &opline->op1, execute_data, &free_op1, \)",
  6707. +   "TMP"    => "_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)",
  6708. +   "VAR"    => "_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)",
  6709.     "CONST"  => "opline->op1.zv",
  6710.     "UNUSED" => "NULL",
  6711.     "CV"     => "_get_zval_ptr_cv_\\1(EX_CVs(), opline->op1.var TSRMLS_CC)",
  6712.  );
  6713.  
  6714.  $op2_get_zval_ptr = array(
  6715. -   "ANY"    => "get_zval_ptr(opline->op2_type, &opline->op2, EX_Ts(), &free_op2, \)",
  6716. -   "TMP"    => "_get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC)",
  6717. -   "VAR"    => "_get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC)",
  6718. +   "ANY"    => "get_zval_ptr(opline->op2_type, &opline->op2, execute_data, &free_op2, \)",
  6719. +   "TMP"    => "_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC)",
  6720. +   "VAR"    => "_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC)",
  6721.     "CONST"  => "opline->op2.zv",
  6722.     "UNUSED" => "NULL",
  6723.     "CV"     => "_get_zval_ptr_cv_\\1(EX_CVs(), opline->op2.var TSRMLS_CC)",
  6724.  );
  6725.  
  6726.  $op1_get_zval_ptr_ptr = array(
  6727. -   "ANY"    => "get_zval_ptr_ptr(opline->op1_type, &opline->op1, EX_Ts(), &free_op1, \)",
  6728. +   "ANY"    => "get_zval_ptr_ptr(opline->op1_type, &opline->op1, execute_data, &free_op1, \)",
  6729.     "TMP"    => "NULL",
  6730. -   "VAR"    => "_get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC)",
  6731. +   "VAR"    => "_get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)",
  6732.     "CONST"  => "NULL",
  6733.     "UNUSED" => "NULL",
  6734.     "CV"     => "_get_zval_ptr_ptr_cv_\\1(EX_CVs(), opline->op1.var TSRMLS_CC)",
  6735.  );
  6736.  
  6737.  $op2_get_zval_ptr_ptr = array(
  6738. -   "ANY"    => "get_zval_ptr_ptr(opline->op2_type, &opline->op2, EX_Ts(), &free_op2, \)",
  6739. +   "ANY"    => "get_zval_ptr_ptr(opline->op2_type, &opline->op2, execute_data, &free_op2, \)",
  6740.     "TMP"    => "NULL",
  6741. -   "VAR"    => "_get_zval_ptr_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC)",
  6742. +   "VAR"    => "_get_zval_ptr_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC)",
  6743.     "CONST"  => "NULL",
  6744.     "UNUSED" => "NULL",
  6745.     "CV"     => "_get_zval_ptr_ptr_cv_\\1(EX_CVs(), opline->op2.var TSRMLS_CC)",
  6746.  );
  6747.  
  6748.  $op1_get_obj_zval_ptr = array(
  6749. -   "ANY"    => "get_obj_zval_ptr(opline->op1_type, &opline->op1, EX_Ts(), &free_op1, \)",
  6750. -   "TMP"    => "_get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC)",
  6751. -   "VAR"    => "_get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC)",
  6752. +   "ANY"    => "get_obj_zval_ptr(opline->op1_type, &opline->op1, execute_data, &free_op1, \)",
  6753. +   "TMP"    => "_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)",
  6754. +   "VAR"    => "_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)",
  6755.     "CONST"  => "opline->op1.zv",
  6756.     "UNUSED" => "_get_obj_zval_ptr_unused(TSRMLS_C)",
  6757.     "CV"     => "_get_zval_ptr_cv_\\1(EX_CVs(), opline->op1.var TSRMLS_CC)",
  6758.  );
  6759.  
  6760.  $op2_get_obj_zval_ptr = array(
  6761. -   "ANY"    => "get_obj_zval_ptr(opline->op2_type, &opline->op2, EX_Ts(), &free_op2, \)",
  6762. -   "TMP"    => "_get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC)",
  6763. -   "VAR"    => "_get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC)",
  6764. +   "ANY"    => "get_obj_zval_ptr(opline->op2_type, &opline->op2, execute_data, &free_op2, \)",
  6765. +   "TMP"    => "_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC)",
  6766. +   "VAR"    => "_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC)",
  6767.     "CONST"  => "opline->op2.zv",
  6768.     "UNUSED" => "_get_obj_zval_ptr_unused(TSRMLS_C)",
  6769.     "CV"     => "_get_zval_ptr_cv_\\1(EX_CVs(), opline->op2.var TSRMLS_CC)",
  6770.  );
  6771.  
  6772.  $op1_get_obj_zval_ptr_ptr = array(
  6773. -   "ANY"    => "get_obj_zval_ptr_ptr(opline->op1_type, &opline->op1, EX_Ts(), &free_op1, \)",
  6774. +   "ANY"    => "get_obj_zval_ptr_ptr(opline->op1_type, &opline->op1, execute_data, &free_op1, \)",
  6775.     "TMP"    => "NULL",
  6776. -   "VAR"    => "_get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC)",
  6777. +   "VAR"    => "_get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)",
  6778.     "CONST"  => "NULL",
  6779.     "UNUSED" => "_get_obj_zval_ptr_ptr_unused(TSRMLS_C)",
  6780.     "CV"     => "_get_zval_ptr_ptr_cv_\\1(EX_CVs(), opline->op1.var TSRMLS_CC)",
  6781.  );
  6782.  
  6783.  $op2_get_obj_zval_ptr_ptr = array(
  6784. -   "ANY"    => "get_obj_zval_ptr_ptr(opline->op2_type, &opline->op2, EX_Ts(), &free_op2, \)",
  6785. +   "ANY"    => "get_obj_zval_ptr_ptr(opline->op2_type, &opline->op2, execute_data, &free_op2, \)",
  6786.     "TMP"    => "NULL",
  6787. -   "VAR"    => "_get_zval_ptr_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC)",
  6788. +   "VAR"    => "_get_zval_ptr_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC)",
  6789.     "CONST"  => "NULL",
  6790.     "UNUSED" => "_get_obj_zval_ptr_ptr_unused(TSRMLS_C)",
  6791.     "CV"     => "_get_zval_ptr_ptr_cv_\\1(EX_CVs(), opline->op2.var TSRMLS_CC)",
  6792. @@ -845,10 +845,6 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
  6793.                             out($f,"#define EX_CV(var) EX(CVs)[var]\n");
  6794.                             out($f,"#undef EX_CVs\n");
  6795.                             out($f,"#define EX_CVs() EX(CVs)\n");
  6796. -                           out($f,"#undef EX_T\n");
  6797. -                           out($f,"#define EX_T(offset) (*(temp_variable *)((char *) EX(Ts) + offset))\n");
  6798. -                           out($f,"#undef EX_Ts\n");
  6799. -                           out($f,"#define EX_Ts() EX(Ts)\n\n");
  6800.                             break;
  6801.                         case ZEND_VM_KIND_SWITCH:
  6802.                             out($f,"\n");
  6803. @@ -868,7 +864,7 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
  6804.                             out($f,"#define CHECK_EXCEPTION() LOAD_OPLINE()\n");
  6805.                             out($f,"#define HANDLE_EXCEPTION() LOAD_OPLINE(); ZEND_VM_CONTINUE()\n");
  6806.                             out($f,"#define HANDLE_EXCEPTION_LEAVE() LOAD_OPLINE(); ZEND_VM_LEAVE()\n");
  6807. -                           out($f,"#define LOAD_REGS()                do {Ts = EX(Ts); CVs = EX(CVs);} while (0)\n");
  6808. +                           out($f,"#define LOAD_REGS()                do {CVs = EX(CVs);} while (0)\n");
  6809.                             out($f,"#define ZEND_VM_CONTINUE() goto zend_vm_continue\n");
  6810.                             out($f,"#define ZEND_VM_RETURN()   EG(in_execution) = original_in_execution; return\n");
  6811.                             out($f,"#define ZEND_VM_ENTER()    execute_data = zend_create_execute_data_from_op_array(EG(active_op_array), 1 TSRMLS_CC); LOAD_REGS(); LOAD_OPLINE(); ZEND_VM_CONTINUE()\n");
  6812. @@ -881,10 +877,6 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
  6813.                             out($f,"#define EX_CV(var) CVs[var]\n");
  6814.                             out($f,"#undef EX_CVs\n");
  6815.                             out($f,"#define EX_CVs() CVs\n");
  6816. -                           out($f,"#undef EX_T\n");
  6817. -                           out($f,"#define EX_T(offset) T(offset)\n");
  6818. -                           out($f,"#undef EX_Ts\n");
  6819. -                           out($f,"#define EX_Ts() Ts\n\n");
  6820.                             break;
  6821.                         case ZEND_VM_KIND_GOTO:
  6822.                             out($f,"\n");
  6823. @@ -904,7 +896,7 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
  6824.                             out($f,"#define CHECK_EXCEPTION() if (UNEXPECTED(EG(exception) != NULL)) goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
  6825.                             out($f,"#define HANDLE_EXCEPTION() goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
  6826.                             out($f,"#define HANDLE_EXCEPTION_LEAVE() goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
  6827. -                           out($f,"#define LOAD_REGS()                do {Ts = EX(Ts); CVs = EX(CVs);} while (0)\n");
  6828. +                           out($f,"#define LOAD_REGS()                do {CVs = EX(CVs);} while (0)\n");
  6829.                             out($f,"#define ZEND_VM_CONTINUE() goto *(void**)(OPLINE->handler)\n");
  6830.                             out($f,"#define ZEND_VM_RETURN()   EG(in_execution) = original_in_execution; return\n");
  6831.                             out($f,"#define ZEND_VM_ENTER()    execute_data = zend_create_execute_data_from_op_array(EG(active_op_array), 1 TSRMLS_CC); LOAD_REGS(); LOAD_OPLINE(); ZEND_VM_CONTINUE()\n");
  6832. @@ -917,10 +909,6 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
  6833.                             out($f,"#define EX_CV(var) CVs[var]\n");
  6834.                             out($f,"#undef EX_CVs\n");
  6835.                             out($f,"#define EX_CVs() CVs\n");
  6836. -                           out($f,"#undef EX_T\n");
  6837. -                           out($f,"#define EX_T(offset) T(offset)\n\n");
  6838. -                           out($f,"#undef EX_Ts\n");
  6839. -                           out($f,"#define EX_Ts() Ts\n\n");
  6840.                             break;
  6841.                     }
  6842.                     break;
  6843. @@ -929,7 +917,6 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
  6844.                     break;
  6845.                 case "HELPER_VARS":
  6846.                     if ($kind != ZEND_VM_KIND_CALL) {
  6847. -                       out($f,$m[1]."temp_variable *Ts;\n");
  6848.                         out($f,$m[1]."zval ***CVs;\n");
  6849.                         if ($kind == ZEND_VM_KIND_SWITCH) {
  6850.                             out($f,$m[1]."opcode_handler_t dispatch_handler;\n");
  6851. @@ -1247,8 +1234,6 @@ function gen_vm($def, $skel) {
  6852.         out($f,"#define EX_CV(var) EX(CVs)[var]\n");
  6853.         out($f,"#undef EX_CVs\n");
  6854.         out($f,"#define EX_CVs() EX(CVs)\n");
  6855. -       out($f,"#undef EX_T\n");
  6856. -       out($f,"#define EX_T(offset) (*(temp_variable *)((char *) EX(Ts) + offset))\n\n");
  6857.         out($f,"#undef ZEND_VM_CONTINUE\n\n");
  6858.         out($f,"#undef ZEND_VM_RETURN\n\n");
  6859.         out($f,"#undef ZEND_VM_ENTER\n\n");
  6860. @@ -1327,8 +1312,6 @@ function gen_vm($def, $skel) {
  6861.         out($f,"#define EX_CV(var) EX(CVs)[var]\n");
  6862.         out($f,"#undef EX_CVs\n");
  6863.         out($f,"#define EX_CVs() EX(CVs)\n");
  6864. -       out($f,"#undef EX_T\n");
  6865. -       out($f,"#define EX_T(offset) (*(temp_variable *)((char *) EX(Ts) + offset))\n\n");
  6866.         out($f,"#undef ZEND_VM_CONTINUE\n");
  6867.         out($f,"#undef ZEND_VM_RETURN\n");
  6868.         out($f,"#undef ZEND_VM_ENTER\n");
Advertisement
Add Comment
Please, Sign In to add comment