[PHP-CVS] cvs: php-src /ext/standard incomplete_class.c

2007-02-01 Thread Antony Dovgal
tony2001Thu Feb  1 14:07:03 2007 UTC

  Modified files:  
/php-src/ext/standard   incomplete_class.c 
  Log:
  free class_name when necessary
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/incomplete_class.c?r1=1.34r2=1.35diff_format=u
Index: php-src/ext/standard/incomplete_class.c
diff -u php-src/ext/standard/incomplete_class.c:1.34 
php-src/ext/standard/incomplete_class.c:1.35
--- php-src/ext/standard/incomplete_class.c:1.34Mon Jan  1 09:29:32 2007
+++ php-src/ext/standard/incomplete_class.c Thu Feb  1 14:07:03 2007
@@ -17,7 +17,7 @@
  */
 
 
-/* $Id: incomplete_class.c,v 1.34 2007/01/01 09:29:32 sebastian Exp $ */
+/* $Id: incomplete_class.c,v 1.35 2007/02/01 14:07:03 tony2001 Exp $ */
 
 #include php.h
 #include basic_functions.h
@@ -39,15 +39,21 @@
 static void incomplete_class_message(zval *object, int error_type TSRMLS_DC)
 {
zstr class_name;
+   zend_bool class_name_alloced = 1;
 
class_name = php_lookup_class_name(object, NULL);

/* FIXME: Unicode support??? */
if (!class_name.s) {
+   class_name_alloced = 0;
class_name.s = unknown;
}

php_error_docref(NULL TSRMLS_CC, error_type, INCOMPLETE_CLASS_MSG, 
class_name);
+
+   if (class_name_alloced) {
+   efree(class_name.v);
+   }
 }
 /* }}} */
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/standard incomplete_class.c php_incomplete_class.h var.c var_unserializer.c var_unserializer.re /ext/standard/tests/serialize 001.phpt 005.phpt 006.phpt bug14293.phpt bug2

2006-03-27 Thread Dmitry Stogov
dmitry  Mon Mar 27 13:37:47 2006 UTC

  Modified files:  
/php-src/ext/standard   incomplete_class.c php_incomplete_class.h 
var.c var_unserializer.c var_unserializer.re 
/php-src/ext/standard/tests/serialize   001.phpt 005.phpt 006.phpt 
bug14293.phpt bug21957.phpt 
bug26762.phpt bug27469.phpt 
bug28325.phpt bug31402.phpt 
  Log:
  Unicode support
  
  http://cvs.php.net/viewcvs.cgi/php-src/ext/standard/incomplete_class.c?r1=1.32r2=1.33diff_format=u
Index: php-src/ext/standard/incomplete_class.c
diff -u php-src/ext/standard/incomplete_class.c:1.32 
php-src/ext/standard/incomplete_class.c:1.33
--- php-src/ext/standard/incomplete_class.c:1.32Sun Feb 26 11:57:14 2006
+++ php-src/ext/standard/incomplete_class.c Mon Mar 27 13:37:46 2006
@@ -17,7 +17,7 @@
  */
 
 
-/* $Id: incomplete_class.c,v 1.32 2006/02/26 11:57:14 dmitry Exp $ */
+/* $Id: incomplete_class.c,v 1.33 2006/03/27 13:37:46 dmitry Exp $ */
 
 #include php.h
 #include basic_functions.h
@@ -98,7 +98,7 @@
value.handlers = php_incomplete_object_handlers;

ALLOC_HASHTABLE(object-properties);
-   zend_hash_init(object-properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+   zend_u_hash_init(object-properties, 0, NULL, ZVAL_PTR_DTOR, 0, 
UG(unicode));
return value;
 }
 
@@ -133,10 +133,14 @@
object_properties = Z_OBJPROP_P(object);
 
if (zend_hash_find(object_properties, MAGIC_MEMBER, 
sizeof(MAGIC_MEMBER), (void **) val) == SUCCESS) {
-   retval.s = estrndup(Z_STRVAL_PP(val), Z_STRLEN_PP(val));
+   if (UG(unicode)) {
+   retval.u = eustrndup(Z_USTRVAL_PP(val), 
Z_USTRLEN_PP(val));
+   } else {
+   retval.s = estrndup(Z_STRVAL_PP(val), Z_STRLEN_PP(val));
+   }
 
if (nlen)
-   *nlen = Z_STRLEN_PP(val);
+   *nlen = Z_UNILEN_PP(val);
}
 
return retval;
@@ -145,16 +149,13 @@
 
 /* {{{ php_store_class_name
  */
-PHPAPI void php_store_class_name(zval *object, const char *name, zend_uint len)
+PHPAPI void php_store_class_name(zval *object, zstr name, zend_uint len)
 {
zval *val;
TSRMLS_FETCH();
 
MAKE_STD_ZVAL(val);
-
-   Z_TYPE_P(val)   = IS_STRING;
-   Z_STRVAL_P(val) = estrndup(name, len);
-   Z_STRLEN_P(val) = len;
+   ZVAL_TEXTL(val, name, len, 1);
 
zend_hash_update(Z_OBJPROP_P(object), MAGIC_MEMBER, 
sizeof(MAGIC_MEMBER), val, sizeof(val), NULL);
 }
http://cvs.php.net/viewcvs.cgi/php-src/ext/standard/php_incomplete_class.h?r1=1.20r2=1.21diff_format=u
Index: php-src/ext/standard/php_incomplete_class.h
diff -u php-src/ext/standard/php_incomplete_class.h:1.20 
php-src/ext/standard/php_incomplete_class.h:1.21
--- php-src/ext/standard/php_incomplete_class.h:1.20Tue Feb 21 20:12:42 2006
+++ php-src/ext/standard/php_incomplete_class.h Mon Mar 27 13:37:46 2006
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: php_incomplete_class.h,v 1.20 2006/02/21 20:12:42 dmitry Exp $ */
+/* $Id: php_incomplete_class.h,v 1.21 2006/03/27 13:37:46 dmitry Exp $ */
 
 #ifndef PHP_INCOMPLETE_CLASS_H
 #define PHP_INCOMPLETE_CLASS_H
