diff options
Diffstat (limited to 'Zend/zend_constants.c')
| -rw-r--r-- | Zend/zend_constants.c | 19 | 
1 files changed, 6 insertions, 13 deletions
diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index 594559d58b..a53af497cc 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -38,9 +38,7 @@ void free_zend_constant(zend_constant *c)  void copy_zend_constant(zend_constant *c)  { -	if (!IS_INTERNED(c->name)) { -		c->name = zend_strndup(c->name, c->name_len - 1); -	} +	c->name = str_strndup(c->name, c->name_len - 1);  	if (!(c->flags & CONST_PERSISTENT)) {  		zval_copy_ctor(&c->value);  	} @@ -474,7 +472,7 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC)  	char *lowercase_name = NULL;  	char *name;  	int ret = SUCCESS; -	ulong chash = 0; +	ulong chash;  #if 0  	printf("Registering constant for module %d\n", c->module_number); @@ -486,23 +484,18 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC)  		zend_str_tolower(lowercase_name, c->name_len-1);  		lowercase_name = (char*)zend_new_interned_string(lowercase_name, c->name_len, 1 TSRMLS_CC);  		name = lowercase_name; -		chash = IS_INTERNED(lowercase_name) ? INTERNED_HASH(lowercase_name) : 0;  	} else {  		char *slash = strrchr(c->name, '\\'); -		if(slash) { +		if (slash) {  			lowercase_name = estrndup(c->name, c->name_len-1);  			zend_str_tolower(lowercase_name, slash-c->name);  			lowercase_name = (char*)zend_new_interned_string(lowercase_name, c->name_len, 1 TSRMLS_CC);  			name = lowercase_name; -			 -			chash = IS_INTERNED(lowercase_name) ? INTERNED_HASH(lowercase_name) : 0;  		} else {  			name = c->name;  		}  	} -	if (chash == 0) { -		chash = zend_hash_func(name, c->name_len); -	} +	chash = str_hash(name, c->name_len-1);  	/* Check if the user is trying to define the internal pseudo constant name __COMPILER_HALT_OFFSET__ */  	if ((c->name_len == sizeof("__COMPILER_HALT_OFFSET__") @@ -521,8 +514,8 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC)  		}  		ret = FAILURE;  	} -	if (lowercase_name && !IS_INTERNED(lowercase_name)) { -		efree(lowercase_name); +	if (lowercase_name) { +		str_efree(lowercase_name);  	}  	return ret;  }  | 
