@@ -585,10 +585,6 @@ static int zend_add_const_name_literal(zend_string *name, zend_bool unqualified)
585
585
zend_str_tolower (ZSTR_VAL (tmp_name ), ns_len );
586
586
zend_add_literal_string (& tmp_name );
587
587
588
- /* lowercased namespace name & lowercased constant name */
589
- tmp_name = zend_string_tolower (name );
590
- zend_add_literal_string (& tmp_name );
591
-
592
588
if (!unqualified ) {
593
589
return ret ;
594
590
}
@@ -600,11 +596,6 @@ static int zend_add_const_name_literal(zend_string *name, zend_bool unqualified)
600
596
tmp_name = zend_string_init (after_ns , after_ns_len , 0 );
601
597
zend_add_literal_string (& tmp_name );
602
598
603
- /* lowercased unqualified constant name */
604
- tmp_name = zend_string_alloc (after_ns_len , 0 );
605
- zend_str_tolower_copy (ZSTR_VAL (tmp_name ), after_ns , after_ns_len );
606
- zend_add_literal_string (& tmp_name );
607
-
608
599
return ret ;
609
600
}
610
601
/* }}} */
@@ -1213,22 +1204,9 @@ ZEND_API int zend_unmangle_property_name_ex(const zend_string *name, const char
1213
1204
}
1214
1205
/* }}} */
1215
1206
1216
- static zend_constant * zend_lookup_reserved_const (const char * name , size_t len ) /* {{{ */
1217
- {
1218
- zend_constant * c = zend_hash_find_ptr_lc (EG (zend_constants ), name , len );
1219
- if (c && !(ZEND_CONSTANT_FLAGS (c ) & CONST_CS ) && (ZEND_CONSTANT_FLAGS (c ) & CONST_CT_SUBST )) {
1220
- return c ;
1221
- }
1222
- return NULL ;
1223
- }
1224
- /* }}} */
1225
-
1226
1207
static zend_bool zend_try_ct_eval_const (zval * zv , zend_string * name , zend_bool is_fully_qualified ) /* {{{ */
1227
1208
{
1228
- zend_constant * c ;
1229
-
1230
- /* Substitute case-sensitive (or lowercase) constants */
1231
- c = zend_hash_find_ptr (EG (zend_constants ), name );
1209
+ zend_constant * c = zend_hash_find_ptr (EG (zend_constants ), name );
1232
1210
if (c && (
1233
1211
((ZEND_CONSTANT_FLAGS (c ) & CONST_PERSISTENT )
1234
1212
&& !(CG (compiler_options ) & ZEND_COMPILE_NO_PERSISTENT_CONSTANT_SUBSTITUTION )
@@ -1243,19 +1221,19 @@ static zend_bool zend_try_ct_eval_const(zval *zv, zend_string *name, zend_bool i
1243
1221
/* Substitute true, false and null (including unqualified usage in namespaces) */
1244
1222
const char * lookup_name = ZSTR_VAL (name );
1245
1223
size_t lookup_len = ZSTR_LEN (name );
1224
+ zval * val ;
1246
1225
1247
1226
if (!is_fully_qualified ) {
1248
1227
zend_get_unqualified_name (name , & lookup_name , & lookup_len );
1249
1228
}
1250
1229
1251
- c = zend_lookup_reserved_const (lookup_name , lookup_len );
1252
- if (c ) {
1253
- ZVAL_COPY_OR_DUP (zv , & c -> value );
1230
+ if ((val = zend_get_special_const (lookup_name , lookup_len ))) {
1231
+ ZVAL_COPY_VALUE (zv , val );
1254
1232
return 1 ;
1255
1233
}
1256
- }
1257
1234
1258
- return 0 ;
1235
+ return 0 ;
1236
+ }
1259
1237
}
1260
1238
/* }}} */
1261
1239
@@ -3249,13 +3227,6 @@ int zend_compile_func_defined(znode *result, zend_ast_list *args) /* {{{ */
3249
3227
LITERAL_STR (opline -> op1 , name );
3250
3228
opline -> extended_value = zend_alloc_cache_slot ();
3251
3229
3252
- /* Lowercase constant name in a separate literal */
3253
- {
3254
- zval c ;
3255
- zend_string * lcname = zend_string_tolower (name );
3256
- ZVAL_NEW_STR (& c , lcname );
3257
- zend_add_literal (& c );
3258
- }
3259
3230
return SUCCESS ;
3260
3231
}
3261
3232
/* }}} */
@@ -6538,7 +6509,7 @@ void zend_compile_const_decl(zend_ast *ast) /* {{{ */
6538
6509
value_node .op_type = IS_CONST ;
6539
6510
zend_const_expr_to_zval (value_zv , value_ast );
6540
6511
6541
- if (zend_lookup_reserved_const (ZSTR_VAL (unqualified_name ), ZSTR_LEN (unqualified_name ))) {
6512
+ if (zend_get_special_const (ZSTR_VAL (unqualified_name ), ZSTR_LEN (unqualified_name ))) {
6542
6513
zend_error_noreturn (E_COMPILE_ERROR ,
6543
6514
"Cannot redeclare constant '%s'" , ZSTR_VAL (unqualified_name ));
6544
6515
}
0 commit comments