@@ -56,7 +56,7 @@
 zend_class_entry *php_create_incomplete_class(TSRMLS_D);
 
 PHPAPI zstr php_lookup_class_name(zval *object, zend_uint *nlen);
-PHPAPI void  php_store_class_name(zval *object, const char *name, zend_uint 
len);
+PHPAPI void  php_store_class_name(zval *object, zstr name, zend_uint len);
 
 #ifdef __cplusplus
 };
http://cvs.php.net/viewcvs.cgi/php-src/ext/standard/var.c?r1=1.225r2=1.226diff_format=u
Index: php-src/ext/standard/var.c
diff -u php-src/ext/standard/var.c:1.225 php-src/ext/standard/var.c:1.226
--- php-src/ext/standard/var.c:1.225Wed Mar 15 09:50:47 2006
+++ php-src/ext/standard/var.c  Mon Mar 27 13:37:46 2006
@@ -18,7 +18,7 @@
+--+
 */
 
-/* $Id: var.c,v 1.225 2006/03/15 09:50:47 derick Exp $ */
+/* $Id: var.c,v 1.226 2006/03/27 13:37:46 dmitry Exp $ */
 
 
 
@@ -681,10 +681,10 @@
 
for(i=0; ilen; /* U16_NEXT post-increments */) {
U16_NEXT(ustr, i, len, c);
-   if (c  128) {
+   if (c  128  c != '\\') {
smart_str_appendc(buf, c  0xff);
} else {
-   smart_str_appendl(buf, \\u, 2);
+   smart_str_appendc(buf, '\\');
smart_str_appendc(buf, hex[(c  12)  0xf]);
smart_str_appendc(buf, hex[(c  8)  0xf]);
smart_str_appendc(buf, hex[(c  4)  0xf]);
@@ -1070,7 +1070,10 @@
PHP_VAR_SERIALIZE_DESTROY(var_hash);
 
if (buf.c) {

Re: [PHP-CVS] cvs: php-src /ext/standard incomplete_class.c php_incomplete_class.h

2005-07-07 Thread Marcus Boerger
Hello Jani,

  consistency is good. So if ever we run into a related problem we'd only
need to care for that single typedef. Thanks Jani.

marcus

Wednesday, July 6, 2005, 2:58:25 PM, you wrote:


  What difference does it make as long as it works? GCC 4 it is. =)
  Anyways, the other functions related to where this stuff is used
  all use zend_uint. Is it bad to be consistent? :)

  --Jani

 On Wed, 6 Jul 2005, Marcus Boerger wrote:

 Hello Jani,

  which compiler is this? According to my knowledge size_t is the type that
 can hold any allocatable size. Or can it be the problem is somewhere else?

 marcus

 Wednesday, July 6, 2005, 1:48:47 AM, you wrote:

 sniper  Tue Jul  5 19:48:47 2005 EDT

   Modified files:
 /php-src/ext/standard   incomplete_class.c php_incomplete_class.h
   Log:
   - Fixed crash in serialize() + classes. (64bit only)


 http://cvs.php.net/diff.php/php-src/ext/standard/incomplete_class.c?r1=1.26r2=1.27ty=u
 Index: php-src/ext/standard/incomplete_class.c
 diff -u php-src/ext/standard/incomplete_class.c:1.26
 php-src/ext/standard/incomplete_class.c:1.27
 --- php-src/ext/standard/incomplete_class.c:1.26Sat Oct 30 15:14:05 
 2004
 +++ php-src/ext/standard/incomplete_class.c Tue Jul  5 19:48:44 2005
 @@ -17,7 +17,7 @@
   */


 -/* $Id: incomplete_class.c,v 1.26 2004/10/30 19:14:05 helly Exp $ */
 +/* $Id: incomplete_class.c,v 1.27 2005/07/05 23:48:44 sniper Exp $ */

  #include php.h
  #include basic_functions.h
 @@ -122,7 +122,7 @@

  /* {{{ php_lookup_class_name
   */
 -char *php_lookup_class_name(zval *object, size_t *nlen)
 +char *php_lookup_class_name(zval *object, zend_uint *nlen)
  {
 zval **val;
 char *retval = NULL;
 @@ -144,7 +144,7 @@

  /* {{{ php_store_class_name
   */
 -void php_store_class_name(zval *object, const char *name, size_t len)
 +void php_store_class_name(zval *object, const char *name, zend_uint len)
  {
 zval *val;
 TSRMLS_FETCH();
 http://cvs.php.net/diff.php/php-src/ext/standard/php_incomplete_class.h?r1=1.15r2=1.16ty=u
 Index: php-src/ext/standard/php_incomplete_class.h
 diff -u php-src/ext/standard/php_incomplete_class.h:1.15
 php-src/ext/standard/php_incomplete_class.h:1.16
 --- php-src/ext/standard/php_incomplete_class.h:1.15Wed Jun 29 05:28:44 
 2005
 +++ php-src/ext/standard/php_incomplete_class.h Tue Jul  5 19:48:44 2005
 @@ -16,7 +16,7 @@

 +--+
  */

 -/* $Id: php_incomplete_class.h,v 1.15 2005/06/29 09:28:44 johannes Exp $ */
 +/* $Id: php_incomplete_class.h,v 1.16 2005/07/05 23:48:44 sniper Exp $ */

  #ifndef PHP_INCOMPLETE_CLASS_H
  #define PHP_INCOMPLETE_CLASS_H
 @@ -42,7 +42,7 @@

  #define PHP_CLASS_ATTRIBUTES
 char *class_name;
 -   size_t name_len;
 +   zend_uint name_len;
 zend_bool free_class_name = 0;
 zend_bool incomplete_class = 0

 @@ -55,8 +55,8 @@

  zend_class_entry *php_create_incomplete_class(TSRMLS_D);

 -char *php_lookup_class_name(zval *object, size_t *nlen);
 -void  php_store_class_name(zval *object, const char *name, size_t len);
 +char *php_lookup_class_name(zval *object, zend_uint *nlen);
 +void  php_store_class_name(zval *object, const char *name, zend_uint len);

  #ifdef __cplusplus
  };









-- 
Best regards,
 Marcusmailto:[EMAIL PROTECTED]

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-CVS] cvs: php-src /ext/standard incomplete_class.c php_incomplete_class.h

2005-07-06 Thread Marcus Boerger
Hello Jani,

  which compiler is this? According to my knowledge size_t is the type that
can hold any allocatable size. Or can it be the problem is somewhere else?

marcus

Wednesday, July 6, 2005, 1:48:47 AM, you wrote:

 sniper  Tue Jul  5 19:48:47 2005 EDT

   Modified files:  
 /php-src/ext/standard   incomplete_class.c php_incomplete_class.h 
   Log:
   - Fixed crash in serialize() + classes. (64bit only)
  
  
 http://cvs.php.net/diff.php/php-src/ext/standard/incomplete_class.c?r1=1.26r2=1.27ty=u
 Index: php-src/ext/standard/incomplete_class.c
 diff -u php-src/ext/standard/incomplete_class.c:1.26
 php-src/ext/standard/incomplete_class.c:1.27
 --- php-src/ext/standard/incomplete_class.c:1.26Sat Oct 30 15:14:05 
 2004
 +++ php-src/ext/standard/incomplete_class.c Tue Jul  5 19:48:44 2005
 @@ -17,7 +17,7 @@
   */
 
 
 -/* $Id: incomplete_class.c,v 1.26 2004/10/30 19:14:05 helly Exp $ */
 +/* $Id: incomplete_class.c,v 1.27 2005/07/05 23:48:44 sniper Exp $ */
 
  #include php.h
  #include basic_functions.h
 @@ -122,7 +122,7 @@
 
  /* {{{ php_lookup_class_name
   */
 -char *php_lookup_class_name(zval *object, size_t *nlen)
 +char *php_lookup_class_name(zval *object, zend_uint *nlen)
  {
 zval **val;
 char *retval = NULL;
 @@ -144,7 +144,7 @@
 
  /* {{{ php_store_class_name
   */
 -void php_store_class_name(zval *object, const char *name, size_t len)
 +void php_store_class_name(zval *object, const char *name, zend_uint len)
  {
 zval *val;
 TSRMLS_FETCH();
 http://cvs.php.net/diff.php/php-src/ext/standard/php_incomplete_class.h?r1=1.15r2=1.16ty=u
 Index: php-src/ext/standard/php_incomplete_class.h
 diff -u php-src/ext/standard/php_incomplete_class.h:1.15
 php-src/ext/standard/php_incomplete_class.h:1.16
 --- php-src/ext/standard/php_incomplete_class.h:1.15Wed Jun 29 05:28:44 
 2005
 +++ php-src/ext/standard/php_incomplete_class.h Tue Jul  5 19:48:44 2005
 @@ -16,7 +16,7 @@

 +--+
  */
 
 -/* $Id: php_incomplete_class.h,v 1.15 2005/06/29 09:28:44 johannes Exp $ */
 +/* $Id: php_incomplete_class.h,v 1.16 2005/07/05 23:48:44 sniper Exp $ */
 
  #ifndef PHP_INCOMPLETE_CLASS_H
  #define PHP_INCOMPLETE_CLASS_H
 @@ -42,7 +42,7 @@
 
  #define PHP_CLASS_ATTRIBUTES  
 char *class_name;  
 -   size_t name_len;   
 +   zend_uint name_len;
 zend_bool free_class_name = 0; 
 zend_bool incomplete_class = 0
 
 @@ -55,8 +55,8 @@

  zend_class_entry *php_create_incomplete_class(TSRMLS_D);
 
 -char *php_lookup_class_name(zval *object, size_t *nlen);
 -void  php_store_class_name(zval *object, const char *name, size_t len);
 +char *php_lookup_class_name(zval *object, zend_uint *nlen);
 +void  php_store_class_name(zval *object, const char *name, zend_uint len);
 
  #ifdef __cplusplus
  };




-- 
Best regards,
 Marcusmailto:[EMAIL PROTECTED]

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-CVS] cvs: php-src /ext/standard incomplete_class.c php_incomplete_class.h

2005-07-06 Thread Jani Taskinen


What difference does it make as long as it works? GCC 4 it is. =)
Anyways, the other functions related to where this stuff is used
all use zend_uint. Is it bad to be consistent? :)

