Skip to content

Commit 9a57778

Browse files
committed
fast method call
1 parent faf5850 commit 9a57778

File tree

2 files changed

+19
-21
lines changed

2 files changed

+19
-21
lines changed

msgpack_class.c

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -430,33 +430,31 @@ static ZEND_METHOD(msgpack_unpacker, execute) /* {{{ */ {
430430
/* }}} */
431431

432432
static ZEND_METHOD(msgpack_unpacker, data) /* {{{ */ {
433-
zval *object = NULL, func_name, reset_return;
434-
php_msgpack_unpacker_t *unpacker = Z_MSGPACK_UNPACKER_P(getThis());
433+
zval *object = NULL;
434+
php_msgpack_unpacker_t *unpacker = Z_MSGPACK_UNPACKER_P(getThis());
435435

436-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|z", &object) == FAILURE) {
437-
return;
438-
}
436+
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|z", &object) == FAILURE) {
437+
return;
438+
}
439439

440-
if (unpacker->finished) {
441-
msgpack_unserialize_set_return_value(&unpacker->var_hash, &unpacker->retval);
442-
}
440+
if (unpacker->finished) {
441+
msgpack_unserialize_set_return_value(&unpacker->var_hash, &unpacker->retval);
442+
}
443443

444-
if (object == NULL) {
445-
ZVAL_COPY_VALUE(return_value, &unpacker->retval);
446-
} else {
447-
zval zv;
448-
ZVAL_COPY_VALUE(&zv, &unpacker->retval);
444+
if (object == NULL) {
445+
ZVAL_COPY_VALUE(return_value, &unpacker->retval);
446+
} else {
447+
zval zv;
448+
ZVAL_COPY_VALUE(&zv, &unpacker->retval);
449449

450-
if (msgpack_convert_object(return_value, object, &zv) != SUCCESS) {
450+
if (msgpack_convert_object(return_value, object, &zv) != SUCCESS) {
451451
zval_ptr_dtor(&zv);
452-
RETURN_NULL();
453-
}
452+
RETURN_NULL();
453+
}
454454
zval_ptr_dtor(&zv);
455-
}
455+
}
456456

457-
ZVAL_STRING(&func_name, "reset");
458-
call_user_function_ex(CG(function_table), getThis(), &func_name, &reset_return, 0, NULL, 0, NULL);
459-
zval_ptr_dtor(&func_name);
457+
ZEND_MN(msgpack_unpacker_reset)(INTERNAL_FUNCTION_PARAM_PASSTHRU);
460458
}
461459
/* }}} */
462460

msgpack_pack.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ static inline void msgpack_serialize_array(smart_str *buf, zval *val, HashTable
314314

315315
msgpack_serialize_zval(buf, data, var_hash);
316316

317-
if (Z_TYPE_P(data) == IS_ARRAY) {
317+
if (Z_TYPE_P(data_noref) == IS_ARRAY) {
318318
ZEND_HASH_DEC_APPLY_COUNT(Z_ARRVAL_P(data_noref));
319319
}
320320
}

0 commit comments

Comments
 (0)