diff options
-rw-r--r-- | ext/standard/var_unserializer.re | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re index 041bbd0fb2..585d7774a9 100644 --- a/ext/standard/var_unserializer.re +++ b/ext/standard/var_unserializer.re @@ -226,9 +226,11 @@ static inline int object_common2(UNSERIALIZE_PARAMETER, int elements) return 0; } - INIT_PZVAL(&fname); - ZVAL_STRINGL(&fname, "__wakeup", sizeof("__wakeup") - 1, 0); - call_user_function_ex(CG(function_table), rval, &fname, &retval_ptr, 0, 0, 1, NULL TSRMLS_CC); + if(Z_OBJCE_PP(rval) != PHP_IC_ENTRY) { + INIT_PZVAL(&fname); + ZVAL_STRINGL(&fname, "__wakeup", sizeof("__wakeup") - 1, 0); + call_user_function_ex(CG(function_table), rval, &fname, &retval_ptr, 0, 0, 1, NULL TSRMLS_CC); + } if (retval_ptr) zval_ptr_dtor(&retval_ptr); |