ZEND_VM_C_LABEL(try_fetch_list):
if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- zend_free_op free_op2;
- zval *value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_R);
+ zval *value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), EX_CONSTANT(opline->op2), OP2_TYPE, BP_VAR_R);
ZVAL_COPY(EX_VAR(opline->result.var), value);
} else if (UNEXPECTED(Z_TYPE_P(container) == IS_OBJECT) &&
EXPECTED(Z_OBJ_HT_P(container)->read_dimension)) {
zval *result = EX_VAR(opline->result.var);
- zval *retval = Z_OBJ_HT_P(container)->read_dimension(container, GET_OP2_ZVAL_PTR(BP_VAR_R), BP_VAR_R, result);
+ zval *retval = Z_OBJ_HT_P(container)->read_dimension(container, EX_CONSTANT(opline->op2), BP_VAR_R, result);
if (retval) {
if (result != retval) {
ZEND_VM_HANDLER(124, ZEND_VERIFY_RETURN_TYPE, CONST|TMP|VAR|UNUSED|CV, UNUSED)
{
-#if OP1_TYPE != IS_UNUSED
+#if !defined(ZEND_VM_SPEC) || (OP1_TYPE != IS_UNUSED)
USE_OPLINE
#endif
SAVE_OPLINE();
if (OP1_TYPE == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if !defined(ZEND_VM_SPEC) || OP1_TYPE != IS_UNUSED
+#if !defined(ZEND_VM_SPEC) || (OP1_TYPE != IS_UNUSED)
} else {
ZEND_VM_DISPATCH_TO_HANDLER(ZEND_ADD_ARRAY_ELEMENT);
#endif
try_fetch_list:
if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
-
zval *value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), EX_CONSTANT(opline->op2), IS_CONST, BP_VAR_R);
ZVAL_COPY(EX_VAR(opline->result.var), value);
if (IS_CONST == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_CONST != IS_UNUSED
+#if 0 || (IS_CONST != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
static int ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
-#if IS_CONST != IS_UNUSED
+#if 0 || (IS_CONST != IS_UNUSED)
USE_OPLINE
#endif
SAVE_OPLINE();
if (IS_CONST == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_CONST != IS_UNUSED
+#if 0 || (IS_CONST != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_CONST == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_CONST != IS_UNUSED
+#if 0 || (IS_CONST != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_CONST == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_CONST != IS_UNUSED
+#if 0 || (IS_CONST != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_TMP_VAR == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_TMP_VAR != IS_UNUSED
+#if 0 || (IS_TMP_VAR != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
static int ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
-#if IS_TMP_VAR != IS_UNUSED
+#if 0 || (IS_TMP_VAR != IS_UNUSED)
USE_OPLINE
#endif
SAVE_OPLINE();
if (IS_TMP_VAR == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_TMP_VAR != IS_UNUSED
+#if 0 || (IS_TMP_VAR != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_TMP_VAR == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_TMP_VAR != IS_UNUSED
+#if 0 || (IS_TMP_VAR != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_TMP_VAR == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_TMP_VAR != IS_UNUSED
+#if 0 || (IS_TMP_VAR != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_VAR == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_VAR != IS_UNUSED
+#if 0 || (IS_VAR != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
static int ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
-#if IS_VAR != IS_UNUSED
+#if 0 || (IS_VAR != IS_UNUSED)
USE_OPLINE
#endif
SAVE_OPLINE();
if (IS_VAR == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_VAR != IS_UNUSED
+#if 0 || (IS_VAR != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_VAR == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_VAR != IS_UNUSED
+#if 0 || (IS_VAR != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_VAR == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_VAR != IS_UNUSED
+#if 0 || (IS_VAR != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_UNUSED == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_UNUSED != IS_UNUSED
+#if 0 || (IS_UNUSED != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
static int ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
-#if IS_UNUSED != IS_UNUSED
+#if 0 || (IS_UNUSED != IS_UNUSED)
USE_OPLINE
#endif
SAVE_OPLINE();
if (IS_UNUSED == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_UNUSED != IS_UNUSED
+#if 0 || (IS_UNUSED != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_UNUSED == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_UNUSED != IS_UNUSED
+#if 0 || (IS_UNUSED != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_UNUSED == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_UNUSED != IS_UNUSED
+#if 0 || (IS_UNUSED != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
try_fetch_list:
if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
-
zval *value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), EX_CONSTANT(opline->op2), IS_CONST, BP_VAR_R);
ZVAL_COPY(EX_VAR(opline->result.var), value);
if (IS_CV == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_CV != IS_UNUSED
+#if 0 || (IS_CV != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
static int ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
-#if IS_CV != IS_UNUSED
+#if 0 || (IS_CV != IS_UNUSED)
USE_OPLINE
#endif
SAVE_OPLINE();
if (IS_CV == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_CV != IS_UNUSED
+#if 0 || (IS_CV != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_CV == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_CV != IS_UNUSED
+#if 0 || (IS_CV != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
if (IS_CV == IS_UNUSED) {
ZEND_VM_NEXT_OPCODE();
-#if 0 || IS_CV != IS_UNUSED
+#if 0 || (IS_CV != IS_UNUSED)
} else {
return ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
#endif
try_fetch_list:
if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
-
zval *value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), EX_CONSTANT(opline->op2), IS_CONST, BP_VAR_R);
ZVAL_COPY(EX_VAR(opline->result.var), value);
"/FREE_OP2_IF_VAR\(\)/",
"/FREE_OP1_VAR_PTR\(\)/",
"/FREE_OP2_VAR_PTR\(\)/",
- "/^#ifdef\s+ZEND_VM_SPEC\s*\n/m",
- "/^#ifndef\s+ZEND_VM_SPEC\s*\n/m",
+ "/^#(\s*)ifdef\s+ZEND_VM_SPEC\s*\n/m",
+ "/^#(\s*)ifndef\s+ZEND_VM_SPEC\s*\n/m",
"/\!defined\(ZEND_VM_SPEC\)/m",
"/defined\(ZEND_VM_SPEC\)/m",
"/ZEND_VM_C_LABEL\(\s*([A-Za-z_]*)\s*\)/m",
"/ZEND_VM_C_GOTO\(\s*([A-Za-z_]*)\s*\)/m",
- "/^#if\s+1\s*\\|\\|.*[^\\\\]$/m",
- "/^#if\s+0\s*&&.*[^\\\\]$/m",
- "/^#ifdef\s+ZEND_VM_EXPORT\s*\n/m",
- "/^#ifndef\s+ZEND_VM_EXPORT\s*\n/m"
+ "/^#(\s*)if\s+1\s*\\|\\|.*[^\\\\]$/m",
+ "/^#(\s*)if\s+0\s*&&.*[^\\\\]$/m",
+ "/^#(\s*)ifdef\s+ZEND_VM_EXPORT\s*\n/m",
+ "/^#(\s*)ifndef\s+ZEND_VM_EXPORT\s*\n/m"
),
array(
$op1_type[$op1],
$op2_free_op_if_var[$op2],
$op1_free_op_var_ptr[$op1],
$op2_free_op_var_ptr[$op2],
- ($op1!="ANY"||$op2!="ANY")?"#if 1\n":"#if 0\n",
- ($op1!="ANY"||$op2!="ANY")?"#if 0\n":"#if 1\n",
+ ($op1!="ANY"||$op2!="ANY")?"#\\1if 1\n":"#\\1if 0\n",
+ ($op1!="ANY"||$op2!="ANY")?"#\\1if 0\n":"#\\1if 1\n",
($op1!="ANY"||$op2!="ANY")?"0":"1",
($op1!="ANY"||$op2!="ANY")?"1":"0",
"\\1".(($spec && $kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2]):""),
"goto \\1".(($spec && $kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2]):""),
- "#if 1",
- "#if 0",
- $export?"#if 1\n":"#if 0\n",
- $export?"#if 0\n":"#if 1\n"
+ "#\\1if 1",
+ "#\\1if 0",
+ $export?"#\\1if 1\n":"#\\1if 0\n",
+ $export?"#\\1if 0\n":"#\\1if 1\n"
),
$code);