summaryrefslogtreecommitdiff
path: root/Zend/zend_constants.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2001-12-01 08:33:48 +0000
committerAndi Gutmans <andi@php.net>2001-12-01 08:33:48 +0000
commitbb9a36cad1b738d42ae935ec2a90b04ef0afa0f2 (patch)
treedfc74919e53f474c725b20e3e7936756d5842b67 /Zend/zend_constants.c
parentc45f6998302c8c848ae38117f16faa655ce51e33 (diff)
downloadphp-git-bb9a36cad1b738d42ae935ec2a90b04ef0afa0f2.tar.gz
- Use alloca() when possible.
Diffstat (limited to 'Zend/zend_constants.c')
-rw-r--r--Zend/zend_constants.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c
index 8fb2b8c3db..dee1315ca4 100644
--- a/Zend/zend_constants.c
+++ b/Zend/zend_constants.c
@@ -220,9 +220,12 @@ ZEND_API void zend_register_string_constant(char *name, uint name_len, char *str
ZEND_API int zend_get_constant(char *name, uint name_len, zval *result TSRMLS_DC)
{
zend_constant *c;
- char *lookup_name = estrndup(name, name_len);
+ char *lookup_name;
int retval;
+ lookup_name = do_alloca(name_len+1);
+ memcpy(lookup_name, name, name_len+1);
+
zend_str_tolower(lookup_name, name_len);
if (zend_hash_find(EG(zend_constants), lookup_name, name_len+1, (void **) &c)==SUCCESS) {
@@ -236,8 +239,9 @@ ZEND_API int zend_get_constant(char *name, uint name_len, zval *result TSRMLS_DC
} else {
retval=0;
}
-
- efree(lookup_name);
+
+ free_alloca(lookup_name);
+
return retval;
}