Skip to content

Commit fc1bb6e

Browse files
committed
Fixing tests(not finish yet)
1 parent 9a57778 commit fc1bb6e

File tree

5 files changed

+106
-89
lines changed

5 files changed

+106
-89
lines changed

msgpack.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,6 @@ PS_SERIALIZER_DECODE_FUNC(msgpack) /* {{{ */ {
166166
ret = template_execute(&mp, val, vallen, &off);
167167

168168
if (ret == MSGPACK_UNPACK_EXTRA_BYTES || ret == MSGPACK_UNPACK_SUCCESS) {
169-
msgpack_unserialize_set_return_value(&var_hash, &tmp);
170169
msgpack_unserialize_var_destroy(&var_hash, 0);
171170

172171
ZEND_HASH_FOREACH_STR_KEY_VAL(HASH_OF(&tmp), key_str, value) {
@@ -224,15 +223,13 @@ PHP_MSGPACK_API void php_msgpack_unserialize(zval *return_value, char *str, size
224223
MSGPACK_WARNING("[msgpack] (%s) Parse error", __FUNCTION__);
225224
break;
226225
case MSGPACK_UNPACK_CONTINUE:
227-
msgpack_unserialize_set_return_value(&var_hash, return_value);
228-
msgpack_unserialize_var_destroy(&var_hash, 0);
226+
msgpack_unserialize_var_destroy(&var_hash, 1);
229227
MSGPACK_WARNING(
230228
"[msgpack] (%s) Insufficient data for unserializing",
231229
__FUNCTION__);
232230
break;
233231
case MSGPACK_UNPACK_EXTRA_BYTES:
234232
case MSGPACK_UNPACK_SUCCESS:
235-
msgpack_unserialize_set_return_value(&var_hash, return_value);
236233
msgpack_unserialize_var_destroy(&var_hash, 0);
237234
if (off < str_len) {
238235
MSGPACK_WARNING("[msgpack] (%s) Extra bytes", __FUNCTION__);

msgpack_class.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ static ZEND_METHOD(msgpack_unpacker, __destruct) /* {{{ */ {
311311
php_msgpack_unpacker_t *unpacker = Z_MSGPACK_UNPACKER_P(getThis());
312312
smart_str_free(&unpacker->buffer);
313313
msgpack_unserialize_var_destroy(&unpacker->var_hash, unpacker->error);
314+
zval_ptr_dtor(&unpacker->retval);
314315
}
315316
/* }}} */
316317

@@ -388,7 +389,6 @@ static ZEND_METHOD(msgpack_unpacker, execute) /* {{{ */ {
388389
}
389390

390391
if (unpacker->finished) {
391-
msgpack_unserialize_set_return_value(&unpacker->var_hash, &unpacker->retval);
392392
msgpack_unserialize_var_destroy(&unpacker->var_hash, unpacker->error);
393393
unpacker->error = 0;
394394

@@ -438,20 +438,21 @@ static ZEND_METHOD(msgpack_unpacker, data) /* {{{ */ {
438438
}
439439

440440
if (unpacker->finished) {
441-
msgpack_unserialize_set_return_value(&unpacker->var_hash, &unpacker->retval);
442-
}
443-
444-
if (object == NULL) {
445-
ZVAL_COPY_VALUE(return_value, &unpacker->retval);
446-
} else {
447-
zval zv;
448-
ZVAL_COPY_VALUE(&zv, &unpacker->retval);
449-
450-
if (msgpack_convert_object(return_value, object, &zv) != SUCCESS) {
441+
if (object == NULL) {
442+
ZVAL_COPY_VALUE(return_value, &unpacker->retval);
443+
} else {
444+
zval zv;
445+
ZVAL_COPY_VALUE(&zv, &unpacker->retval);
446+
447+
if (msgpack_convert_object(return_value, object, &zv) != SUCCESS) {
448+
zval_ptr_dtor(&zv);
449+
RETURN_NULL();
450+
}
451451
zval_ptr_dtor(&zv);
452-
RETURN_NULL();
453452
}
454-
zval_ptr_dtor(&zv);
453+
ZVAL_UNDEF(&unpacker->retval);
454+
} else {
455+
RETURN_FALSE;
455456
}
456457

457458
ZEND_MN(msgpack_unpacker_reset)(INTERNAL_FUNCTION_PARAM_PASSTHRU);
@@ -483,7 +484,6 @@ static ZEND_METHOD(msgpack_unpacker, reset) /* {{{ */ {
483484
msgpack_unserialize_var_destroy(&unpacker->var_hash, unpacker->error);
484485
unpacker->error = 0;
485486

486-
487487
template_init(&unpacker->mp);
488488

489489
msgpack_unserialize_var_init(&unpacker->var_hash);

0 commit comments

Comments
 (0)