]> granicus.if.org Git - php/commitdiff
Comment out cast_object for IS_NULL
authorNikita Popov <nikic@php.net>
Sat, 26 Apr 2014 11:17:26 +0000 (13:17 +0200)
committerNikita Popov <nikic@php.net>
Wed, 30 Apr 2014 22:25:23 +0000 (00:25 +0200)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 6d3c7719e396526fb12d453b04caba438d5c6aff..2538e86cd83d5cb6abe3226484c5fdc88b0fedd1 100644 (file)
@@ -3795,6 +3795,10 @@ ZEND_VM_HANDLER(21, ZEND_CAST, CONST|TMP|VAR|CV, ANY)
 
        switch (opline->extended_value) {
                case IS_NULL:
+                       /* This code is taken from convert_to_null. However, it does not seems very useful,
+                        * because a conversion to null always results in the same value. This could only
+                        * be relevant if a cast_object handler for IS_NULL has some kind of side-effect. */
+#if 0
                        if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) {
                                ZVAL_DEREF(expr);
                        }
@@ -3803,6 +3807,7 @@ ZEND_VM_HANDLER(21, ZEND_CAST, CONST|TMP|VAR|CV, ANY)
                                        break;
                                }
                        }
+#endif
 
                        ZVAL_NULL(result);
                        break;
index 7241cf49c7642140345b197ed8c6124398d6eaae..6abc07d4e5dafa287b27b965fb482b2eac12f615 100644 (file)
@@ -2791,6 +2791,10 @@ static int ZEND_FASTCALL  ZEND_CAST_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 
        switch (opline->extended_value) {
                case IS_NULL:
+                       /* This code is taken from convert_to_null. However, it does not seems very useful,
+                        * because a conversion to null always results in the same value. This could only
+                        * be relevant if a cast_object handler for IS_NULL has some kind of side-effect. */
+#if 0
                        if (IS_CONST == IS_VAR || IS_CONST == IS_CV) {
                                ZVAL_DEREF(expr);
                        }
@@ -2799,6 +2803,7 @@ static int ZEND_FASTCALL  ZEND_CAST_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                                        break;
                                }
                        }
+#endif
 
                        ZVAL_NULL(result);
                        break;
@@ -7901,6 +7906,10 @@ static int ZEND_FASTCALL  ZEND_CAST_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 
        switch (opline->extended_value) {
                case IS_NULL:
+                       /* This code is taken from convert_to_null. However, it does not seems very useful,
+                        * because a conversion to null always results in the same value. This could only
+                        * be relevant if a cast_object handler for IS_NULL has some kind of side-effect. */
+#if 0
                        if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) {
                                ZVAL_DEREF(expr);
                        }
@@ -7909,6 +7918,7 @@ static int ZEND_FASTCALL  ZEND_CAST_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                                        break;
                                }
                        }
+#endif
 
                        ZVAL_NULL(result);
                        break;
@@ -13081,6 +13091,10 @@ static int ZEND_FASTCALL  ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 
        switch (opline->extended_value) {
                case IS_NULL:
+                       /* This code is taken from convert_to_null. However, it does not seems very useful,
+                        * because a conversion to null always results in the same value. This could only
+                        * be relevant if a cast_object handler for IS_NULL has some kind of side-effect. */
+#if 0
                        if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
                                ZVAL_DEREF(expr);
                        }
@@ -13089,6 +13103,7 @@ static int ZEND_FASTCALL  ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                                        break;
                                }
                        }
+#endif
 
                        ZVAL_NULL(result);
                        break;
@@ -30127,6 +30142,10 @@ static int ZEND_FASTCALL  ZEND_CAST_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 
        switch (opline->extended_value) {
                case IS_NULL:
+                       /* This code is taken from convert_to_null. However, it does not seems very useful,
+                        * because a conversion to null always results in the same value. This could only
+                        * be relevant if a cast_object handler for IS_NULL has some kind of side-effect. */
+#if 0
                        if (IS_CV == IS_VAR || IS_CV == IS_CV) {
                                ZVAL_DEREF(expr);
                        }
@@ -30135,6 +30154,7 @@ static int ZEND_FASTCALL  ZEND_CAST_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                                        break;
                                }
                        }
+#endif
 
                        ZVAL_NULL(result);
                        break;