1414#endif
1515
1616typedef struct {
17- zval data [VAR_ENTRIES_MAX ];
1817 zend_long used_slots ;
1918 void * next ;
19+ zval data [VAR_ENTRIES_MAX ];
2020} var_entries ;
2121
2222#define MSGPACK_UNSERIALIZE_ALLOC_STACK (_unpack ) \
2323 if (UNEXPECTED(_unpack->deps == 0)) { \
2424 *obj = _unpack->retval; \
2525 } else { \
26- *obj = msgpack_stack_push(_unpack->var_hash); \
26+ *obj = msgpack_stack_push(& _unpack->var_hash); \
2727 }
2828
2929#define MSGPACK_UNSERIALIZE_ALLOC_VALUE (_unpack ) \
3030 if (UNEXPECTED(_unpack->deps <= 0)) { \
3131 *obj = _unpack->retval; \
3232 } else { \
33- *obj = msgpack_var_push(_unpack->var_hash); \
33+ *obj = msgpack_var_push(& _unpack->var_hash); \
3434 }
3535
3636#define MSGPACK_UNSERIALIZE_DEC_DEP (_unpack ) \
@@ -41,10 +41,10 @@ typedef struct {
4141
4242#define MSGPACK_UNSERIALIZE_FINISH_ITEM (_unpack , _v1 , _v2 ) \
4343 if ((_v2) && MSGPACK_IS_STACK_VALUE((_v2))) { \
44- msgpack_stack_pop(_unpack->var_hash, (_v2)); \
44+ msgpack_stack_pop(& _unpack->var_hash, (_v2)); \
4545 } \
4646 if ((_v1) && MSGPACK_IS_STACK_VALUE((_v1))) { \
47- msgpack_stack_pop(_unpack->var_hash, (_v1)); \
47+ msgpack_stack_pop(& _unpack->var_hash, (_v1)); \
4848 } \
4949 MSGPACK_UNSERIALIZE_DEC_DEP(_unpack);
5050
@@ -327,6 +327,7 @@ void msgpack_unserialize_var_destroy(msgpack_unserialize_data_t *var_hashx, zend
327327void msgpack_unserialize_init (msgpack_unserialize_data * unpack ) /* {{{ */ {
328328 unpack -> deps = 0 ;
329329 unpack -> type = MSGPACK_SERIALIZE_TYPE_NONE ;
330+ msgpack_unserialize_var_init (& unpack -> var_hash );
330331}
331332/* }}} */
332333
@@ -598,7 +599,7 @@ int msgpack_unserialize_map_item(msgpack_unserialize_data *unpack, zval **contai
598599 int type = unpack -> type ;
599600
600601 unpack -> type = MSGPACK_SERIALIZE_TYPE_NONE ;
601- if ((rval = msgpack_var_access (unpack -> var_hash , Z_LVAL_P (val ) - 1 )) == NULL ) {
602+ if ((rval = msgpack_var_access (& unpack -> var_hash , Z_LVAL_P (val ) - 1 )) == NULL ) {
602603 if (UNEXPECTED (Z_LVAL_P (val ) == 1 /* access the retval */ )) {
603604 rval = unpack -> retval ;
604605 } else {
@@ -745,13 +746,13 @@ int msgpack_unserialize_map_item(msgpack_unserialize_data *unpack, zval **contai
745746 }
746747
747748 if (MSGPACK_IS_STACK_VALUE (val )) {
748- msgpack_stack_pop (unpack -> var_hash , val );
749+ msgpack_stack_pop (& unpack -> var_hash , val );
749750 } else {
750751 msgpack_var_replace (val , nval );
751752 }
752753 if (MSGPACK_IS_STACK_VALUE (key )) {
753754 /* just in case for malformed data */
754- msgpack_stack_pop (unpack -> var_hash , key );
755+ msgpack_stack_pop (& unpack -> var_hash , key );
755756 }
756757
757758 deps = unpack -> deps - 1 ;
0 commit comments