projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
fix leak
[m6w6/ext-psi]
/
src
/
marshal.c
diff --git
a/src/marshal.c
b/src/marshal.c
index 6473eca10a23b2e11021783d0e4d442ebd8811bb..c7651f6c023243b1b0c4de855aebd921713291d7 100644
(file)
--- a/
src/marshal.c
+++ b/
src/marshal.c
@@
-226,6
+226,7
@@
impl_val *psi_let_boolval(impl_val *tmp, struct psi_decl_arg *spec, token_t impl
return psi_val_boolval(tmp, real_type, boolval);
}
return psi_val_boolval(tmp, real_type, boolval);
}
+#if HAVE_INT128
static inline char *psi_u128_to_buf(char *buf, unsigned __int128 u128)
{
for (*buf = 0; u128 > 0; u128 /= 10) {
static inline char *psi_u128_to_buf(char *buf, unsigned __int128 u128)
{
for (*buf = 0; u128 > 0; u128 /= 10) {
@@
-245,7
+246,6
@@
static inline char *psi_i128_to_buf(char *buf, __int128 i128)
return psi_u128_to_buf(buf, i128);
}
return psi_u128_to_buf(buf, i128);
}
-#if HAVE_INT128
# define RETVAL_LONG_STR(V, s) do {\
char buf[0x30] = {0}; \
if (s && V >= ZEND_LONG_MIN && V <= ZEND_LONG_MAX) { \
# define RETVAL_LONG_STR(V, s) do {\
char buf[0x30] = {0}; \
if (s && V >= ZEND_LONG_MIN && V <= ZEND_LONG_MAX) { \
@@
-526,7
+526,7
@@
void psi_set_to_string(zval *return_value, struct psi_set_exp *set, impl_val *re
impl_val *ptr = deref_impl_val(ret_val, var);
char *str;
impl_val *ptr = deref_impl_val(ret_val, var);
char *str;
- if (var->arg->var->array_size) {
+ if (var->arg->var->array_size
&& var->arg->var->pointer_level == 1
) {
str = (char *) ptr;
} else {
str = ptr->ptr;
str = (char *) ptr;
} else {
str = ptr->ptr;
@@
-689,8
+689,8
@@
void psi_set_to_array_counted(zval *return_value, struct psi_set_exp *set, impl_
count = psi_num_exp_get_long(sub_exp->data.num, frame, NULL);
psi_plist_get(set->inner, 1, &sub_exp);
count = psi_num_exp_get_long(sub_exp->data.num, frame, NULL);
psi_plist_get(set->inner, 1, &sub_exp);
- for (ptr = (char *) ret_val; 0 < count--; ptr += size) {
size = psi_decl_var_get_size(psi_set_exp_get_decl_var(sub_exp));
size = psi_decl_var_get_size(psi_set_exp_get_decl_var(sub_exp));
+ for (ptr = (char *) ret_val; 0 < count--; ptr += size) {
zval ele;
ZVAL_NULL(&ele);
zval ele;
ZVAL_NULL(&ele);