@@ -17,7 +17,6 @@ typedef struct {
1717} var_entries ;
1818
1919#define MSGPACK_UNSERIALIZE_FINISH_ITEM (_unpack , _count ) \
20- msgpack_stack_pop(_unpack->var_hash, _count); \
2120 _unpack->stack[_unpack->deps-1]--; \
2221 if (_unpack->stack[_unpack->deps-1] == 0) { \
2322 _unpack->deps--; \
@@ -109,29 +108,6 @@ inline static void msgpack_stack_push(msgpack_unserialize_data_t *var_hashx, zva
109108 * rval = & var_hash -> data [var_hash -> used_slots ++ ];
110109}
111110
112-
113- inline static void msgpack_stack_pop (msgpack_unserialize_data_t * var_hashx , long count )
114- {
115- long i ;
116- var_entries * var_hash = var_hashx -> first_dtor ;
117-
118- while (var_hash && var_hash -> used_slots == VAR_ENTRIES_MAX ) {
119- var_hash = var_hash -> next ;
120- }
121-
122- if (!var_hash || count <= 0 ) {
123- return ;
124- }
125-
126- for (i = count ; i > 0 ; i -- ) {
127- var_hash -> used_slots -- ;
128- if (var_hash -> used_slots < 0 ) {
129- var_hash -> used_slots = 0 ;
130- break ;
131- }
132- }
133- }
134-
135111inline static zend_class_entry * msgpack_unserialize_class (
136112 zval * * container , char * class_name , size_t name_len , zend_bool init_class )
137113{
@@ -258,9 +234,6 @@ void msgpack_unserialize_var_destroy(msgpack_unserialize_data_t *var_hashx, zend
258234
259235 var_hash = var_hashx -> first_dtor ;
260236 while (var_hash ) {
261- for (i = var_hash -> used_slots - 1 ; i >= 0 ; i -- ) {
262- zval_ptr_dtor (& var_hash -> data [i ]);
263- }
264237 next = var_hash -> next ;
265238 efree (var_hash );
266239 var_hash = next ;
@@ -272,7 +245,7 @@ void msgpack_unserialize_set_return_value(msgpack_unserialize_data_t *var_hashx,
272245 if ((var_hash = var_hashx -> first ) != NULL ) {
273246 ZVAL_COPY_VALUE (return_value , & var_hash -> data [0 ]);
274247 } else if ((var_hash = var_hashx -> first_dtor ) != NULL ) {
275- ZVAL_COPY (return_value , & var_hash -> data [0 ]);
248+ ZVAL_COPY_VALUE (return_value , & var_hash -> data [0 ]);
276249 }
277250
278251}
@@ -406,7 +379,7 @@ int msgpack_unserialize_raw(
406379 if (len == 0 ) {
407380 ZVAL_STRINGL (* obj , "" , 0 );
408381 } else {
409- ZVAL_STRINGL (* obj , ( char * ) data , len );
382+ ZVAL_STRINGL (* obj , data , len );
410383 }
411384
412385 return 0 ;
@@ -574,8 +547,8 @@ int msgpack_unserialize_map_item(
574547 zend_unmangle_property_name_ex (key_zstring , & class_name , & prop_name , & prop_len );
575548 zend_update_property (Z_OBJCE_P (container_val ), container_val , prop_name , prop_len , val );
576549
577- zval_ptr_dtor (key );
578550 zend_string_release (key_zstring );
551+ zval_ptr_dtor (key );
579552 } else {
580553 switch (Z_TYPE_P (key )) {
581554 case IS_LONG :
@@ -617,8 +590,6 @@ int msgpack_unserialize_map_item(
617590 }
618591 }
619592
620- msgpack_stack_pop (unpack -> var_hash , 2 );
621-
622593 deps = unpack -> deps - 1 ;
623594 unpack -> stack [deps ]-- ;
624595 if (unpack -> stack [deps ] == 0 )
0 commit comments