cvs: Zend(PHP_4_3) / zend_constants.c

From: Date: Wed, 26 May 2004 20:50:51 +0000
Subject: cvs: Zend(PHP_4_3) / zend_constants.c
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-2664@lists.php.net to get a copy of this message
andrei Wed May 26 16:50:51 2004 EDT Modified files: (Branch: PHP_4_3) /Zend zend_constants.c Log: Avoid unnecessary copy when registering a constant. http://cvs.php.net/diff.php/Zend/zend_constants.c?r1=1.42.2.3&r2=1.42.2.4&ty=u Index: Zend/zend_constants.c diff -u Zend/zend_constants.c:1.42.2.3 Zend/zend_constants.c:1.42.2.4 --- Zend/zend_constants.c:1.42.2.3 Tue Jun 3 17:53:14 2003 +++ Zend/zend_constants.c Wed May 26 16:50:51 2004 @@ -245,30 +245,34 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC) { - char *lowercase_name; + char *lowercase_name = NULL; + char *name; int ret = SUCCESS; #if 0 printf("Registering constant for module %d\n", c->module_number); #endif - lowercase_name = do_alloca(c->name_len); - - memcpy(lowercase_name, c->name, c->name_len); - if (!(c->flags & CONST_CS)) { + lowercase_name = do_alloca(c->name_len); + memcpy(lowercase_name, c->name, c->name_len); zend_str_tolower(lowercase_name, c->name_len); - } + name = lowercase_name; + } else { + name = c->name; + } - if (zend_hash_add(EG(zend_constants), lowercase_name, c->name_len, (void *) c, sizeof(zend_constant), NULL)==FAILURE) { + if (zend_hash_add(EG(zend_constants), name, c->name_len, (void *) c, sizeof(zend_constant), NULL)==FAILURE) { free(c->name); if (!(c->flags & CONST_PERSISTENT)) { zval_dtor(&c->value); } - zend_error(E_NOTICE,"Constant %s already defined", lowercase_name); + zend_error(E_NOTICE,"Constant %s already defined", name); ret = FAILURE; } - free_alloca(lowercase_name); + if (lowercase_name) { + free_alloca(lowercase_name); + } return ret; }

« previous php.zend-engine.cvs (#2664) next »