Should something be reverted there?
Andi
Delivered-To: [EMAIL PROTECTED]
Mailing-List: contact [EMAIL PROTECTED]; run by ezmlm
list-help: <mailto:zend-engine-cvs-help@;lists.php.net>
list-unsubscribe: <mailto:zend-engine-cvs-unsubscribe@;lists.php.net>
list-post: <mailto:zend-engine-cvs@;lists.php.net>
Delivered-To: mailing list [EMAIL PROTECTED]
From: "Andi Gutmans" <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Date: Wed, 23 Oct 2002 20:26:27 -0000
X-Spam-Status: No, tests=bogofilter, spamicity=0.0% likelihood
Subject: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_execute.c phpdoc/scripts revcheck.php
andi Wed Oct 23 16:26:27 2002 EDT
Modified files:
/phpdoc/scripts revcheck.php
/ZendEngine2 zend_execute.c
Log:
- Make Ts access a macro. I need this for my next patch which should
- improve performance but not sure yet if it will.
--
Zend Engine CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Index: phpdoc/scripts/revcheck.php diff -u phpdoc/scripts/revcheck.php:1.30 phpdoc/scripts/revcheck.php:1.31 --- phpdoc/scripts/revcheck.php:1.30 Mon Oct 7 16:40:28 2002 +++ phpdoc/scripts/revcheck.php Wed Oct 23 16:26:27 2002 @@ -50,7 +50,7 @@ // A file is criticaly "outdated' if define("ALERT_REV", 10); // translation is 10 or more revisions behind the en one -define("ALERT_SIZE", 10); // translation is 10 or more kB smaller than the en one +define("ALERT_SIZE", 3); // translation is 3 or more kB smaller than the en one define("ALERT_DATE", -30); // translation is 30 or more days older than the en one // Revision marks used to flag files @@ -231,10 +231,10 @@ } // Get the parameter if we have it - list($trans_file) = func_get_args(); + list($trans_file, $en_size, $trans_size, $size_diff) = func_get_args(); - // Push file name with missing tag on the list - $missing_tags[] = substr($trans_file, strlen($DOCDIR)); + // Push data of file with missing tag onto the list + $missing_tags[] = array(substr($trans_file, strlen($DOCDIR)), $en_size, +$trans_size, $size_diff); } // Collect files by status mark @@ -323,14 +323,6 @@ $trans_tag = get_tag($trans_file, "\\S*"); } - // If we found no revision tag, then collect this - // file in the missing tags list - if (count($trans_tag) == 0) { - files_by_mark(REV_NOTAG, 1); - missing_tag($trans_file, $DOCDIR); - return FALSE; - } - // Distribute values in separate vars for further processing list(, $this_rev, $this_maint, $this_status) = $trans_tag; @@ -361,6 +353,14 @@ $trans_date = intval((time() - filemtime($trans_file)) / 86400); $date_diff = $en_date - $trans_date; + // If we found no revision tag, then collect this + // file in the missing tags list + if (count($trans_tag) == 0) { + files_by_mark(REV_NOTAG, 1); + missing_tag($trans_file, $en_size, $trans_size, $size_diff); + return FALSE; + } + // Make decision on file category by revision, date and size if ($rev_diff === 0) { $status_mark = REV_UPTODATE; @@ -375,9 +375,6 @@ // Store files by status, and by maintainer too files_by_mark ($status_mark, 1); files_by_maint($status_mark, $this_maint); - -if ($rev_diff === 0 && $this_maint == "") -echo $file."<br>\n"; return array( "full_name" => $file, @@ -999,24 +996,27 @@ if ($count > 0) { print "<a name=\"misstags\"></a>" . "<table width=\"400\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" align=\"center\">\n". - "<tr><th class=blue><b>Files without Revision-comment ($count files):</b></th></tr>\n"; + "<tr class=blue><th rowspan=2><b>Files without Revision-comment ($count +files):</b></th>". + "<th colspan=3>Sizes in kB</th></tr>\n". + "<tr class=blue><th>en</th><th>$LANG</th><th>diff</th></tr>\n"; foreach($missing_tags as $val) { // Shorten the filename (we have directory headers) - $short_file = basename($val); + $short_file = basename($val[0]); // Guess the new directory from the full name of the file - $new_dir = substr($val, 0, strrpos($val, "/")); + $new_dir = substr($val[0], 0, strrpos($val[0], "/")); // If this is a new directory, put out dir headline if ($new_dir != $prev_dir) { // Print out directory header - print "<tr class=blue><th>".dirname($val)."</th></tr>\n"; + print "<tr class=blue><th colspan=4>".dirname($val[0])."</th></tr>\n"; // Store the new actual directory $prev_dir = $new_dir; } - print "<tr><td class=miss>$short_file</td></tr>\n"; + print "<tr class=miss><td>$short_file</td><td class=r>$val[1]</td>". + "<td class=r>$val[2]</td><td class=r>$val[3]</td></tr>\n"; } print "</table>\n<p> </p>\n$navbar<p> </p>\n"; @@ -1060,7 +1060,7 @@ } print "<tr class=miss><td>$short_file</td>" . - "<td align=right>$info[0]</td></tr>\n"; + "<td class=r>$info[0]</td></tr>\n"; } print "</table>\n<p> </p>\n$navbar<p> </p>\n"; Index: ZendEngine2/zend_execute.c diff -u ZendEngine2/zend_execute.c:1.382 ZendEngine2/zend_execute.c:1.383 --- ZendEngine2/zend_execute.c:1.382 Tue Oct 22 15:34:25 2002 +++ ZendEngine2/zend_execute.c Wed Oct 23 16:26:27 2002 @@ -46,6 +46,9 @@ #define RETURN_VALUE_USED(opline) (!((opline)->result.u.EA.type & EXT_TYPE_UNUSED)) +#define EX_T(offset) EX(Ts)[offset] +#define T(offset) Ts[offset] + static inline zval *_get_zval_ptr(znode *node, temp_variable *Ts, zval **should_free TSRMLS_DC) { switch(node->op_type) { @@ -54,19 +57,19 @@ return &node->u.constant; break; case IS_TMP_VAR: - return *should_free = &Ts[node->u.var].tmp_var; + return *should_free = &T(node->u.var).tmp_var; break; case IS_VAR: - if (Ts[node->u.var].var.ptr) { - PZVAL_UNLOCK(Ts[node->u.var].var.ptr); + if (T(node->u.var).var.ptr) { + PZVAL_UNLOCK(T(node->u.var).var.ptr); *should_free = 0; - return Ts[node->u.var].var.ptr; + return T(node->u.var).var.ptr; } else { - *should_free = &Ts[node->u.var].tmp_var; + *should_free = &T(node->u.var).tmp_var; - switch (Ts[node->u.var].EA.type) { + switch (T(node->u.var).EA.type) { case IS_STRING_OFFSET: { - temp_variable *T = &Ts[node->u.var]; + temp_variable *T = +&T(node->u.var); zval *str = T->EA.data.str_offset.str; if (T->EA.data.str_offset.str->type != IS_STRING @@ -99,12 +102,12 @@ static inline zval **_get_zval_ptr_ptr(znode *node, temp_variable *Ts TSRMLS_DC) { if (node->op_type==IS_VAR) { - if (Ts[node->u.var].var.ptr_ptr) { - PZVAL_UNLOCK(*Ts[node->u.var].var.ptr_ptr); - } else if (Ts[node->u.var].EA.type==IS_STRING_OFFSET) { - PZVAL_UNLOCK(Ts[node->u.var].EA.data.str_offset.str); + if (T(node->u.var).var.ptr_ptr) { + PZVAL_UNLOCK(*T(node->u.var).var.ptr_ptr); + } else if (T(node->u.var).EA.type==IS_STRING_OFFSET) { + PZVAL_UNLOCK(T(node->u.var).EA.data.str_offset.str); } - return Ts[node->u.var].var.ptr_ptr; + return T(node->u.var).var.ptr_ptr; } else { return NULL; } @@ -154,18 +157,18 @@ { switch (opline->op1.op_type) { case IS_VAR: - if (!Ts[opline->op1.u.var].var.ptr_ptr) { + if (!T(opline->op1.u.var).var.ptr_ptr) { get_zval_ptr(&opline->op1, Ts, &EG(free_op1), BP_VAR_R); FREE_OP(Ts, &opline->op1, EG(free_op1)); } else { - zval_ptr_dtor(&Ts[opline->op1.u.var].var.ptr); + zval_ptr_dtor(&T(opline->op1.u.var).var.ptr); if (opline->extended_value) { /* foreach() free */ - zval_ptr_dtor(&Ts[opline->op1.u.var].var.ptr); + zval_ptr_dtor(&T(opline->op1.u.var).var.ptr); } } break; case IS_TMP_VAR: - zendi_zval_dtor(Ts[opline->op1.u.var].tmp_var); + zendi_zval_dtor(T(opline->op1.u.var).tmp_var); break; EMPTY_SWITCH_DEFAULT_CASE() } @@ -217,9 +220,9 @@ } if (result && !(result->u.EA.type & EXT_TYPE_UNUSED)) { - Ts[result->u.var].var.ptr_ptr = variable_ptr_ptr; + T(result->u.var).var.ptr_ptr = variable_ptr_ptr; SELECTIVE_PZVAL_LOCK(*variable_ptr_ptr, result); - AI_USE_PTR(Ts[result->u.var].var); + AI_USE_PTR(T(result->u.var).var); } } @@ -269,7 +272,7 @@ zval *object; zval *property = get_zval_ptr(op2, Ts, &EG(free_op2), BP_VAR_R); zval tmp; - zval **retval = &Ts[result->u.var].var.ptr; + zval **retval = &T(result->u.var).var.ptr; make_real_object(object_ptr TSRMLS_CC); /* this should modify object only if it's empty */ object = *object_ptr; @@ -311,8 +314,8 @@ FREE_OP(Ts, op2, EG(free_op2)); if (result) { - Ts[result->u.var].var.ptr = value; - Ts[result->u.var].var.ptr_ptr = NULL; /* see if we can nuke this */ + T(result->u.var).var.ptr = value; + T(result->u.var).var.ptr_ptr = NULL; /* see if we can nuke this */ SELECTIVE_PZVAL_LOCK(value, result); } } @@ -323,10 +326,10 @@ zval *object; zval *property = get_zval_ptr(op2, Ts, &EG(free_op2), BP_VAR_R); zval tmp; - zval **retval = &Ts[result->u.var].var.ptr; + zval **retval = &T(result->u.var).var.ptr; int have_get_ptr = 0; - Ts[result->u.var].var.ptr_ptr = NULL; + T(result->u.var).var.ptr_ptr = NULL; make_real_object(object_ptr TSRMLS_CC); object = *object_ptr; @@ -395,9 +398,9 @@ zval *variable_ptr; if (!variable_ptr_ptr) { - switch (Ts[op1->u.var].EA.type) { + switch (T(op1->u.var).EA.type) { case IS_STRING_OFFSET: { - temp_variable *T = &Ts[op1->u.var]; + temp_variable *T = &T(op1->u.var); if (T->EA.data.str_offset.str->type == IS_STRING) do { zval tmp; @@ -435,7 +438,7 @@ T->EA.data.str_offset.str->value.str.val[T->EA.data.str_offset.offset] = final_value->value.str.val[0]; if (op2 && op2->op_type == IS_VAR - && value==&Ts[op2->u.var].tmp_var) { + && +value==&T(op2->u.var).tmp_var) { STR_FREE(value->value.str.val); } if (final_value == &tmp) { @@ -443,7 +446,7 @@ } /* * the value of an assignment to a string offset is undefined - Ts[result->u.var].var = &T->EA.data.str_offset.str; + T(result->u.var).var = +&T->EA.data.str_offset.str; */ } while (0); /* zval_ptr_dtor(&T->EA.data.str_offset.str); Nuke this line if it doesn't cause a leak */ @@ -452,9 +455,9 @@ break; EMPTY_SWITCH_DEFAULT_CASE() } - Ts[result->u.var].var.ptr_ptr = &EG(uninitialized_zval_ptr); - SELECTIVE_PZVAL_LOCK(*Ts[result->u.var].var.ptr_ptr, result); - AI_USE_PTR(Ts[result->u.var].var); + T(result->u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr); + SELECTIVE_PZVAL_LOCK(*T(result->u.var).var.ptr_ptr, result); + AI_USE_PTR(T(result->u.var).var); return; } @@ -462,9 +465,9 @@ if (variable_ptr == EG(error_zval_ptr)) { if (result) { - Ts[result->u.var].var.ptr_ptr = &EG(uninitialized_zval_ptr); - SELECTIVE_PZVAL_LOCK(*Ts[result->u.var].var.ptr_ptr, result); - AI_USE_PTR(Ts[result->u.var].var); + T(result->u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr); + SELECTIVE_PZVAL_LOCK(*T(result->u.var).var.ptr_ptr, result); + AI_USE_PTR(T(result->u.var).var); } if (type==IS_TMP_VAR) { zval_dtor(value); @@ -548,9 +551,9 @@ (*variable_ptr_ptr)->is_ref=0; } if (result) { - Ts[result->u.var].var.ptr_ptr = variable_ptr_ptr; + T(result->u.var).var.ptr_ptr = variable_ptr_ptr; SELECTIVE_PZVAL_LOCK(*variable_ptr_ptr, result); - AI_USE_PTR(Ts[result->u.var].var); + AI_USE_PTR(T(result->u.var).var); } } @@ -620,12 +623,12 @@ return EG(active_op_array)->static_variables; break; case ZEND_FETCH_STATIC_MEMBER: - if(Ts[opline->op2.u.var].EA.class_entry->parent) { + if(T(opline->op2.u.var).EA.class_entry->parent) { /* if inherited, try to look up */ - return zend_find_inherited_static(Ts[opline->op2.u.var].EA.class_entry, variable); + return +zend_find_inherited_static(T(opline->op2.u.var).EA.class_entry, variable); } else { /* if class is not inherited, no point in checking */ - return Ts[opline->op2.u.var].EA.class_entry->static_members; + return +T(opline->op2.u.var).EA.class_entry->static_members; } break; EMPTY_SWITCH_DEFAULT_CASE() @@ -684,7 +687,7 @@ if (varname == &tmp_varname) { zval_dtor(varname); } - Ts[opline->result.u.var].var.ptr_ptr = retval; + T(opline->result.u.var).var.ptr_ptr = retval; SELECTIVE_PZVAL_LOCK(*retval, &opline->result); } @@ -777,7 +780,7 @@ { zval **container_ptr = get_zval_ptr_ptr(op1, Ts, type); zval *container; - zval ***retval = &Ts[result->u.var].var.ptr_ptr; + zval ***retval = &T(result->u.var).var.ptr_ptr; container = *container_ptr; @@ -852,10 +855,10 @@ SEPARATE_ZVAL_IF_NOT_REF(container_ptr); } container = *container_ptr; - Ts[result->u.var].EA.data.str_offset.str = container; + T(result->u.var).EA.data.str_offset.str = container; PZVAL_LOCK(container); - Ts[result->u.var].EA.data.str_offset.offset = offset->value.lval; - Ts[result->u.var].EA.type = IS_STRING_OFFSET; + T(result->u.var).EA.data.str_offset.offset = +offset->value.lval; + T(result->u.var).EA.type = IS_STRING_OFFSET; FREE_OP(Ts, op2, EG(free_op2)); *retval = NULL; return; @@ -887,20 +890,20 @@ zval *container = get_zval_ptr(op1, Ts, &free_op1, BP_VAR_R); if (container->type != IS_ARRAY) { - Ts[result->u.var].var.ptr_ptr = &EG(uninitialized_zval_ptr); - SELECTIVE_PZVAL_LOCK(*Ts[result->u.var].var.ptr_ptr, result); + T(result->u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr); + SELECTIVE_PZVAL_LOCK(*T(result->u.var).var.ptr_ptr, result); return; } - Ts[result->u.var].var.ptr_ptr = zend_fetch_dimension_address_inner(container->value.ht, op2, Ts, BP_VAR_R TSRMLS_CC); - SELECTIVE_PZVAL_LOCK(*Ts[result->u.var].var.ptr_ptr, result); + T(result->u.var).var.ptr_ptr = +zend_fetch_dimension_address_inner(container->value.ht, op2, Ts, BP_VAR_R TSRMLS_CC); + SELECTIVE_PZVAL_LOCK(*T(result->u.var).var.ptr_ptr, result); } static void zend_fetch_property_address(znode *result, znode *op1, znode *op2, temp_variable *Ts, int type TSRMLS_DC) { zval **container_ptr = get_obj_zval_ptr_ptr(op1, Ts, type TSRMLS_CC); zval *container; - zval ***retval = &Ts[result->u.var].var.ptr_ptr; + zval ***retval = &T(result->u.var).var.ptr_ptr; container = *container_ptr; if (container == EG(error_zval_ptr)) { @@ -952,8 +955,8 @@ zval *container; zval **retval; - retval = &Ts[result->u.var].var.ptr; - Ts[result->u.var].var.ptr_ptr = retval; + retval = &T(result->u.var).var.ptr; + T(result->u.var).var.ptr_ptr = retval; container = get_obj_zval_ptr(op1, Ts, &EG(free_op1), type TSRMLS_CC); @@ -1009,7 +1012,7 @@ zval **object_ptr = get_obj_zval_ptr_ptr(op1, Ts, BP_VAR_W TSRMLS_CC); zval *object; zval *property = get_zval_ptr(op2, Ts, &EG(free_op2), BP_VAR_R); - zval **retval = &Ts[result->u.var].var.ptr; + zval **retval = &T(result->u.var).var.ptr; int have_get_ptr = 0; make_real_object(object_ptr TSRMLS_CC); /* this should modify object only if it's empty */ @@ -1056,7 +1059,7 @@ zval **object_ptr = get_obj_zval_ptr_ptr(op1, Ts, BP_VAR_W TSRMLS_CC); zval *object; zval *property = get_zval_ptr(op2, Ts, &EG(free_op2), BP_VAR_R); - zval *retval = &Ts[result->u.var].tmp_var; + zval *retval = &T(result->u.var).tmp_var; int have_get_ptr = 0; make_real_object(object_ptr TSRMLS_CC); /* this should modify object only if it's empty */ @@ -1201,7 +1204,7 @@ int zend_add_handler(ZEND_OPCODE_HANDLER_ARGS) { - add_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + add_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1211,7 +1214,7 @@ int zend_sub_handler(ZEND_OPCODE_HANDLER_ARGS) { - sub_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + sub_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1221,7 +1224,7 @@ int zend_mul_handler(ZEND_OPCODE_HANDLER_ARGS) { - mul_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + mul_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1231,7 +1234,7 @@ int zend_div_handler(ZEND_OPCODE_HANDLER_ARGS) { - div_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + div_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1241,7 +1244,7 @@ int zend_mod_handler(ZEND_OPCODE_HANDLER_ARGS) { - mod_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + mod_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1251,7 +1254,7 @@ int zend_sl_handler(ZEND_OPCODE_HANDLER_ARGS) { - shift_left_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + shift_left_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1261,7 +1264,7 @@ int zend_sr_handler(ZEND_OPCODE_HANDLER_ARGS) { - shift_right_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + shift_right_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1271,7 +1274,7 @@ int zend_concat_handler(ZEND_OPCODE_HANDLER_ARGS) { - concat_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + concat_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1281,7 +1284,7 @@ int zend_is_identical_handler(ZEND_OPCODE_HANDLER_ARGS) { - is_identical_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + is_identical_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1291,7 +1294,7 @@ int zend_is_not_identical_handler(ZEND_OPCODE_HANDLER_ARGS) { - is_not_identical_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + is_not_identical_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1301,7 +1304,7 @@ int zend_is_equal_handler(ZEND_OPCODE_HANDLER_ARGS) { - is_equal_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + is_equal_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1311,7 +1314,7 @@ int zend_is_not_equal_handler(ZEND_OPCODE_HANDLER_ARGS) { - is_not_equal_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + is_not_equal_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1321,7 +1324,7 @@ int zend_is_smaller_handler(ZEND_OPCODE_HANDLER_ARGS) { - is_smaller_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + is_smaller_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1331,7 +1334,7 @@ int zend_is_smaller_or_equal_handler(ZEND_OPCODE_HANDLER_ARGS) { - is_smaller_or_equal_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + is_smaller_or_equal_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1341,7 +1344,7 @@ int zend_bw_or_handler(ZEND_OPCODE_HANDLER_ARGS) { - bitwise_or_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + bitwise_or_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1351,7 +1354,7 @@ int zend_bw_and_handler(ZEND_OPCODE_HANDLER_ARGS) { - bitwise_and_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + bitwise_and_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1361,7 +1364,7 @@ int zend_bw_xor_handler(ZEND_OPCODE_HANDLER_ARGS) { - bitwise_xor_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + bitwise_xor_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1371,7 +1374,7 @@ int zend_bool_xor_handler(ZEND_OPCODE_HANDLER_ARGS) { - boolean_xor_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + boolean_xor_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); @@ -1381,7 +1384,7 @@ int zend_bw_not_handler(ZEND_OPCODE_HANDLER_ARGS) { - bitwise_not_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + bitwise_not_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); NEXT_OPCODE(); @@ -1389,7 +1392,7 @@ int zend_bool_not_handler(ZEND_OPCODE_HANDLER_ARGS) { - boolean_not_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + boolean_not_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R) TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); NEXT_OPCODE(); @@ -1405,19 +1408,19 @@ } if (*var_ptr == EG(error_zval_ptr)) { - EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr = &EG(uninitialized_zval_ptr); - SELECTIVE_PZVAL_LOCK(*EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr, &EX(opline)->result); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + EX_T(EX(opline)->result.u.var).var.ptr_ptr = +&EG(uninitialized_zval_ptr); + SELECTIVE_PZVAL_LOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr, +&EX(opline)->result); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); NEXT_OPCODE(); } SEPARATE_ZVAL_IF_NOT_REF(var_ptr); binary_op(*var_ptr, *var_ptr, get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); - EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr = var_ptr; + EX_T(EX(opline)->result.u.var).var.ptr_ptr = var_ptr; SELECTIVE_PZVAL_LOCK(*var_ptr, &EX(opline)->result); FREE_OP(EX(Ts), &EX(opline)->op2, EG(free_op2)); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); NEXT_OPCODE(); } @@ -1479,67 +1482,67 @@ int zend_assign_add_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts), add_function TSRMLS_CC); + zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, +&EX(opline)->op2, EX_T(EX(opline)->extended_value).var.ptr, EX(Ts), add_function +TSRMLS_CC); NEXT_OPCODE(); } int zend_assign_sub_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts), sub_function TSRMLS_CC); + zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, +&EX(opline)->op2, EX_T(EX(opline)->extended_value).var.ptr, EX(Ts), sub_function +TSRMLS_CC); NEXT_OPCODE(); } int zend_assign_mul_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts), mul_function TSRMLS_CC); + zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, +&EX(opline)->op2, EX_T(EX(opline)->extended_value).var.ptr, EX(Ts), mul_function +TSRMLS_CC); NEXT_OPCODE(); } int zend_assign_div_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts), div_function TSRMLS_CC); + zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, +&EX(opline)->op2, EX_T(EX(opline)->extended_value).var.ptr, EX(Ts), div_function +TSRMLS_CC); NEXT_OPCODE(); } int zend_assign_mod_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts), mod_function TSRMLS_CC); + zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, +&EX(opline)->op2, EX_T(EX(opline)->extended_value).var.ptr, EX(Ts), mod_function +TSRMLS_CC); NEXT_OPCODE(); } int zend_assign_sl_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts), shift_left_function TSRMLS_CC); + zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, +&EX(opline)->op2, EX_T(EX(opline)->extended_value).var.ptr, EX(Ts), +shift_left_function TSRMLS_CC); NEXT_OPCODE(); } int zend_assign_sr_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts), shift_right_function TSRMLS_CC); + zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, +&EX(opline)->op2, EX_T(EX(opline)->extended_value).var.ptr, EX(Ts), +shift_right_function TSRMLS_CC); NEXT_OPCODE(); } int zend_assign_concat_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts), concat_function TSRMLS_CC); + zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, +&EX(opline)->op2, EX_T(EX(opline)->extended_value).var.ptr, EX(Ts), concat_function +TSRMLS_CC); NEXT_OPCODE(); } int zend_assign_bw_or_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts), bitwise_or_function TSRMLS_CC); + zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, +&EX(opline)->op2, EX_T(EX(opline)->extended_value).var.ptr, EX(Ts), +bitwise_or_function TSRMLS_CC); NEXT_OPCODE(); } int zend_assign_bw_and_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts), bitwise_and_function TSRMLS_CC); + zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, +&EX(opline)->op2, EX_T(EX(opline)->extended_value).var.ptr, EX(Ts), +bitwise_and_function TSRMLS_CC); NEXT_OPCODE(); } int zend_assign_bw_xor_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts), bitwise_xor_function TSRMLS_CC); + zend_assign_to_object_op(&EX(opline)->result, &EX(opline)->op1, +&EX(opline)->op2, EX_T(EX(opline)->extended_value).var.ptr, EX(Ts), +bitwise_xor_function TSRMLS_CC); NEXT_OPCODE(); } @@ -1576,17 +1579,17 @@ zend_error(E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets"); } if (*var_ptr == EG(error_zval_ptr)) { - EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr = &EG(uninitialized_zval_ptr); - SELECTIVE_PZVAL_LOCK(*EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr, &EX(opline)->result); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + EX_T(EX(opline)->result.u.var).var.ptr_ptr = +&EG(uninitialized_zval_ptr); + SELECTIVE_PZVAL_LOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr, +&EX(opline)->result); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); NEXT_OPCODE(); } switch (EX(opline)->opcode) { case ZEND_POST_INC: case ZEND_POST_DEC: - EX(Ts)[EX(opline)->result.u.var].tmp_var = **var_ptr; - zendi_zval_copy_ctor(EX(Ts)[EX(opline)->result.u.var].tmp_var); + EX_T(EX(opline)->result.u.var).tmp_var = **var_ptr; + zendi_zval_copy_ctor(EX_T(EX(opline)->result.u.var).tmp_var); break; } @@ -1597,9 +1600,9 @@ switch (EX(opline)->opcode) { case ZEND_PRE_INC: case ZEND_PRE_DEC: - EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr = var_ptr; + EX_T(EX(opline)->result.u.var).var.ptr_ptr = var_ptr; SELECTIVE_PZVAL_LOCK(*var_ptr, &EX(opline)->result); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); break; } NEXT_OPCODE(); @@ -1628,8 +1631,8 @@ int zend_print_handler(ZEND_OPCODE_HANDLER_ARGS) { zend_print_variable(get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R)); - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.lval = 1; - EX(Ts)[EX(opline)->result.u.var].tmp_var.type = IS_LONG; + EX_T(EX(opline)->result.u.var).tmp_var.value.lval = 1; + EX_T(EX(opline)->result.u.var).tmp_var.type = IS_LONG; FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); NEXT_OPCODE(); } @@ -1644,7 +1647,7 @@ int zend_fetch_r_handler(ZEND_OPCODE_HANDLER_ARGS) { zend_fetch_var_address(EX(opline), EX(Ts), BP_VAR_R TSRMLS_CC); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); NEXT_OPCODE(); } @@ -1668,7 +1671,7 @@ } else { /* Behave like FETCH_R */ zend_fetch_var_address(EX(opline), EX(Ts), BP_VAR_R TSRMLS_CC); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); } NEXT_OPCODE(); } @@ -1676,28 +1679,28 @@ int zend_fetch_unset_handler(ZEND_OPCODE_HANDLER_ARGS) { zend_fetch_var_address(EX(opline), EX(Ts), BP_VAR_R TSRMLS_CC); - PZVAL_UNLOCK(*EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr); - if (EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr != &EG(uninitialized_zval_ptr)) { - SEPARATE_ZVAL_IF_NOT_REF(EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr); + PZVAL_UNLOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr); + if (EX_T(EX(opline)->result.u.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) +{ + SEPARATE_ZVAL_IF_NOT_REF(EX_T(EX(opline)->result.u.var).var.ptr_ptr); } - PZVAL_LOCK(*EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr); + PZVAL_LOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr); NEXT_OPCODE(); } int zend_fetch_is_handler(ZEND_OPCODE_HANDLER_ARGS) { zend_fetch_var_address(EX(opline), EX(Ts), BP_VAR_IS TSRMLS_CC); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); NEXT_OPCODE(); } int zend_fetch_dim_r_handler(ZEND_OPCODE_HANDLER_ARGS) { if (EX(opline)->extended_value == ZEND_FETCH_ADD_LOCK) { - PZVAL_LOCK(*EX(Ts)[EX(opline)->op1.u.var].var.ptr_ptr); + PZVAL_LOCK(*EX_T(EX(opline)->op1.u.var).var.ptr_ptr); } zend_fetch_dimension_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_R TSRMLS_CC); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); NEXT_OPCODE(); } @@ -1716,7 +1719,7 @@ int zend_fetch_dim_is_handler(ZEND_OPCODE_HANDLER_ARGS) { zend_fetch_dimension_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_IS TSRMLS_CC); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); NEXT_OPCODE(); } @@ -1728,7 +1731,7 @@ } else { /* Behave like FETCH_DIM_R, except for locking used for list() */ zend_fetch_dimension_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_R TSRMLS_CC); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); } NEXT_OPCODE(); } @@ -1737,22 +1740,22 @@ { /* Not needed in DIM_UNSET if (EX(opline)->extended_value == ZEND_FETCH_ADD_LOCK) { - PZVAL_LOCK(*EX(Ts)[EX(opline)->op1.u.var].var.ptr_ptr); + PZVAL_LOCK(*EX_T(EX(opline)->op1.u.var).var.ptr_ptr); } */ zend_fetch_dimension_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_R TSRMLS_CC); - PZVAL_UNLOCK(*EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr); - if (EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr != &EG(uninitialized_zval_ptr)) { - SEPARATE_ZVAL_IF_NOT_REF(EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr); + PZVAL_UNLOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr); + if (EX_T(EX(opline)->result.u.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) +{ + SEPARATE_ZVAL_IF_NOT_REF(EX_T(EX(opline)->result.u.var).var.ptr_ptr); } - PZVAL_LOCK(*EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr); + PZVAL_LOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr); NEXT_OPCODE(); } int zend_fetch_obj_r_handler(ZEND_OPCODE_HANDLER_ARGS) { zend_fetch_property_address_read(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_R TSRMLS_CC); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); NEXT_OPCODE(); } @@ -1771,7 +1774,7 @@ int zend_fetch_obj_is_handler(ZEND_OPCODE_HANDLER_ARGS) { zend_fetch_property_address_read(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_IS TSRMLS_CC); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); NEXT_OPCODE(); } @@ -1782,7 +1785,7 @@ zend_fetch_property_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_W TSRMLS_CC); } else { zend_fetch_property_address_read(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_R TSRMLS_CC); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); } NEXT_OPCODE(); } @@ -1791,18 +1794,18 @@ { zend_fetch_property_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_R TSRMLS_CC); - PZVAL_UNLOCK(*EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr); - if (EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr != &EG(uninitialized_zval_ptr)) { - SEPARATE_ZVAL_IF_NOT_REF(EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr); + PZVAL_UNLOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr); + if (EX_T(EX(opline)->result.u.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) +{ + SEPARATE_ZVAL_IF_NOT_REF(EX_T(EX(opline)->result.u.var).var.ptr_ptr); } - PZVAL_LOCK(*EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr); + PZVAL_LOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr); NEXT_OPCODE(); } int zend_fetch_dim_tmp_var_handler(ZEND_OPCODE_HANDLER_ARGS) { zend_fetch_dimension_address_from_tmp_var(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts) TSRMLS_CC); - AI_USE_PTR(EX(Ts)[EX(opline)->result.u.var].var); + AI_USE_PTR(EX_T(EX(opline)->result.u.var).var); NEXT_OPCODE(); } @@ -1829,15 +1832,15 @@ break; } - EX(Ts)[EX(opline)->result.u.var].var.ptr = value; - PZVAL_LOCK(EX(Ts)[EX(opline)->result.u.var].var.ptr); + EX_T(EX(opline)->result.u.var).var.ptr = value; + PZVAL_LOCK(EX_T(EX(opline)->result.u.var).var.ptr); NEXT_OPCODE(); } int zend_assign_obj_handler(ZEND_OPCODE_HANDLER_ARGS) { - zend_assign_to_object(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts)[EX(opline)->extended_value].var.ptr, EX(Ts) TSRMLS_CC); + zend_assign_to_object(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, +EX_T(EX(opline)->extended_value).var.ptr, EX(Ts) TSRMLS_CC); NEXT_OPCODE(); } @@ -1930,8 +1933,8 @@ int retval = zend_is_true(get_zval_ptr(&original_opline->op1, EX(Ts), &EG(free_op1), BP_VAR_R)); FREE_OP(EX(Ts), &original_opline->op1, EG(free_op1)); - EX(Ts)[original_opline->result.u.var].tmp_var.value.lval = retval; - EX(Ts)[original_opline->result.u.var].tmp_var.type = IS_BOOL; + EX_T(original_opline->result.u.var).tmp_var.value.lval = retval; + EX_T(original_opline->result.u.var).tmp_var.type = IS_BOOL; if (!retval) { #if DEBUG_ZEND>=2 printf("Conditional jmp to %d\n", EX(opline)->op2.u.opline_num); @@ -1948,8 +1951,8 @@ int retval = zend_is_true(get_zval_ptr(&original_opline->op1, EX(Ts), &EG(free_op1), BP_VAR_R)); FREE_OP(EX(Ts), &original_opline->op1, EG(free_op1)); - EX(Ts)[original_opline->result.u.var].tmp_var.value.lval = retval; - EX(Ts)[original_opline->result.u.var].tmp_var.type = IS_BOOL; + EX_T(original_opline->result.u.var).tmp_var.value.lval = retval; + EX_T(original_opline->result.u.var).tmp_var.type = IS_BOOL; if (retval) { #if DEBUG_ZEND>=2 printf("Conditional jmp to %d\n", EX(opline)->op2.u.opline_num); @@ -1962,24 +1965,24 @@ int zend_free_handler(ZEND_OPCODE_HANDLER_ARGS) { - zendi_zval_dtor(EX(Ts)[EX(opline)->op1.u.var].tmp_var); + zendi_zval_dtor(EX_T(EX(opline)->op1.u.var).tmp_var); NEXT_OPCODE(); } int zend_init_string_handler(ZEND_OPCODE_HANDLER_ARGS) { - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.str.val = emalloc(1); - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.str.val[0] = 0; - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.str.len = 0; - EX(Ts)[EX(opline)->result.u.var].tmp_var.refcount = 1; - EX(Ts)[EX(opline)->result.u.var].tmp_var.type = IS_STRING; - EX(Ts)[EX(opline)->result.u.var].tmp_var.is_ref = 0; + EX_T(EX(opline)->result.u.var).tmp_var.value.str.val = emalloc(1); + EX_T(EX(opline)->result.u.var).tmp_var.value.str.val[0] = 0; + EX_T(EX(opline)->result.u.var).tmp_var.value.str.len = 0; + EX_T(EX(opline)->result.u.var).tmp_var.refcount = 1; + EX_T(EX(opline)->result.u.var).tmp_var.type = IS_STRING; + EX_T(EX(opline)->result.u.var).tmp_var.is_ref = 0; NEXT_OPCODE(); } int zend_add_char_handler(ZEND_OPCODE_HANDLER_ARGS) { - add_char_to_string(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + add_char_to_string(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_NA), &EX(opline)->op2.u.constant); /* FREE_OP is missing intentionally here - we're always working on the same temporary variable */ @@ -1988,7 +1991,7 @@ int zend_add_string_handler(ZEND_OPCODE_HANDLER_ARGS) { - add_string_to_string(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + add_string_to_string(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_NA), &EX(opline)->op2.u.constant); /* FREE_OP is missing intentionally here - we're always working on the same temporary variable */ @@ -2005,7 +2008,7 @@ if (use_copy) { var = &var_copy; } - add_string_to_string( &EX(Ts)[EX(opline)->result.u.var].tmp_var, + add_string_to_string( &EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_NA), var); if (use_copy) { @@ -2027,7 +2030,7 @@ zend_class_entry *ce; zend_function *function; - ce = EX(Ts)[EX(opline)->op1.u.var].EA.class_entry; + ce = EX_T(EX(opline)->op1.u.var).EA.class_entry; if (EX(opline)->op2.op_type != IS_UNUSED) { char *function_name_strval; @@ -2056,7 +2059,7 @@ zend_class_entry *ce; zend_class_entry **import_ce; - ce = EX(Ts)[EX(opline)->op1.u.var].EA.class_entry; + ce = EX_T(EX(opline)->op1.u.var).EA.class_entry; if (EX(opline)->op2.op_type != IS_UNUSED) { char *class_name_strval; @@ -2087,7 +2090,7 @@ zval **import_constant; zend_constant c; - ce = EX(Ts)[EX(opline)->op1.u.var].EA.class_entry; + ce = EX_T(EX(opline)->op1.u.var).EA.class_entry; if (EX(opline)->op2.op_type != IS_UNUSED) { char *const_name_strval; int const_name_strlen; @@ -2148,10 +2151,10 @@ if (!EG(scope)) { zend_error(E_ERROR, "Cannot fetch self:: when no class scope is active"); } - EX(Ts)[EX(opline)->result.u.var].EA.class_entry = EG(scope); + EX_T(EX(opline)->result.u.var).EA.class_entry = EG(scope); NEXT_OPCODE(); } else if (EX(opline)->extended_value == ZEND_FETCH_CLASS_MAIN) { - EX(Ts)[EX(opline)->result.u.var].EA.class_entry = EG(main_class_ptr); + EX_T(EX(opline)->result.u.var).EA.class_entry = +EG(main_class_ptr); NEXT_OPCODE(); } else if (EX(opline)->extended_value == ZEND_FETCH_CLASS_PARENT) { if (!EG(scope)) { @@ -2160,7 +2163,7 @@ if (!EG(scope)->parent) { zend_error(E_ERROR, "Cannot fetch parent:: as current class scope has no parent"); } - EX(Ts)[EX(opline)->result.u.var].EA.class_entry = EG(scope)->parent; + EX_T(EX(opline)->result.u.var).EA.class_entry = +EG(scope)->parent; NEXT_OPCODE(); } } @@ -2185,13 +2188,13 @@ if (EX(opline)->op1.op_type == IS_UNUSED) { retval = zend_lookup_class(class_name_strval, class_name_strlen, &pce TSRMLS_CC); } else { - retval = zend_hash_find(&EX(Ts)[EX(opline)->op1.u.var].EA.class_entry->class_table, class_name_strval, class_name_strlen+1, (void **)&pce); + retval = +zend_hash_find(&EX_T(EX(opline)->op1.u.var).EA.class_entry->class_table, +class_name_strval, class_name_strlen+1, (void **)&pce); } if (retval == FAILURE) { zend_error(E_ERROR, "Class '%s' not found", class_name_strval); } else { - EX(Ts)[EX(opline)->result.u.var].EA.class_entry = *pce; + EX_T(EX(opline)->result.u.var).EA.class_entry = *pce; } if (!is_const) { zval_dtor(&tmp); @@ -2205,7 +2208,7 @@ zend_ptr_stack_n_push(&EG(arg_types_stack), 3, EX(fbc), EX(object), EX(calling_scope)); if (EX(opline)->op1.op_type == IS_VAR) { - SELECTIVE_PZVAL_LOCK(*EX(Ts)[EX(opline)->op1.u.var].var.ptr_ptr, &EX(opline)->op1); + SELECTIVE_PZVAL_LOCK(*EX_T(EX(opline)->op1.u.var).var.ptr_ptr, +&EX(opline)->op1); } /* We are not handling overloaded classes right now */ @@ -2314,7 +2317,7 @@ EX(object)->refcount++; } - ce = EX(Ts)[EX(opline)->op1.u.var].EA.class_entry; + ce = EX_T(EX(opline)->op1.u.var).EA.class_entry; EX(calling_scope) = ce; @@ -2403,22 +2406,22 @@ current_this = EG(This); EG(This) = EX(object); - EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr = &EX(Ts)[EX(opline)->result.u.var].var.ptr; + EX_T(EX(opline)->result.u.var).var.ptr_ptr = +&EX_T(EX(opline)->result.u.var).var.ptr; if (EX(function_state).function->type==ZEND_INTERNAL_FUNCTION) { - ALLOC_ZVAL(EX(Ts)[EX(opline)->result.u.var].var.ptr); - INIT_ZVAL(*(EX(Ts)[EX(opline)->result.u.var].var.ptr)); - ((zend_internal_function *) EX(function_state).function)->handler(EX(opline)->extended_value, EX(Ts)[EX(opline)->result.u.var].var.ptr, EX(object), return_value_used TSRMLS_CC); + ALLOC_ZVAL(EX_T(EX(opline)->result.u.var).var.ptr); + INIT_ZVAL(*(EX_T(EX(opline)->result.u.var).var.ptr)); + ((zend_internal_function *) +EX(function_state).function)->handler(EX(opline)->extended_value, +EX_T(EX(opline)->result.u.var).var.ptr, EX(object), return_value_used TSRMLS_CC); EG(current_execute_data) = execute_data; - EX(Ts)[EX(opline)->result.u.var].var.ptr->is_ref = 0; - EX(Ts)[EX(opline)->result.u.var].var.ptr->refcount = 1; + EX_T(EX(opline)->result.u.var).var.ptr->is_ref = 0; + EX_T(EX(opline)->result.u.var).var.ptr->refcount = 1; if (!return_value_used) { - zval_ptr_dtor(&EX(Ts)[EX(opline)->result.u.var].var.ptr); + zval_ptr_dtor(&EX_T(EX(opline)->result.u.var).var.ptr); } } else if (EX(function_state).function->type==ZEND_USER_FUNCTION) { HashTable *calling_symbol_table; - EX(Ts)[EX(opline)->result.u.var].var.ptr = NULL; + EX_T(EX(opline)->result.u.var).var.ptr = NULL; if (EG(symtable_cache_ptr)>=EG(symtable_cache)) { /*printf("Cache hit! Reusing %x\n", symtable_cache[symtable_cache_ptr]);*/ EX(function_state).function_symbol_table = *(EG(symtable_cache_ptr)--); @@ -2430,18 +2433,18 @@ calling_symbol_table = EG(active_symbol_table); EG(active_symbol_table) = EX(function_state).function_symbol_table; original_return_value = EG(return_value_ptr_ptr); - EG(return_value_ptr_ptr) = EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr; + EG(return_value_ptr_ptr) = EX_T(EX(opline)->result.u.var).var.ptr_ptr; EG(active_op_array) = (zend_op_array *) EX(function_state).function; zend_execute(EG(active_op_array) TSRMLS_CC); - if (return_value_used && !EX(Ts)[EX(opline)->result.u.var].var.ptr) { + if (return_value_used && !EX_T(EX(opline)->result.u.var).var.ptr) { if (!EG(exception)) { - ALLOC_ZVAL(EX(Ts)[EX(opline)->result.u.var].var.ptr); - INIT_ZVAL(*EX(Ts)[EX(opline)->result.u.var].var.ptr); + ALLOC_ZVAL(EX_T(EX(opline)->result.u.var).var.ptr); + INIT_ZVAL(*EX_T(EX(opline)->result.u.var).var.ptr); } - } else if (!return_value_used && EX(Ts)[EX(opline)->result.u.var].var.ptr) { - zval_ptr_dtor(&EX(Ts)[EX(opline)->result.u.var].var.ptr); + } else if (!return_value_used && +EX_T(EX(opline)->result.u.var).var.ptr) { + zval_ptr_dtor(&EX_T(EX(opline)->result.u.var).var.ptr); } EG(opline_ptr) = &EX(opline); @@ -2456,18 +2459,18 @@ } EG(active_symbol_table) = calling_symbol_table; } else { /* ZEND_OVERLOADED_FUNCTION */ - ALLOC_ZVAL(EX(Ts)[EX(opline)->result.u.var].var.ptr); - INIT_ZVAL(*(EX(Ts)[EX(opline)->result.u.var].var.ptr)); + ALLOC_ZVAL(EX_T(EX(opline)->result.u.var).var.ptr); + INIT_ZVAL(*(EX_T(EX(opline)->result.u.var).var.ptr)); if (EX(object)) { - Z_OBJ_HT_P(EX(object))->call_method(EX(fbc)->common.function_name, EX(opline)->extended_value, EX(Ts)[EX(opline)->result.u.var].var.ptr, EX(object), return_value_used TSRMLS_CC); + +Z_OBJ_HT_P(EX(object))->call_method(EX(fbc)->common.function_name, +EX(opline)->extended_value, EX_T(EX(opline)->result.u.var).var.ptr, EX(object), +return_value_used TSRMLS_CC); } else { zend_error(E_ERROR, "Cannot call overloaded function for non-object"); } efree(EX(fbc)); if (!return_value_used) { - zval_ptr_dtor(&EX(Ts)[EX(opline)->result.u.var].var.ptr); + zval_ptr_dtor(&EX_T(EX(opline)->result.u.var).var.ptr); } } zend_ptr_stack_n_pop(&EG(arg_types_stack), 3, &EX(calling_scope), &EX(object), &EX(fbc)); @@ -2611,9 +2614,9 @@ return 0; /* CHECK_ME */ } ce = Z_OBJCE_P(EG(exception)); - if (ce != EX(Ts)[EX(opline)->op1.u.var].EA.class_entry) { + if (ce != EX_T(EX(opline)->op1.u.var).EA.class_entry) { while (ce->parent) { - if (ce->parent == EX(Ts)[EX(opline)->op1.u.var].EA.class_entry) { + if (ce->parent == EX_T(EX(opline)->op1.u.var).EA.class_entry) { goto exception_should_be_taken; } ce = ce->parent; @@ -2735,7 +2738,7 @@ if (zend_ptr_stack_get_arg(EX(opline)->op1.u.constant.value.lval, (void **) ¶m TSRMLS_CC)==FAILURE) { zend_error(E_WARNING, "Missing argument %d for %s()\n", EX(opline)->op1.u.constant.value.lval, get_active_function_name(TSRMLS_C)); if (EX(opline)->result.op_type == IS_VAR) { - PZVAL_UNLOCK(*EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr); + PZVAL_UNLOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr); } } else if (PZVAL_IS_REF(*param)) { zend_assign_to_variable_reference(NULL, get_zval_ptr_ptr(&EX(opline)->result, EX(Ts), BP_VAR_W), param, NULL TSRMLS_CC); @@ -2785,8 +2788,8 @@ int zend_bool_handler(ZEND_OPCODE_HANDLER_ARGS) { /* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */ - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.lval = zend_is_true(get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R)); - EX(Ts)[EX(opline)->result.u.var].tmp_var.type = IS_BOOL; + EX_T(EX(opline)->result.u.var).tmp_var.value.lval = +zend_is_true(get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R)); + EX_T(EX(opline)->result.u.var).tmp_var.type = IS_BOOL; FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); NEXT_OPCODE(); @@ -2822,7 +2825,7 @@ zend_switch_free(brk_opline, EX(Ts) TSRMLS_CC); break; case ZEND_FREE: - zendi_zval_dtor(EX(Ts)[brk_opline->op1.u.var].tmp_var); + +zendi_zval_dtor(EX_T(brk_opline->op1.u.var).tmp_var); break; } } @@ -2853,16 +2856,16 @@ int switch_expr_is_overloaded=0; if (EX(opline)->op1.op_type==IS_VAR) { - if (EX(Ts)[EX(opline)->op1.u.var].var.ptr_ptr) { - PZVAL_LOCK(*EX(Ts)[EX(opline)->op1.u.var].var.ptr_ptr); + if (EX_T(EX(opline)->op1.u.var).var.ptr_ptr) { + PZVAL_LOCK(*EX_T(EX(opline)->op1.u.var).var.ptr_ptr); } else { switch_expr_is_overloaded = 1; - if (EX(Ts)[EX(opline)->op1.u.var].EA.type==IS_STRING_OFFSET) { - EX(Ts)[EX(opline)->op1.u.var].EA.data.str_offset.str->refcount++; + if (EX_T(EX(opline)->op1.u.var).EA.type==IS_STRING_OFFSET) { + +EX_T(EX(opline)->op1.u.var).EA.data.str_offset.str->refcount++; } } } - is_equal_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, + is_equal_function(&EX_T(EX(opline)->result.u.var).tmp_var, get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R), get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R) TSRMLS_CC); @@ -2874,8 +2877,8 @@ * are allocated at each get_zval_ptr()) */ FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); - EX(Ts)[EX(opline)->op1.u.var].var.ptr_ptr = NULL; - AI_USE_PTR(EX(Ts)[EX(opline)->op1.u.var].var); + EX_T(EX(opline)->op1.u.var).var.ptr_ptr = NULL; + AI_USE_PTR(EX_T(EX(opline)->op1.u.var).var); } NEXT_OPCODE(); } @@ -2888,11 +2891,11 @@ int zend_new_handler(ZEND_OPCODE_HANDLER_ARGS) { - EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr = &EX(Ts)[EX(opline)->result.u.var].var.ptr; - ALLOC_ZVAL(EX(Ts)[EX(opline)->result.u.var].var.ptr); - object_init_ex(EX(Ts)[EX(opline)->result.u.var].var.ptr, EX(Ts)[EX(opline)->op1.u.var].EA.class_entry); - EX(Ts)[EX(opline)->result.u.var].var.ptr->refcount=1; - EX(Ts)[EX(opline)->result.u.var].var.ptr->is_ref=1; + EX_T(EX(opline)->result.u.var).var.ptr_ptr = +&EX_T(EX(opline)->result.u.var).var.ptr; + ALLOC_ZVAL(EX_T(EX(opline)->result.u.var).var.ptr); + object_init_ex(EX_T(EX(opline)->result.u.var).var.ptr, +EX_T(EX(opline)->op1.u.var).EA.class_entry); + EX_T(EX(opline)->result.u.var).var.ptr->refcount=1; + EX_T(EX(opline)->result.u.var).var.ptr->is_ref=1; NEXT_OPCODE(); } @@ -2901,12 +2904,12 @@ { zval *obj = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R); - EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr = &EX(Ts)[EX(opline)->result.u.var].var.ptr; - ALLOC_ZVAL(EX(Ts)[EX(opline)->result.u.var].var.ptr); - EX(Ts)[EX(opline)->result.u.var].var.ptr->value.obj = Z_OBJ_HT_P(obj)->clone_obj(obj TSRMLS_CC); - EX(Ts)[EX(opline)->result.u.var].var.ptr->type = IS_OBJECT; - EX(Ts)[EX(opline)->result.u.var].var.ptr->refcount=1; - EX(Ts)[EX(opline)->result.u.var].var.ptr->is_ref=1; + EX_T(EX(opline)->result.u.var).var.ptr_ptr = +&EX_T(EX(opline)->result.u.var).var.ptr; + ALLOC_ZVAL(EX_T(EX(opline)->result.u.var).var.ptr); + EX_T(EX(opline)->result.u.var).var.ptr->value.obj = +Z_OBJ_HT_P(obj)->clone_obj(obj TSRMLS_CC); + EX_T(EX(opline)->result.u.var).var.ptr->type = IS_OBJECT; + EX_T(EX(opline)->result.u.var).var.ptr->refcount=1; + EX_T(EX(opline)->result.u.var).var.ptr->is_ref=1; NEXT_OPCODE(); } @@ -2920,37 +2923,37 @@ ce = EG(scope); if (zend_hash_find(&ce->constants_table, EX(opline)->op2.u.constant.value.str.val, EX(opline)->op2.u.constant.value.str.len+1, (void **) &value) == SUCCESS) { zval_update_constant(value, (void *) 1 TSRMLS_CC); - EX(Ts)[EX(opline)->result.u.var].tmp_var = **value; - zval_copy_ctor(&EX(Ts)[EX(opline)->result.u.var].tmp_var); + EX_T(EX(opline)->result.u.var).tmp_var = **value; + +zval_copy_ctor(&EX_T(EX(opline)->result.u.var).tmp_var); NEXT_OPCODE(); } } - if (!zend_get_constant(EX(opline)->op2.u.constant.value.str.val, EX(opline)->op2.u.constant.value.str.len, &EX(Ts)[EX(opline)->result.u.var].tmp_var TSRMLS_CC)) { + if (!zend_get_constant(EX(opline)->op2.u.constant.value.str.val, +EX(opline)->op2.u.constant.value.str.len, &EX_T(EX(opline)->result.u.var).tmp_var +TSRMLS_CC)) { zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", EX(opline)->op2.u.constant.value.str.val, EX(opline)->op2.u.constant.value.str.val); - EX(Ts)[EX(opline)->result.u.var].tmp_var = EX(opline)->op2.u.constant; - zval_copy_ctor(&EX(Ts)[EX(opline)->result.u.var].tmp_var); + EX_T(EX(opline)->result.u.var).tmp_var = +EX(opline)->op2.u.constant; + zval_copy_ctor(&EX_T(EX(opline)->result.u.var).tmp_var); } NEXT_OPCODE(); } - ce = EX(Ts)[EX(opline)->op1.u.var].EA.class_entry; + ce = EX_T(EX(opline)->op1.u.var).EA.class_entry; if (&ce->constants_table == &EG(main_class_ptr)->constants_table) { - if (!zend_get_constant(EX(opline)->op2.u.constant.value.str.val, EX(opline)->op2.u.constant.value.str.len, &EX(Ts)[EX(opline)->result.u.var].tmp_var TSRMLS_CC)) { + if (!zend_get_constant(EX(opline)->op2.u.constant.value.str.val, +EX(opline)->op2.u.constant.value.str.len, &EX_T(EX(opline)->result.u.var).tmp_var +TSRMLS_CC)) { zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", EX(opline)->op2.u.constant.value.str.val, EX(opline)->op2.u.constant.value.str.val); - EX(Ts)[EX(opline)->result.u.var].tmp_var = EX(opline)->op2.u.constant; - zval_copy_ctor(&EX(Ts)[EX(opline)->result.u.var].tmp_var); + EX_T(EX(opline)->result.u.var).tmp_var = +EX(opline)->op2.u.constant; + zval_copy_ctor(&EX_T(EX(opline)->result.u.var).tmp_var); } NEXT_OPCODE(); } if (zend_hash_find(&ce->constants_table, EX(opline)->op2.u.constant.value.str.val, EX(opline)->op2.u.constant.value.str.len+1, (void **) &value) == SUCCESS) { zval_update_constant(value, (void *) 1 TSRMLS_CC); - EX(Ts)[EX(opline)->result.u.var].tmp_var = **value; - zval_copy_ctor(&EX(Ts)[EX(opline)->result.u.var].tmp_var); + EX_T(EX(opline)->result.u.var).tmp_var = **value; + zval_copy_ctor(&EX_T(EX(opline)->result.u.var).tmp_var); } else { zend_error(E_ERROR, "Undefined class constant '%s'", EX(opline)->op2.u.constant.value.str.val); } @@ -2960,7 +2963,7 @@ inline int zend_init_add_array_helper(ZEND_OPCODE_HANDLER_ARGS) { - zval *array_ptr = &EX(Ts)[EX(opline)->result.u.var].tmp_var; + zval *array_ptr = &EX_T(EX(opline)->result.u.var).tmp_var; zval *expr_ptr, **expr_ptr_ptr = NULL; zval *offset=get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R); @@ -3040,7 +3043,7 @@ int zend_cast_handler(ZEND_OPCODE_HANDLER_ARGS) { zval *expr = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R); - zval *result = &EX(Ts)[EX(opline)->result.u.var].tmp_var; + zval *result = &EX_T(EX(opline)->result.u.var).tmp_var; *result = *expr; if (!EG(free_op1)) { @@ -3146,15 +3149,15 @@ zval_dtor(&tmp_inc_filename); } FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); - EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr = &EX(Ts)[EX(opline)->result.u.var].var.ptr; + EX_T(EX(opline)->result.u.var).var.ptr_ptr = +&EX_T(EX(opline)->result.u.var).var.ptr; if (new_op_array) { zval *saved_object; zend_function *saved_function; - EG(return_value_ptr_ptr) = EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr; + EG(return_value_ptr_ptr) = EX_T(EX(opline)->result.u.var).var.ptr_ptr; EG(active_op_array) = new_op_array; - EX(Ts)[EX(opline)->result.u.var].var.ptr = NULL; + EX_T(EX(opline)->result.u.var).var.ptr = NULL; saved_object = EX(object); saved_function = EX(function_state).function; @@ -3168,15 +3171,15 @@ EX(object) = saved_object; if (!return_value_used) { - if (EX(Ts)[EX(opline)->result.u.var].var.ptr) { - zval_ptr_dtor(&EX(Ts)[EX(opline)->result.u.var].var.ptr); + if (EX_T(EX(opline)->result.u.var).var.ptr) { + zval_ptr_dtor(&EX_T(EX(opline)->result.u.var).var.ptr); } } else { /* return value is used */ - if (!EX(Ts)[EX(opline)->result.u.var].var.ptr) { /* there was no return statement */ - ALLOC_ZVAL(EX(Ts)[EX(opline)->result.u.var].var.ptr); - INIT_PZVAL(EX(Ts)[EX(opline)->result.u.var].var.ptr); - EX(Ts)[EX(opline)->result.u.var].var.ptr->value.lval = 1; - EX(Ts)[EX(opline)->result.u.var].var.ptr->type = IS_BOOL; + if (!EX_T(EX(opline)->result.u.var).var.ptr) { /* there was no +return statement */ + ALLOC_ZVAL(EX_T(EX(opline)->result.u.var).var.ptr); + INIT_PZVAL(EX_T(EX(opline)->result.u.var).var.ptr); + EX_T(EX(opline)->result.u.var).var.ptr->value.lval = 1; + EX_T(EX(opline)->result.u.var).var.ptr->type = IS_BOOL; } } @@ -3187,10 +3190,10 @@ efree(new_op_array); } else { if (return_value_used) { - ALLOC_ZVAL(EX(Ts)[EX(opline)->result.u.var].var.ptr); - INIT_ZVAL(*EX(Ts)[EX(opline)->result.u.var].var.ptr); - EX(Ts)[EX(opline)->result.u.var].var.ptr->value.lval = failure_retval; - EX(Ts)[EX(opline)->result.u.var].var.ptr->type = IS_BOOL; + ALLOC_ZVAL(EX_T(EX(opline)->result.u.var).var.ptr); + INIT_ZVAL(*EX_T(EX(opline)->result.u.var).var.ptr); + EX_T(EX(opline)->result.u.var).var.ptr->value.lval = +failure_retval; + EX_T(EX(opline)->result.u.var).var.ptr->type = IS_BOOL; } } EG(return_value_ptr_ptr) = original_return_value; @@ -3303,8 +3306,8 @@ } } PZVAL_LOCK(array_ptr); - EX(Ts)[EX(opline)->result.u.var].var.ptr = array_ptr; - EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr = &EX(Ts)[EX(opline)->result.u.var].var.ptr; + EX_T(EX(opline)->result.u.var).var.ptr = array_ptr; + EX_T(EX(opline)->result.u.var).var.ptr_ptr = +&EX_T(EX(opline)->result.u.var).var.ptr; if ((fe_ht = HASH_OF(array_ptr)) != NULL) { /* probably redundant */ @@ -3318,7 +3321,7 @@ int zend_fe_fetch_handler(ZEND_OPCODE_HANDLER_ARGS) { zval *array = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R); - zval *result = &EX(Ts)[EX(opline)->result.u.var].tmp_var; + zval *result = &EX_T(EX(opline)->result.u.var).tmp_var; zval **value, *key; char *str_key; ulong int_key; @@ -3367,7 +3370,7 @@ zend_function *constructor; if (EX(opline)->op1.op_type == IS_VAR) { - PZVAL_LOCK(*EX(Ts)[EX(opline)->op1.u.var].var.ptr_ptr); + PZVAL_LOCK(*EX_T(EX(opline)->op1.u.var).var.ptr_ptr); } object_zval = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R); @@ -3404,21 +3407,21 @@ isset = 0; } - EX(Ts)[EX(opline)->result.u.var].tmp_var.type = IS_BOOL; + EX_T(EX(opline)->result.u.var).tmp_var.type = IS_BOOL; switch (EX(opline)->extended_value) { case ZEND_ISSET: if (isset && Z_TYPE_PP(value) == IS_NULL) { - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.lval = 0; + EX_T(EX(opline)->result.u.var).tmp_var.value.lval = 0; } else { - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.lval = isset; + EX_T(EX(opline)->result.u.var).tmp_var.value.lval = +isset; } break; case ZEND_ISEMPTY: if (!isset || !zend_is_true(*value)) { - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.lval = 1; + EX_T(EX(opline)->result.u.var).tmp_var.value.lval = 1; } else { - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.lval = 0; + EX_T(EX(opline)->result.u.var).tmp_var.value.lval = 0; } break; } @@ -3504,14 +3507,14 @@ /* string offsets */ } - EX(Ts)[EX(opline)->result.u.var].tmp_var.type = IS_BOOL; + EX_T(EX(opline)->result.u.var).tmp_var.type = IS_BOOL; switch (EX(opline)->extended_value) { case ZEND_ISSET: - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.lval = result; + EX_T(EX(opline)->result.u.var).tmp_var.value.lval = result; break; case ZEND_ISEMPTY: - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.lval = !result; + EX_T(EX(opline)->result.u.var).tmp_var.value.lval = !result; break; } @@ -3539,15 +3542,15 @@ int zend_begin_silence_handler(ZEND_OPCODE_HANDLER_ARGS) { - EX(Ts)[EX(opline)->result.u.var].tmp_var.value.lval = EG(error_reporting); - EX(Ts)[EX(opline)->result.u.var].tmp_var.type = IS_LONG; /* shouldn't be necessary */ + EX_T(EX(opline)->result.u.var).tmp_var.value.lval = EG(error_reporting); + EX_T(EX(opline)->result.u.var).tmp_var.type = IS_LONG; /* shouldn't be +necessary */ EG(error_reporting) = 0; NEXT_OPCODE(); } int zend_end_silence_handler(ZEND_OPCODE_HANDLER_ARGS) { - EG(error_reporting) = EX(Ts)[EX(opline)->op1.u.var].tmp_var.value.lval; + EG(error_reporting) = EX_T(EX(opline)->op1.u.var).tmp_var.value.lval; NEXT_OPCODE(); } @@ -3555,9 +3558,9 @@ { zval *value = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R); - EX(Ts)[EX(opline)->result.u.var].tmp_var = *value; + EX_T(EX(opline)->result.u.var).tmp_var = *value; if (!EG(free_op1)) { - zval_copy_ctor(&EX(Ts)[EX(opline)->result.u.var].tmp_var); + zval_copy_ctor(&EX_T(EX(opline)->result.u.var).tmp_var); } NEXT_OPCODE(); } @@ -3594,7 +3597,7 @@ int zend_declare_inherited_class_handler(ZEND_OPCODE_HANDLER_ARGS) { - do_bind_inherited_class(EX(opline), EG(function_table), EG(class_table), EX(Ts)[EX(opline)->extended_value].EA.class_entry); + do_bind_inherited_class(EX(opline), EG(function_table), EG(class_table), +EX_T(EX(opline)->extended_value).EA.class_entry); NEXT_OPCODE(); } @@ -3618,8 +3621,8 @@ int zend_is_class_handler(ZEND_OPCODE_HANDLER_ARGS) { zval *expr = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R); - is_class_function(&EX(Ts)[EX(opline)->result.u.var].tmp_var, expr, - EX(Ts)[EX(opline)->op2.u.var].EA.class_entry TSRMLS_CC); + is_class_function(&EX_T(EX(opline)->result.u.var).tmp_var, expr, + +EX_T(EX(opline)->op2.u.var).EA.class_entry TSRMLS_CC); FREE_OP(EX(Ts), &EX(opline)->op1, EG(free_op1)); NEXT_OPCODE(); }
-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php