diff options
author | Andi Gutmans <andi@php.net> | 2001-12-01 08:33:48 +0000 |
---|---|---|
committer | Andi Gutmans <andi@php.net> | 2001-12-01 08:33:48 +0000 |
commit | bb9a36cad1b738d42ae935ec2a90b04ef0afa0f2 (patch) | |
tree | dfc74919e53f474c725b20e3e7936756d5842b67 /Zend | |
parent | c45f6998302c8c848ae38117f16faa655ce51e33 (diff) | |
download | php-git-bb9a36cad1b738d42ae935ec2a90b04ef0afa0f2.tar.gz |
- Use alloca() when possible.
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_API.c | 7 | ||||
-rw-r--r-- | Zend/zend_constants.c | 10 |
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 **) ®ister_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; } |