]> granicus.if.org Git - php/commitdiff
Removed deprecated paths. Changed "switch" into series of "if".
authorDmitry Stogov <dmitry@zend.com>
Tue, 3 Mar 2015 13:49:45 +0000 (16:49 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 3 Mar 2015 13:49:45 +0000 (16:49 +0300)
Zend/zend_variables.c

index 2f0c40314309c0507cb12046f28d85e9d73ae36a..6baebaa7e453134bf787ab8bb4d68fb8e7a611dd 100644 (file)
@@ -225,29 +225,19 @@ ZEND_API void zval_add_ref_unref(zval *p)
 
 ZEND_API void _zval_copy_ctor_func(zval *zvalue ZEND_FILE_LINE_DC)
 {
-       switch (Z_TYPE_P(zvalue)) {
-               case IS_CONSTANT:
-               case IS_STRING:
-                       CHECK_ZVAL_STRING_REL(Z_STR_P(zvalue));
-                       Z_STR_P(zvalue) = zend_string_dup(Z_STR_P(zvalue), 0);
-                       break;
-               case IS_ARRAY:
-                       ZVAL_ARR(zvalue, zend_array_dup(Z_ARRVAL_P(zvalue)));
-                       break;
-               case IS_CONSTANT_AST: {
-                               zend_ast_ref *ast = emalloc(sizeof(zend_ast_ref));
-
-                               GC_REFCOUNT(ast) = 1;
-                               GC_TYPE_INFO(ast) = IS_CONSTANT_AST;
-                               ast->ast = zend_ast_copy(Z_ASTVAL_P(zvalue));
-                               Z_AST_P(zvalue) = ast;
-                       }
-                       break;
-               case IS_OBJECT:
-               case IS_RESOURCE:
-               case IS_REFERENCE:
-                       Z_ADDREF_P(zvalue);
-                       break;
+       if (EXPECTED(Z_TYPE_P(zvalue) == IS_ARRAY)) {
+               ZVAL_ARR(zvalue, zend_array_dup(Z_ARRVAL_P(zvalue)));
+       } else if (EXPECTED(Z_TYPE_P(zvalue) == IS_STRING) ||
+                  EXPECTED(Z_TYPE_P(zvalue) == IS_CONSTANT)) {
+               CHECK_ZVAL_STRING_REL(Z_STR_P(zvalue));
+               Z_STR_P(zvalue) = zend_string_dup(Z_STR_P(zvalue), 0);
+       } else if (EXPECTED(Z_TYPE_P(zvalue) == IS_CONSTANT_AST)) {
+               zend_ast_ref *ast = emalloc(sizeof(zend_ast_ref));
+
+               GC_REFCOUNT(ast) = 1;
+               GC_TYPE_INFO(ast) = IS_CONSTANT_AST;
+               ast->ast = zend_ast_copy(Z_ASTVAL_P(zvalue));
+               Z_AST_P(zvalue) = ast;
        }
 }