cvs: php-src /ext/standard var.c
| From: | Stanislav Malyshev | Date: | Tue, 05 Aug 2003 09:19:38 +0000 |
| Subject: | cvs: php-src /ext/standard var.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-22927@lists.php.net to get a copy of this message | ||
stas Tue Aug 5 05:19:38 2003 EDT
Modified files:
/php-src/ext/standard var.c
Log:
Don't try to __sleep incomplete classes
Index: php-src/ext/standard/var.c
diff -u php-src/ext/standard/var.c:1.167 php-src/ext/standard/var.c:1.168
--- php-src/ext/standard/var.c:1.167 Tue Jun 10 16:03:39 2003
+++ php-src/ext/standard/var.c Tue Aug 5 05:19:38 2003
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: var.c,v 1.167 2003/06/10 20:03:39 imajes Exp $ */
+/* $Id: var.c,v 1.168 2003/08/05 09:19:38 stas Exp $ */
/* {{{ includes
@@ -550,26 +550,29 @@
zval fname;
int res;
- INIT_PZVAL(&fname);
- ZVAL_STRINGL(&fname, "__sleep", sizeof("__sleep") - 1, 0);
- res = call_user_function_ex(CG(function_table), struc, &fname,
- &retval_ptr, 0, 0, 1, NULL TSRMLS_CC);
-
- if (res == SUCCESS) {
- if (retval_ptr) {
- if (HASH_OF(retval_ptr)) {
- php_var_serialize_class(buf, struc, retval_ptr,
- var_hash TSRMLS_CC);
- } else {
- php_error_docref(NULL TSRMLS_CC, E_NOTICE, "__sleep should return an array only "
- "containing the names of instance-variables to "
- "serialize.");
+ if(Z_OBJCE_PP(struc) != PHP_IC_ENTRY) {
+ INIT_PZVAL(&fname);
+ ZVAL_STRINGL(&fname, "__sleep", sizeof("__sleep") - 1, 0);
+ res = call_user_function_ex(CG(function_table), struc, &fname,
+ &retval_ptr, 0, 0, 1, NULL TSRMLS_CC);
+
+ if (res == SUCCESS) {
+ if (retval_ptr) {
+ if (HASH_OF(retval_ptr)) {
+ php_var_serialize_class(buf, struc, retval_ptr,
+ var_hash TSRMLS_CC);
+ } else {
+ php_error_docref(NULL TSRMLS_CC, E_NOTICE, "__sleep should return an array only "
+ "containing the names of instance-variables to "
+ "serialize.");
+ }
+
+ zval_ptr_dtor(&retval_ptr);
}
-
- zval_ptr_dtor(&retval_ptr);
+ return;
}
- return;
}
+
if (retval_ptr)
zval_ptr_dtor(&retval_ptr);
/* fall-through */