--Jani

On Wed, 6 Jul 2005, Marcus Boerger wrote:


Hello Jani,

 which compiler is this? According to my knowledge size_t is the type that
can hold any allocatable size. Or can it be the problem is somewhere else?

marcus

Wednesday, July 6, 2005, 1:48:47 AM, you wrote:


sniper  Tue Jul  5 19:48:47 2005 EDT



  Modified files:
/php-src/ext/standard   incomplete_class.c php_incomplete_class.h
  Log:
  - Fixed crash in serialize() + classes. (64bit only)




http://cvs.php.net/diff.php/php-src/ext/standard/incomplete_class.c?r1=1.26r2=1.27ty=u
Index: php-src/ext/standard/incomplete_class.c
diff -u php-src/ext/standard/incomplete_class.c:1.26
php-src/ext/standard/incomplete_class.c:1.27
--- php-src/ext/standard/incomplete_class.c:1.26Sat Oct 30 15:14:05 2004
+++ php-src/ext/standard/incomplete_class.c Tue Jul  5 19:48:44 2005
@@ -17,7 +17,7 @@
  */




-/* $Id: incomplete_class.c,v 1.26 2004/10/30 19:14:05 helly Exp $ */
+/* $Id: incomplete_class.c,v 1.27 2005/07/05 23:48:44 sniper Exp $ */



 #include php.h
 #include basic_functions.h
