cvs: ZendEngine2 / zend_constants.c
| From: | Andrei Zmievski | Date: | Wed, 26 May 2004 21:01:37 +0000 |
| Subject: | cvs: ZendEngine2 / zend_constants.c | ||
| Groups: | php.zend-engine.cvs | ||
| Request: | Send a blank email to php-zend-engine-cvs+get-2666@lists.php.net to get a copy of this message | ||
andrei Wed May 26 17:01:37 2004 EDT
Modified files:
/ZendEngine2 zend_constants.c
Log:
Avoid unnecessary and silly copying of constant name when registering.
http://cvs.php.net/diff.php/ZendEngine2/zend_constants.c?r1=1.66&r2=1.67&ty=u
Index: ZendEngine2/zend_constants.c
diff -u ZendEngine2/zend_constants.c:1.66 ZendEngine2/zend_constants.c:1.67
--- ZendEngine2/zend_constants.c:1.66 Tue Mar 9 10:37:18 2004
+++ ZendEngine2/zend_constants.c Wed May 26 17:01:37 2004
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_constants.c,v 1.66 2004/03/09 15:37:18 andi Exp $ */
+/* $Id: zend_constants.c,v 1.67 2004/05/26 21:01:37 andrei Exp $ */
#include "zend.h"
#include "zend_constants.h"
@@ -302,7 +302,8 @@
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
@@ -313,21 +314,22 @@
/* keep in mind that c->name_len already contains the '\0' */
lowercase_name = do_alloca(c->name_len);
zend_str_tolower_copy(lowercase_name, c->name, c->name_len - 1);
+ name = lowercase_name;
} else {
- lowercase_name = do_alloca(c->name_len + 1);
- memcpy(lowercase_name, c->name, c->name_len);
- lowercase_name[c->name_len] = '\0';
+ 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;
}