summaryrefslogtreecommitdiff
path: root/ext/standard/pack.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/pack.c')
-rw-r--r--ext/standard/pack.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/ext/standard/pack.c b/ext/standard/pack.c
index c9c118751b..86ff031dbb 100644
--- a/ext/standard/pack.c
+++ b/ext/standard/pack.c
@@ -462,15 +462,15 @@ PHP_FUNCTION(pack)
case 'A':
case 'Z': {
size_t arg_cp = (code != 'Z') ? arg : MAX(0, arg - 1);
-
- zend_string *str = zval_get_string(&argv[currentarg++]);
+ zend_string *tmp_str;
+ zend_string *str = zval_get_tmp_string(&argv[currentarg++], &tmp_str);
memset(&ZSTR_VAL(output)[outputpos], (code == 'a' || code == 'Z') ? '\0' : ' ', arg);
memcpy(&ZSTR_VAL(output)[outputpos], ZSTR_VAL(str),
(ZSTR_LEN(str) < arg_cp) ? ZSTR_LEN(str) : arg_cp);
outputpos += arg;
- zend_string_release(str);
+ zend_tmp_string_release(tmp_str);
break;
}
@@ -478,8 +478,8 @@ PHP_FUNCTION(pack)
case 'H': {
int nibbleshift = (code == 'h') ? 0 : 4;
int first = 1;
-
- zend_string *str = zval_get_string(&argv[currentarg++]);
+ zend_string *tmp_str;
+ zend_string *str = zval_get_tmp_string(&argv[currentarg++], &tmp_str);
char *v = ZSTR_VAL(str);
outputpos--;
@@ -513,7 +513,7 @@ PHP_FUNCTION(pack)
}
outputpos++;
- zend_string_release(str);
+ zend_tmp_string_release(tmp_str);
break;
}