@@ -122,7 +122,7 @@



 /* {{{ php_lookup_class_name
  */
-char *php_lookup_class_name(zval *object, size_t *nlen)
+char *php_lookup_class_name(zval *object, zend_uint *nlen)
 {
zval **val;
char *retval = NULL;
@@ -144,7 +144,7 @@



 /* {{{ php_store_class_name
  */
-void php_store_class_name(zval *object, const char *name, size_t len)
+void php_store_class_name(zval *object, const char *name, zend_uint len)
 {
zval *val;
TSRMLS_FETCH();
http://cvs.php.net/diff.php/php-src/ext/standard/php_incomplete_class.h?r1=1.15r2=1.16ty=u
Index: php-src/ext/standard/php_incomplete_class.h
diff -u php-src/ext/standard/php_incomplete_class.h:1.15
php-src/ext/standard/php_incomplete_class.h:1.16
--- php-src/ext/standard/php_incomplete_class.h:1.15Wed Jun 29 05:28:44 2005
+++ php-src/ext/standard/php_incomplete_class.h Tue Jul  5 19:48:44 2005
@@ -16,7 +16,7 @@

+--+
 */



-/* $Id: php_incomplete_class.h,v 1.15 2005/06/29 09:28:44 johannes Exp $ */
+/* $Id: php_incomplete_class.h,v 1.16 2005/07/05 23:48:44 sniper Exp $ */



 #ifndef PHP_INCOMPLETE_CLASS_H
 #define PHP_INCOMPLETE_CLASS_H
@@ -42,7 +42,7 @@



 #define PHP_CLASS_ATTRIBUTES
char *class_name;
-   size_t name_len;
+   zend_uint name_len;
zend_bool free_class_name = 0;
zend_bool incomplete_class = 0



@@ -55,8 +55,8 @@



 zend_class_entry *php_create_incomplete_class(TSRMLS_D);



-char *php_lookup_class_name(zval *object, size_t *nlen);
-void  php_store_class_name(zval *object, const char *name, size_t len);
+char *php_lookup_class_name(zval *object, zend_uint *nlen);
+void  php_store_class_name(zval *object, const char *name, zend_uint len);



 #ifdef __cplusplus
 };








--
Donate @ http://pecl.php.net/wishlist.php/sniper

--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/standard incomplete_class.c php_incomplete_class.h

2005-07-05 Thread Jani Taskinen
sniper  Tue Jul  5 19:48:47 2005 EDT

  Modified files:  
/php-src/ext/standard   incomplete_class.c php_incomplete_class.h 
  Log:
  - Fixed crash in serialize() + classes. (64bit only)
  
  
http://cvs.php.net/diff.php/php-src/ext/standard/incomplete_class.c?r1=1.26r2=1.27ty=u
Index: php-src/ext/standard/incomplete_class.c
diff -u php-src/ext/standard/incomplete_class.c:1.26 
php-src/ext/standard/incomplete_class.c:1.27
--- php-src/ext/standard/incomplete_class.c:1.26Sat Oct 30 15:14:05 2004
+++ php-src/ext/standard/incomplete_class.c Tue Jul  5 19:48:44 2005
@@ -17,7 +17,7 @@
  */
 
 
-/* $Id: incomplete_class.c,v 1.26 2004/10/30 19:14:05 helly Exp $ */
+/* $Id: incomplete_class.c,v 1.27 2005/07/05 23:48:44 sniper Exp $ */
 
 #include php.h
 #include basic_functions.h
@@ -122,7 +122,7 @@
 
 /* {{{ php_lookup_class_name
  */
-char *php_lookup_class_name(zval *object, size_t *nlen)
+char *php_lookup_class_name(zval *object, zend_uint *nlen)
 {
zval **val;
char *retval = NULL;
@@ -144,7 +144,7 @@
 
 /* {{{ php_store_class_name
  */
-void php_store_class_name(zval *object, const char *name, size_t len)
+void php_store_class_name(zval *object, const char *name, zend_uint len)
 {
zval *val;
TSRMLS_FETCH();
http://cvs.php.net/diff.php/php-src/ext/standard/php_incomplete_class.h?r1=1.15r2=1.16ty=u
Index: php-src/ext/standard/php_incomplete_class.h
diff -u php-src/ext/standard/php_incomplete_class.h:1.15 
php-src/ext/standard/php_incomplete_class.h:1.16
--- php-src/ext/standard/php_incomplete_class.h:1.15Wed Jun 29 05:28:44 2005
+++ php-src/ext/standard/php_incomplete_class.h Tue Jul  5 19:48:44 2005
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: php_incomplete_class.h,v 1.15 2005/06/29 09:28:44 johannes Exp $ */
+/* $Id: php_incomplete_class.h,v 1.16 2005/07/05 23:48:44 sniper Exp $ */
 
 #ifndef PHP_INCOMPLETE_CLASS_H
 #define PHP_INCOMPLETE_CLASS_H
@@ -42,7 +42,7 @@
 
 #define PHP_CLASS_ATTRIBUTES   
\
char *class_name;   
\
-   size_t name_len;
\
+   zend_uint name_len; 
\
zend_bool free_class_name = 0;  
\
zend_bool incomplete_class = 0
 
@@ -55,8 +55,8 @@

 zend_class_entry *php_create_incomplete_class(TSRMLS_D);
 
-char *php_lookup_class_name(zval *object, size_t *nlen);
-void  php_store_class_name(zval *object, const char *name, size_t len);
+char *php_lookup_class_name(zval *object, zend_uint *nlen);
+void  php_store_class_name(zval *object, const char *name, zend_uint len);
 
 #ifdef __cplusplus
 };

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/standard incomplete_class.c

2004-10-30 Thread Marcus Boerger
helly   Sat Oct 30 15:14:05 2004 EDT

  Modified files:  
/php-src/ext/standard   incomplete_class.c 
  Log:
  - Update to new API
  
http://cvs.php.net/diff.php/php-src/ext/standard/incomplete_class.c?r1=1.25r2=1.26ty=u
Index: php-src/ext/standard/incomplete_class.c
diff -u php-src/ext/standard/incomplete_class.c:1.25 
php-src/ext/standard/incomplete_class.c:1.26
--- php-src/ext/standard/incomplete_class.c:1.25Sun Sep  5 13:37:57 2004
+++ php-src/ext/standard/incomplete_class.c Sat Oct 30 15:14:05 2004
@@ -17,7 +17,7 @@
  */
 
 
-/* $Id: incomplete_class.c,v 1.25 2004/09/05 17:37:57 helly Exp $ */
+/* $Id: incomplete_class.c,v 1.26 2004/10/30 19:14:05 helly Exp $ */
 
 #include php.h
 #include basic_functions.h
@@ -82,8 +82,8 @@
return 0;
 }
 
-static union _zend_function *incomplete_class_get_method(zval *object, char *method, 
int method_len TSRMLS_DC) {
-   incomplete_class_message(object, E_ERROR TSRMLS_CC);
+static union _zend_function *incomplete_class_get_method(zval **object, char *method, 
int method_len TSRMLS_DC) {
+   incomplete_class_message(*object, E_ERROR TSRMLS_CC);
return NULL;
 }
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/standard incomplete_class.c

2004-09-05 Thread Marcus Boerger
helly   Sun Sep  5 13:37:57 2004 EDT

  Modified files:  
/php-src/ext/standard   incomplete_class.c 
  Log:
  - Bugfix #29985
  
  
http://cvs.php.net/diff.php/php-src/ext/standard/incomplete_class.c?r1=1.24r2=1.25ty=u
Index: php-src/ext/standard/incomplete_class.c
diff -u php-src/ext/standard/incomplete_class.c:1.24 
php-src/ext/standard/incomplete_class.c:1.25
--- php-src/ext/standard/incomplete_class.c:1.24Wed Apr  7 04:06:09 2004
+++ php-src/ext/standard/incomplete_class.c Sun Sep  5 13:37:57 2004
@@ -17,7 +17,7 @@
  */
 
 
-/* $Id: incomplete_class.c,v 1.24 2004/04/07 08:06:09 stas Exp $ */
+/* $Id: incomplete_class.c,v 1.25 2004/09/05 17:37:57 helly Exp $ */
 
 #include php.h
 #include basic_functions.h
@@ -26,39 +26,33 @@
 #define INCOMPLETE_CLASS_MSG \
The script tried to execute a method or   \
access a property of an incomplete object.  \
-   Please ensure that the class definition b%s/b of the object  \
+   Please ensure that the class definition \%s\ of the object  \
you are trying to operate on was loaded _before_  \
-   the session was started
+   unserialize() gets called or provide a __autoload() function  \
+   to load the class definition 
 
 
 static zend_object_handlers php_incomplete_object_handlers;
 
 /* {{{ incomplete_class_message
  */
-static void incomplete_class_message(int error_type TSRMLS_DC)
+static void incomplete_class_message(zval *object, int error_type TSRMLS_DC)
 {
-   char buf[1024];
-   char *class_name = NULL;
+   char *class_name;
 
-   if(EG(This)) {
-   class_name = php_lookup_class_name(EG(This), NULL);
-   }
+   class_name = php_lookup_class_name(object, NULL);

if (!class_name) {
-   class_name = estrndup(unknown, sizeof(unknown)-1);
+   class_name = unknown;
}

-   snprintf(buf, sizeof(buf)-1, INCOMPLETE_CLASS_MSG, class_name);
-   
-   efree(class_name);
-
-   php_error_docref(NULL TSRMLS_CC, error_type, %s, buf);
+   php_error_docref(NULL TSRMLS_CC, error_type, INCOMPLETE_CLASS_MSG, class_name);
 }
 /* }}} */
 
 static zval *incomplete_class_get_property(zval *object, zval *member, int type 
TSRMLS_DC)
 {
-   incomplete_class_message(E_NOTICE TSRMLS_CC);
+   incomplete_class_message(object, E_NOTICE TSRMLS_CC);
if(type == BP_VAR_W || type == BP_VAR_RW) {
return EG(error_zval_ptr);
} else {
@@ -68,28 +62,28 @@
 
 static void incomplete_class_write_property(zval *object, zval *member, zval *value 
TSRMLS_DC)
 {
-   incomplete_class_message(E_NOTICE TSRMLS_CC);
+   incomplete_class_message(object, E_NOTICE TSRMLS_CC);
 }

 static zval **incomplete_class_get_property_ptr_ptr(zval *object, zval *member 
TSRMLS_DC)
 {
-   incomplete_class_message(E_NOTICE TSRMLS_CC);
+   incomplete_class_message(object, E_NOTICE TSRMLS_CC);
return EG(error_zval_ptr);
 }
 
 static void incomplete_class_unset_property(zval *object, zval *member TSRMLS_DC)
 {
-   incomplete_class_message(E_NOTICE TSRMLS_CC);
+   incomplete_class_message(object, E_NOTICE TSRMLS_CC);
 }
 
 static int incomplete_class_has_property(zval *object, zval *member, int check_empty 
TSRMLS_DC)
 {
-   incomplete_class_message(E_NOTICE TSRMLS_CC);
+   incomplete_class_message(object, E_NOTICE TSRMLS_CC);
return 0;
 }
 
 static union _zend_function *incomplete_class_get_method(zval *object, char *method, 
int method_len TSRMLS_DC) {
-   incomplete_class_message(E_ERROR TSRMLS_CC);
+   incomplete_class_message(object, E_ERROR TSRMLS_CC);
return NULL;
 }
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/standard incomplete_class.c

2004-04-07 Thread Stanislav Malyshev
stasWed Apr  7 04:06:12 2004 EDT

  Modified files:  
/php-src/ext/standard   incomplete_class.c 
  Log:
  Fix incomplete class for the new object model
  
  
http://cvs.php.net/diff.php/php-src/ext/standard/incomplete_class.c?r1=1.23r2=1.24ty=u
Index: php-src/ext/standard/incomplete_class.c
diff -u php-src/ext/standard/incomplete_class.c:1.23 
php-src/ext/standard/incomplete_class.c:1.24
--- php-src/ext/standard/incomplete_class.c:1.23Tue Mar 30 03:56:29 2004
+++ php-src/ext/standard/incomplete_class.c Wed Apr  7 04:06:09 2004
@@ -17,7 +17,7 @@
  */
 
 
-/* $Id: incomplete_class.c,v 1.23 2004/03/30 08:56:29 andi Exp $ */
+/* $Id: incomplete_class.c,v 1.24 2004/04/07 08:06:09 stas Exp $ */
 
 #include php.h
 #include basic_functions.h
@@ -31,6 +31,8 @@
the session was started
 
 
+static zend_object_handlers php_incomplete_object_handlers;
+
 /* {{{ incomplete_class_message
  */
 static void incomplete_class_message(int error_type TSRMLS_DC)
@@ -54,61 +56,72 @@
 }
 /* }}} */
 
-/* {{{ incomplete_class_call_func
- */
-static void incomplete_class_call_func(INTERNAL_FUNCTION_PARAMETERS)
+static zval *incomplete_class_get_property(zval *object, zval *member, int type 
TSRMLS_DC)
 {
-   incomplete_class_message(E_ERROR TSRMLS_CC);
+   incomplete_class_message(E_NOTICE TSRMLS_CC);
+   if(type == BP_VAR_W || type == BP_VAR_RW) {
+   return EG(error_zval_ptr);
+   } else {
+   return EG(uninitialized_zval_ptr);
+   }
 }
-/* }}} */
 
-/* {{{ incomplete_class_set_property
- */
-static void incomplete_class_set_property(INTERNAL_FUNCTION_PARAMETERS)
+static void incomplete_class_write_property(zval *object, zval *member, zval *value 
TSRMLS_DC)
 {
incomplete_class_message(E_NOTICE TSRMLS_CC);
 }
-/* }}} */
+   
+static zval **incomplete_class_get_property_ptr_ptr(zval *object, zval *member 
TSRMLS_DC)
+{
+   incomplete_class_message(E_NOTICE TSRMLS_CC);
+   return EG(error_zval_ptr);
+}
 
-/* {{{ incomplete_class_get_property
- */
-static void incomplete_class_get_property(INTERNAL_FUNCTION_PARAMETERS)
+static void incomplete_class_unset_property(zval *object, zval *member TSRMLS_DC)
 {
incomplete_class_message(E_NOTICE TSRMLS_CC);
 }
-/* }}} */
+
+static int incomplete_class_has_property(zval *object, zval *member, int check_empty 
TSRMLS_DC)
+{
+   incomplete_class_message(E_NOTICE TSRMLS_CC);
+   return 0;
+}
+
+static union _zend_function *incomplete_class_get_method(zval *object, char *method, 
int method_len TSRMLS_DC) {
+   incomplete_class_message(E_ERROR TSRMLS_CC);
+   return NULL;
+}
 
 /* {{{ php_create_incomplete_class
  */
-zend_internal_function incomplete_class_call_func_fe;
-zend_internal_function incomplete_class_get_property_fe;
-zend_internal_function incomplete_class_set_property_fe;
-
-static void php_incomplete_class_init_func(zend_internal_function *fe, void 
(*handler)(INTERNAL_FUNCTION_PARAMETERS)) {
-   fe-type = ZEND_INTERNAL_FUNCTION;
-   fe-handler = handler;
-   fe-function_name = NULL;
-   fe-scope = NULL;
-   fe-fn_flags = 0;
-   fe-prototype = NULL;
-   fe-num_args = 2;
-   fe-arg_info = NULL;
-   fe-pass_rest_by_reference = 0;
+static zend_object_value php_create_incomplete_object(zend_class_entry *class_type 
TSRMLS_DC) {
+   zend_object *object;
+   zend_object_value value;
+   
+   value = zend_objects_new(object, class_type TSRMLS_CC);
+   value.handlers = php_incomplete_object_handlers;
+   
+   ALLOC_HASHTABLE(object-properties);
+   zend_hash_init(object-properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+   return value;
 }
 
 zend_class_entry *php_create_incomplete_class(TSRMLS_D)
 {
zend_class_entry incomplete_class;
 
-   php_incomplete_class_init_func(incomplete_class_call_func_fe, 
incomplete_class_call_func);
-   php_incomplete_class_init_func(incomplete_class_get_property_fe, 
incomplete_class_get_property);
-   php_incomplete_class_init_func(incomplete_class_set_property_fe, 
incomplete_class_set_property);
-
-   INIT_OVERLOADED_CLASS_ENTRY(incomplete_class, INCOMPLETE_CLASS, NULL,
-   (zend_function *)incomplete_class_call_func_fe,
-   (zend_function *)incomplete_class_get_property_fe,
-   (zend_function *)incomplete_class_set_property_fe);
+   INIT_CLASS_ENTRY(incomplete_class, INCOMPLETE_CLASS, NULL);
+   incomplete_class.create_object = php_create_incomplete_object;
 
+   memcpy(php_incomplete_object_handlers, std_object_handlers, 
sizeof(zend_object_handlers));
+   php_incomplete_object_handlers.read_property = incomplete_class_get_property;
+   php_incomplete_object_handlers.has_property = incomplete_class_has_property;
+   php_incomplete_object_handlers.unset_property = 
incomplete_class_unset_property;
+   

[PHP-CVS] cvs: php-src /ext/standard incomplete_class.c php_incomplete_class.h var.c /ext/standard/tests/serialize bug27469.phpt

2004-03-18 Thread Dmitry Stogov
dmitry  Thu Mar 18 11:54:37 2004 EDT

  Added files: 
/php-src/ext/standard/tests/serialize   bug27469.phpt 

  Modified files:  
/php-src/ext/standard   incomplete_class.c php_incomplete_class.h 
var.c 
  Log:
  BUG #27469 was fixed (serialize() objects of incomplete class)
  
  
http://cvs.php.net/diff.php/php-src/ext/standard/incomplete_class.c?r1=1.21r2=1.22ty=u
Index: php-src/ext/standard/incomplete_class.c
diff -u php-src/ext/standard/incomplete_class.c:1.21 
php-src/ext/standard/incomplete_class.c:1.22
--- php-src/ext/standard/incomplete_class.c:1.21Thu Jan  8 03:17:32 2004
+++ php-src/ext/standard/incomplete_class.c Thu Mar 18 11:54:36 2004
@@ -17,7 +17,7 @@
  */
 
 
-/* $Id: incomplete_class.c,v 1.21 2004/01/08 08:17:32 andi Exp $ */
+/* $Id: incomplete_class.c,v 1.22 2004/03/18 16:54:36 dmitry Exp $ */
 
 #include php.h
 #include basic_functions.h
@@ -39,7 +39,7 @@
char *class_name = NULL;
 
if(EG(This)) {
-   class_name = php_lookup_class_name(EG(This), NULL, 0);
+   class_name = php_lookup_class_name(EG(This), NULL);
}

if (!class_name)
@@ -114,7 +114,7 @@
 
 /* {{{ php_lookup_class_name
  */
-char *php_lookup_class_name(zval *object, size_t *nlen, zend_bool del)
+char *php_lookup_class_name(zval *object, size_t *nlen)
 {
zval **val;
char *retval = NULL;
@@ -128,9 +128,6 @@
 
if (nlen)
*nlen = Z_STRLEN_PP(val);
-
-   if (del)
-   zend_hash_del(object_properties, MAGIC_MEMBER, 
sizeof(MAGIC_MEMBER));
}
 
return (retval);
http://cvs.php.net/diff.php/php-src/ext/standard/php_incomplete_class.h?r1=1.12r2=1.13ty=u
Index: php-src/ext/standard/php_incomplete_class.h
diff -u php-src/ext/standard/php_incomplete_class.h:1.12 
php-src/ext/standard/php_incomplete_class.h:1.13
--- php-src/ext/standard/php_incomplete_class.h:1.12Thu Jan  8 12:32:51 2004
+++ php-src/ext/standard/php_incomplete_class.h Thu Mar 18 11:54:36 2004
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: php_incomplete_class.h,v 1.12 2004/01/08 17:32:51 sniper Exp $ */
+/* $Id: php_incomplete_class.h,v 1.13 2004/03/18 16:54:36 dmitry Exp $ */
 
 #ifndef PHP_INCOMPLETE_CLASS_H
 #define PHP_INCOMPLETE_CLASS_H
@@ -29,8 +29,9 @@
 #define PHP_SET_CLASS_ATTRIBUTES(struc)   
 \
/* OBJECTS_FIXME: Fix for new object model */  
 \
if (Z_OBJCE_P(struc) == BG(incomplete_class)) {
 \
-   class_name = php_lookup_class_name(struc, name_len, 1);   
 \
+   class_name = php_lookup_class_name(struc, name_len);   \
free_class_name = 1;   
 \
+   incomplete_class = 1; \
} else {   
 \
class_name = Z_OBJCE_P(struc)-name;   
 \
name_len   = Z_OBJCE_P(struc)-name_length;
 \
@@ -42,7 +43,8 @@
 #define PHP_CLASS_ATTRIBUTES  
 \
char *class_name;  
 \
size_t name_len;   
 \
-   zend_bool free_class_name = 0  
 \
+   zend_bool free_class_name = 0; 
 \
+   zend_bool incomplete_class = 0
 
 #define INCOMPLETE_CLASS __PHP_Incomplete_Class
 #define MAGIC_MEMBER __PHP_Incomplete_Class_Name
@@ -53,7 +55,7 @@

 zend_class_entry *php_create_incomplete_class(TSRMLS_D);
 
-char *php_lookup_class_name(zval *object, size_t *nlen, zend_bool del);
+char *php_lookup_class_name(zval *object, size_t *nlen);
 void  php_store_class_name(zval *object, const char *name, size_t len);
 
 #ifdef __cplusplus
http://cvs.php.net/diff.php/php-src/ext/standard/var.c?r1=1.186r2=1.187ty=u
Index: php-src/ext/standard/var.c
diff -u php-src/ext/standard/var.c:1.186 php-src/ext/standard/var.c:1.187
--- php-src/ext/standard/var.c:1.186Mon Mar  8 18:11:43 2004
+++ php-src/ext/standard/var.c  Thu Mar 18 11:54:36 2004
@@ -18,7 +18,7 @@
+--+
 */
 
-/* $Id: var.c,v 1.186 2004/03/08 23:11:43 abies Exp $ */
+/* 

[PHP-CVS] cvs: php-src /ext/standard incomplete_class.c

2003-08-06 Thread Stanislav Malyshev
stasTue Aug  5 05:07:49 2003 EDT

  Modified files:  
/php-src/ext/standard   incomplete_class.c 
  Log:
  pass trsm via parameters
  
  
Index: php-src/ext/standard/incomplete_class.c
diff -u php-src/ext/standard/incomplete_class.c:1.19 
php-src/ext/standard/incomplete_class.c:1.20
--- php-src/ext/standard/incomplete_class.c:1.19Tue Aug  5 05:06:02 2003
+++ php-src/ext/standard/incomplete_class.c Tue Aug  5 05:07:49 2003
@@ -17,7 +17,7 @@
  */
 
 
-/* $Id: incomplete_class.c,v 1.19 2003/08/05 09:06:02 stas Exp $ */
+/* $Id: incomplete_class.c,v 1.20 2003/08/05 09:07:49 stas Exp $ */
 
 #include php.h
 #include basic_functions.h
@@ -33,11 +33,10 @@
 
 /* {{{ incomplete_class_message
  */
-static void incomplete_class_message(int error_type)
+static void incomplete_class_message(int error_type TSRMLS_DC)
 {
char buf[1024];
char *class_name = NULL;
-   TSRMLS_FETCH();
 
if(EG(This)) {
class_name = php_lookup_class_name(EG(This), NULL, 0);
@@ -58,7 +57,7 @@
  */
 static void incomplete_class_call_func(INTERNAL_FUNCTION_PARAMETERS)
 {
-   incomplete_class_message(E_ERROR);
+   incomplete_class_message(E_ERROR TSRMLS_CC);
 }
 /* }}} */
 
@@ -66,7 +65,7 @@
  */
 static void incomplete_class_set_property(INTERNAL_FUNCTION_PARAMETERS)
 {
-   incomplete_class_message(E_NOTICE);
+   incomplete_class_message(E_NOTICE TSRMLS_CC);
 }
 /* }}} */
 
@@ -74,7 +73,7 @@
  */
 static void incomplete_class_get_property(INTERNAL_FUNCTION_PARAMETERS)
 {
-   incomplete_class_message(E_NOTICE);
+   incomplete_class_message(E_NOTICE TSRMLS_CC);
 }
 /* }}} */
 



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/standard incomplete_class.c

2003-08-05 Thread Stanislav Malyshev
stasTue Aug  5 05:06:02 2003 EDT

  Modified files:  
/php-src/ext/standard   incomplete_class.c 
  Log:
  fix incomplete class for ZE2
  
  
Index: php-src/ext/standard/incomplete_class.c
diff -u php-src/ext/standard/incomplete_class.c:1.18 
php-src/ext/standard/incomplete_class.c:1.19
--- php-src/ext/standard/incomplete_class.c:1.18Tue Jun 10 16:03:38 2003
+++ php-src/ext/standard/incomplete_class.c Tue Aug  5 05:06:02 2003
@@ -17,7 +17,7 @@
  */
 
 
-/* $Id: incomplete_class.c,v 1.18 2003/06/10 20:03:38 imajes Exp $ */
+/* $Id: incomplete_class.c,v 1.19 2003/08/05 09:06:02 stas Exp $ */
 
 #include php.h
 #include basic_functions.h
@@ -33,13 +33,15 @@
 
 /* {{{ incomplete_class_message
  */
-static void incomplete_class_message(zend_property_reference *ref, int error_type)
+static void incomplete_class_message(int error_type)
 {
char buf[1024];
-   char *class_name;
+   char *class_name = NULL;
TSRMLS_FETCH();
 
-   class_name = php_lookup_class_name(ref-object, NULL, 0);
+   if(EG(This)) {
+   class_name = php_lookup_class_name(EG(This), NULL, 0);
+   }

if (!class_name)
class_name = estrdup(unknown);
@@ -54,47 +56,58 @@
 
 /* {{{ incomplete_class_call_func
  */
-static void incomplete_class_call_func(INTERNAL_FUNCTION_PARAMETERS, 
zend_property_reference *property_reference)
+static void incomplete_class_call_func(INTERNAL_FUNCTION_PARAMETERS)
 {
-   incomplete_class_message(property_reference, E_ERROR);
+   incomplete_class_message(E_ERROR);
 }
 /* }}} */
 
 /* {{{ incomplete_class_set_property
  */
-static int incomplete_class_set_property(zend_property_reference *property_reference, 
zval *value)
+static void incomplete_class_set_property(INTERNAL_FUNCTION_PARAMETERS)
 {
-   incomplete_class_message(property_reference, E_NOTICE);
-   
-   /* does not reach this point */
-   return (0);
+   incomplete_class_message(E_NOTICE);
 }
 /* }}} */
 
 /* {{{ incomplete_class_get_property
  */
-static zval incomplete_class_get_property(zend_property_reference *property_reference)
+static void incomplete_class_get_property(INTERNAL_FUNCTION_PARAMETERS)
 {
-   zval foo;
-   
-   incomplete_class_message(property_reference, E_NOTICE);
-
-   /* does not reach this point */
-   memset(foo, 0, sizeof(zval)); /* shut warnings up */
-   return (foo);
+   incomplete_class_message(E_NOTICE);
 }
 /* }}} */
 
 /* {{{ php_create_incomplete_class
  */
+zend_internal_function incomplete_class_call_func_fe;
+zend_internal_function incomplete_class_get_property_fe;
+zend_internal_function incomplete_class_set_property_fe;
+
+static void php_incomplete_class_init_func(zend_internal_function *fe, void 
(*handler)(INTERNAL_FUNCTION_PARAMETERS)) {
+   fe-type = ZEND_INTERNAL_FUNCTION;
+   fe-handler = handler;
+   fe-function_name = NULL;
+   fe-scope = NULL;
+   fe-fn_flags = 0;
+   fe-prototype = NULL;
+   fe-num_args = 2;
+   fe-arg_info = NULL;
+   fe-pass_rest_by_reference = 0;
+}
+
 zend_class_entry *php_create_incomplete_class(TSRMLS_D)
 {
zend_class_entry incomplete_class;
 
+   php_incomplete_class_init_func(incomplete_class_call_func_fe, 
incomplete_class_call_func);
+   php_incomplete_class_init_func(incomplete_class_get_property_fe, 
incomplete_class_get_property);
+   php_incomplete_class_init_func(incomplete_class_set_property_fe, 
incomplete_class_set_property);
+
INIT_OVERLOADED_CLASS_ENTRY(incomplete_class, INCOMPLETE_CLASS, NULL,
-   incomplete_class_call_func,
-   incomplete_class_get_property,
-   incomplete_class_set_property);
+   (zend_function *)incomplete_class_call_func_fe,
+   (zend_function *)incomplete_class_get_property_fe,
+   (zend_function *)incomplete_class_set_property_fe);
 
return zend_register_internal_class(incomplete_class TSRMLS_CC);
 }



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php