Commit:0bc9ca39ced4128c3b9fb1ba2ac797d342e7eef2
Author:Anthony Ferrara ircmax...@gmail.com Sun, 7 Oct 2012
05:42:08 -0400
Parents: 37b2207f66ac1cebdc3ff3f7f88ec319ee893292
Branches: master
Link:
http://git.php.net/?p=php-src.git;a=commitdiff;h=0bc9ca39ced4128c3b9fb1ba2ac797d342e7eef2
Log:
Refactor to using a stack based zval instead of dynamic allocation
Changed paths:
M ext/standard/password.c
Diff:
diff --git a/ext/standard/password.c b/ext/standard/password.c
index 3507183..266ad0a 100644
--- a/ext/standard/password.c
+++ b/ext/standard/password.c
@@ -245,12 +245,11 @@ PHP_FUNCTION(password_needs_rehash)
if (options zend_symtable_find(options,
cost, sizeof(cost), (void **) option_buffer) == SUCCESS) {
if (Z_TYPE_PP(option_buffer) !=
IS_LONG) {
- zval *cast_option_buffer;
- ALLOC_ZVAL(cast_option_buffer);
- MAKE_COPY_ZVAL(option_buffer,
cast_option_buffer);
-
convert_to_long(cast_option_buffer);
- new_cost =
Z_LVAL_P(cast_option_buffer);
-
zval_ptr_dtor(cast_option_buffer);
+ zval cast_option_buffer;
+ MAKE_COPY_ZVAL(option_buffer,
cast_option_buffer);
+
convert_to_long(cast_option_buffer);
+ new_cost =
Z_LVAL(cast_option_buffer);
+ zval_dtor(cast_option_buffer);
} else {
new_cost =
Z_LVAL_PP(option_buffer);
}
@@ -326,12 +325,11 @@ PHP_FUNCTION(password_hash)
if (options zend_symtable_find(options, cost, 5,
(void **) option_buffer) == SUCCESS) {
if (Z_TYPE_PP(option_buffer) != IS_LONG) {
- zval *cast_option_buffer;
- ALLOC_ZVAL(cast_option_buffer);
- MAKE_COPY_ZVAL(option_buffer,
cast_option_buffer);
- convert_to_long(cast_option_buffer);
- cost = Z_LVAL_P(cast_option_buffer);
- zval_ptr_dtor(cast_option_buffer);
+ zval cast_option_buffer;
+ MAKE_COPY_ZVAL(option_buffer,
cast_option_buffer);
+ convert_to_long(cast_option_buffer);
+ cost = Z_LVAL(cast_option_buffer);
+ zval_dtor(cast_option_buffer);
} else {
cost = Z_LVAL_PP(option_buffer);
}
@@ -366,17 +364,16 @@ PHP_FUNCTION(password_hash)
case IS_LONG:
case IS_DOUBLE:
case IS_OBJECT: {
- zval *cast_option_buffer;
- ALLOC_ZVAL(cast_option_buffer);
- MAKE_COPY_ZVAL(option_buffer,
cast_option_buffer);
- convert_to_string(cast_option_buffer);
- if (Z_TYPE_P(cast_option_buffer) == IS_STRING) {
- buffer =
estrndup(Z_STRVAL_P(cast_option_buffer), Z_STRLEN_P(cast_option_buffer));
- buffer_len_int =
Z_STRLEN_P(cast_option_buffer);
- zval_ptr_dtor(cast_option_buffer);
+ zval cast_option_buffer;
+ MAKE_COPY_ZVAL(option_buffer,
cast_option_buffer);
+ convert_to_string(cast_option_buffer);
+ if (Z_TYPE(cast_option_buffer) == IS_STRING) {
+ buffer =
estrndup(Z_STRVAL(cast_option_buffer), Z_STRLEN(cast_option_buffer));
+ buffer_len_int =
Z_STRLEN(cast_option_buffer);
+ zval_dtor(cast_option_buffer);
break;
}
- zval_ptr_dtor(cast_option_buffer);
+ zval_dtor(cast_option_buffer);
}
case IS_BOOL:
case IS_NULL:
--
PHP CVS Mailing List