@@ -723,7 +723,7 @@ void zend_do_fetch_static_member(znode *result, znode *class_name TSRMLS_DC) /*
723
723
724
724
if (class_name -> op_type == IS_CONST &&
725
725
ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type (Z_STRVAL (class_name -> u .constant ), Z_STRLEN (class_name -> u .constant ))) {
726
- zend_resolve_class_name (class_name , ZEND_FETCH_CLASS_GLOBAL , 1 TSRMLS_CC );
726
+ zend_resolve_class_name (class_name TSRMLS_CC );
727
727
class_node = * class_name ;
728
728
} else {
729
729
zend_do_fetch_class (& class_node , class_name TSRMLS_CC );
@@ -1840,15 +1840,6 @@ void zend_do_receive_arg(zend_uchar op, znode *varname, const znode *offset, con
1840
1840
zend_arg_info * cur_arg_info ;
1841
1841
znode var ;
1842
1842
1843
- if (class_type -> op_type == IS_CONST &&
1844
- Z_TYPE (class_type -> u .constant ) == IS_STRING &&
1845
- Z_STRLEN (class_type -> u .constant ) == 0 ) {
1846
- /* Usage of namespace as class name not in namespace */
1847
- zval_dtor (& class_type -> u .constant );
1848
- zend_error (E_COMPILE_ERROR , "Cannot use 'namespace' as a class name" );
1849
- return ;
1850
- }
1851
-
1852
1843
if (zend_is_auto_global_quick (Z_STRVAL (varname -> u .constant ), Z_STRLEN (varname -> u .constant ), 0 TSRMLS_CC )) {
1853
1844
zend_error (E_COMPILE_ERROR , "Cannot re-assign auto-global variable %s" , Z_STRVAL (varname -> u .constant ));
1854
1845
} else {
@@ -1913,7 +1904,7 @@ void zend_do_receive_arg(zend_uchar op, znode *varname, const znode *offset, con
1913
1904
} else {
1914
1905
cur_arg_info -> type_hint = IS_OBJECT ;
1915
1906
if (ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type (Z_STRVAL (class_type -> u .constant ), Z_STRLEN (class_type -> u .constant ))) {
1916
- zend_resolve_class_name (class_type , opline -> extended_value , 1 TSRMLS_CC );
1907
+ zend_resolve_class_name (class_type TSRMLS_CC );
1917
1908
}
1918
1909
Z_STRVAL (class_type -> u .constant ) = (char * )zend_new_interned_string (class_type -> u .constant .value .str .val , class_type -> u .constant .value .str .len + 1 , 1 TSRMLS_CC );
1919
1910
cur_arg_info -> class_name = class_type -> u .constant .value .str .val ;
@@ -2164,7 +2155,7 @@ void zend_do_resolve_class_name(znode *result, znode *class_name, int is_static
2164
2155
zend_do_fetch_constant (result , class_name , & constant_name , ZEND_RT , 1 TSRMLS_CC );
2165
2156
break ;
2166
2157
case ZEND_FETCH_CLASS_DEFAULT :
2167
- zend_resolve_class_name (class_name , ZEND_FETCH_CLASS_GLOBAL , 1 TSRMLS_CC );
2158
+ zend_resolve_class_name (class_name TSRMLS_CC );
2168
2159
* result = * class_name ;
2169
2160
break ;
2170
2161
}
@@ -2174,7 +2165,7 @@ void zend_do_resolve_class_name(znode *result, znode *class_name, int is_static
2174
2165
}
2175
2166
/* }}} */
2176
2167
2177
- void zend_resolve_class_name (znode * class_name , ulong fetch_type , int check_ns_name TSRMLS_DC ) /* {{{ */
2168
+ void zend_resolve_class_name (znode * class_name TSRMLS_DC ) /* {{{ */
2178
2169
{
2179
2170
char * compound ;
2180
2171
char * lcname ;
@@ -2253,21 +2244,12 @@ void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC) /* {{{ */
2253
2244
long fetch_class_op_number ;
2254
2245
zend_op * opline ;
2255
2246
2256
- if (class_name -> op_type == IS_CONST &&
2257
- Z_TYPE (class_name -> u .constant ) == IS_STRING &&
2258
- Z_STRLEN (class_name -> u .constant ) == 0 ) {
2259
- /* Usage of namespace as class name not in namespace */
2260
- zval_dtor (& class_name -> u .constant );
2261
- zend_error (E_COMPILE_ERROR , "Cannot use 'namespace' as a class name" );
2262
- return ;
2263
- }
2264
-
2265
2247
fetch_class_op_number = get_next_op_number (CG (active_op_array ));
2266
2248
opline = get_next_op (CG (active_op_array ) TSRMLS_CC );
2267
2249
2268
2250
opline -> opcode = ZEND_FETCH_CLASS ;
2269
2251
SET_UNUSED (opline -> op1 );
2270
- opline -> extended_value = ZEND_FETCH_CLASS_GLOBAL ;
2252
+ opline -> extended_value = ZEND_FETCH_CLASS_DEFAULT ;
2271
2253
CG (catch_begin ) = fetch_class_op_number ;
2272
2254
if (class_name -> op_type == IS_CONST ) {
2273
2255
int fetch_type ;
@@ -2282,7 +2264,7 @@ void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC) /* {{{ */
2282
2264
zval_dtor (& class_name -> u .constant );
2283
2265
break ;
2284
2266
default :
2285
- zend_resolve_class_name (class_name , opline -> extended_value , 0 TSRMLS_CC );
2267
+ zend_resolve_class_name (class_name TSRMLS_CC ) ;
2286
2268
opline -> op2_type = IS_CONST ;
2287
2269
opline -> op2 .constant =
2288
2270
zend_add_class_name_literal (CG (active_op_array ), & class_name -> u .constant TSRMLS_CC );
@@ -2458,7 +2440,7 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na
2458
2440
2459
2441
if (class_name -> op_type == IS_CONST &&
2460
2442
ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type (Z_STRVAL (class_name -> u .constant ), Z_STRLEN (class_name -> u .constant ))) {
2461
- zend_resolve_class_name (class_name , ZEND_FETCH_CLASS_GLOBAL , 1 TSRMLS_CC );
2443
+ zend_resolve_class_name (class_name TSRMLS_CC );
2462
2444
class_node = * class_name ;
2463
2445
opline = get_next_op (CG (active_op_array ) TSRMLS_CC );
2464
2446
} else {
@@ -2896,7 +2878,7 @@ void zend_do_begin_catch(znode *catch_token, znode *class_name, znode *catch_var
2896
2878
2897
2879
if (class_name -> op_type == IS_CONST &&
2898
2880
ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type (Z_STRVAL (class_name -> u .constant ), Z_STRLEN (class_name -> u .constant ))) {
2899
- zend_resolve_class_name (class_name , ZEND_FETCH_CLASS_GLOBAL , 1 TSRMLS_CC );
2881
+ zend_resolve_class_name (class_name TSRMLS_CC );
2900
2882
catch_class = * class_name ;
2901
2883
} else {
2902
2884
zend_error (E_COMPILE_ERROR , "Bad class name in the catch statement" );
@@ -4470,7 +4452,7 @@ void zend_prepare_reference(znode *result, znode *class_name, znode *method_name
4470
4452
/* REM: There should not be a need for copying,
4471
4453
zend_do_begin_class_declaration is also just using that string */
4472
4454
if (class_name ) {
4473
- zend_resolve_class_name (class_name , ZEND_FETCH_CLASS_GLOBAL , 1 TSRMLS_CC );
4455
+ zend_resolve_class_name (class_name TSRMLS_CC );
4474
4456
method_ref -> class_name = Z_STRVAL (class_name -> u .constant );
4475
4457
method_ref -> cname_len = Z_STRLEN (class_name -> u .constant );
4476
4458
} else {
@@ -5171,7 +5153,7 @@ void zend_do_implements_interface(znode *interface_name TSRMLS_DC) /* {{{ */
5171
5153
opline = get_next_op (CG (active_op_array ) TSRMLS_CC );
5172
5154
opline -> opcode = ZEND_ADD_INTERFACE ;
5173
5155
SET_NODE (opline -> op1 , & CG (implementing_class ));
5174
- zend_resolve_class_name (interface_name , opline -> extended_value , 0 TSRMLS_CC );
5156
+ zend_resolve_class_name (interface_name TSRMLS_CC );
5175
5157
opline -> extended_value = (opline -> extended_value & ~ZEND_FETCH_CLASS_MASK ) | ZEND_FETCH_CLASS_INTERFACE ;
5176
5158
opline -> op2_type = IS_CONST ;
5177
5159
opline -> op2 .constant = zend_add_class_name_literal (CG (active_op_array ), & interface_name -> u .constant TSRMLS_CC );
@@ -5203,7 +5185,7 @@ void zend_do_use_trait(znode *trait_name TSRMLS_DC) /* {{{ */
5203
5185
opline = get_next_op (CG (active_op_array ) TSRMLS_CC );
5204
5186
opline -> opcode = ZEND_ADD_TRAIT ;
5205
5187
SET_NODE (opline -> op1 , & CG (implementing_class ));
5206
- zend_resolve_class_name (trait_name , opline -> extended_value , 0 TSRMLS_CC );
5188
+ zend_resolve_class_name (trait_name TSRMLS_CC );
5207
5189
opline -> extended_value = ZEND_FETCH_CLASS_TRAIT ;
5208
5190
opline -> op2_type = IS_CONST ;
5209
5191
opline -> op2 .constant = zend_add_class_name_literal (CG (active_op_array ), & trait_name -> u .constant TSRMLS_CC );
@@ -5582,7 +5564,7 @@ void zend_do_fetch_constant(znode *result, znode *constant_container, znode *con
5582
5564
if (ZEND_FETCH_CLASS_STATIC == type ) {
5583
5565
zend_error (E_ERROR , "\"static::\" is not allowed in compile-time constants" );
5584
5566
} else if (ZEND_FETCH_CLASS_DEFAULT == type ) {
5585
- zend_resolve_class_name (constant_container , fetch_type , 1 TSRMLS_CC );
5567
+ zend_resolve_class_name (constant_container TSRMLS_CC );
5586
5568
}
5587
5569
zend_do_build_full_name (NULL , constant_container , constant_name , 1 TSRMLS_CC );
5588
5570
* result = * constant_container ;
@@ -5591,7 +5573,7 @@ void zend_do_fetch_constant(znode *result, znode *constant_container, znode *con
5591
5573
case ZEND_RT :
5592
5574
if (constant_container -> op_type == IS_CONST &&
5593
5575
ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type (Z_STRVAL (constant_container -> u .constant ), Z_STRLEN (constant_container -> u .constant ))) {
5594
- zend_resolve_class_name (constant_container , fetch_type , 1 TSRMLS_CC );
5576
+ zend_resolve_class_name (constant_container TSRMLS_CC );
5595
5577
} else {
5596
5578
zend_do_fetch_class (& tmp , constant_container TSRMLS_CC );
5597
5579
constant_container = & tmp ;
0 commit comments