summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Ferrara <ircmaxell@gmail.com>2012-10-07 05:42:08 -0400
committerAnthony Ferrara <ircmaxell@gmail.com>2012-10-07 05:42:08 -0400
commit0bc9ca39ced4128c3b9fb1ba2ac797d342e7eef2 (patch)
tree8686c76bde9610dafc97328f6679673ecaba0ef4
parent37b2207f66ac1cebdc3ff3f7f88ec319ee893292 (diff)
downloadphp-git-0bc9ca39ced4128c3b9fb1ba2ac797d342e7eef2.tar.gz
Refactor to using a stack based zval instead of dynamic allocation
-rw-r--r--ext/standard/password.c39
1 files changed, 18 insertions, 21 deletions
diff --git a/ext/standard/password.c b/ext/standard/password.c
index 3507183c2a..266ad0a421 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: