summaryrefslogtreecommitdiff
path: root/Zend
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
parentc45f6998302c8c848ae38117f16faa655ce51e33 (diff)
downloadphp-git-bb9a36cad1b738d42ae935ec2a90b04ef0afa0f2.tar.gz
- Use alloca() when possible.
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_API.c7
-rw-r--r--Zend/zend_constants.c10
2 files changed, 12 insertions, 5 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index e013d16a57..a9a10ccb8c 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -1206,7 +1206,10 @@ ZEND_API zend_class_entry *zend_register_internal_class_ex(zend_class_entry *cla
ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *class_entry TSRMLS_DC)
{
zend_class_entry *register_class;
- char *lowercase_name = zend_strndup(class_entry->name, class_entry->name_length);
+ char *lowercase_name;
+
+ lowercase_name = do_alloca(class_entry->name_length+1);
+ memcpy(lowercase_name, class_entry->name, class_entry->name_length+1);
zend_str_tolower(lowercase_name, class_entry->name_length);
@@ -1226,7 +1229,7 @@ ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *class_
}
zend_hash_update(CG(class_table), lowercase_name, class_entry->name_length+1, class_entry, sizeof(zend_class_entry), (void **) &register_class);
- free(lowercase_name);
+ free_alloca(lowercase_name);
return register_class;
}
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;
}