helly           Fri Dec 22 00:47:27 2006 UTC

  Modified files:              
    /php-src/ext/standard       var.c var_unserializer.c var_unserializer.re 
    /php-src/ext/standard/tests/serialize       005.phpt 
  Log:
  - Make custom serializing work with zstr (as discussed with andrei)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var.c?r1=1.256&r2=1.257&diff_format=u
Index: php-src/ext/standard/var.c
diff -u php-src/ext/standard/var.c:1.256 php-src/ext/standard/var.c:1.257
--- php-src/ext/standard/var.c:1.256    Thu Dec 21 23:19:48 2006
+++ php-src/ext/standard/var.c  Fri Dec 22 00:47:27 2006
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: var.c,v 1.256 2006/12/21 23:19:48 helly Exp $ */
+/* $Id: var.c,v 1.257 2006/12/22 00:47:27 helly Exp $ */
 
 
 
@@ -972,10 +972,12 @@
 
                                if(ce && ce->serialize != NULL) {
                                        /* has custom handler */
-                                       unsigned char *serialized_data = NULL;
+                                       int serialized_type;
+                                       zstr serialized_data;
                                        zend_uint serialized_length;
 
-                                       if(ce->serialize(struc, 
&serialized_data, &serialized_length, (zend_serialize_data *)var_hash 
TSRMLS_CC) == SUCCESS) {
+                                       serialized_data.v = NULL;
+                                       if(ce->serialize(struc, 
&serialized_type, &serialized_data, &serialized_length, (zend_serialize_data 
*)var_hash TSRMLS_CC) == SUCCESS) {
                                                smart_str_appendl(buf, "C:", 2);
                                                smart_str_append_long(buf, 
Z_OBJCE_P(struc)->name_length);
                                                smart_str_appendl(buf, ":\"", 
2);
@@ -989,15 +991,21 @@
                                                smart_str_appendl(buf, "\":", 
2);
                                        
                                                smart_str_append_long(buf, 
serialized_length);
-                                               smart_str_appendl(buf, ":{", 2);
-                                               /* we need binary or ascii at 
least not unicode */
-                                               smart_str_appendl(buf, 
serialized_data, serialized_length);
+                                               if (serialized_type == 
IS_UNICODE) {
+                                                       smart_str_appendl(buf, 
":U:{", 4);
+                                                       
php_var_serialize_ustr(buf, serialized_data.u, serialized_length);
+                                               } else if (serialized_type == 
IS_STRING) {
+                                                       smart_str_appendl(buf, 
":{", 2);
+                                                       smart_str_appendl(buf, 
serialized_data.s, serialized_length);
+                                               } else {
+                                                       smart_str_appendc(buf, 
'N');
+                                               }
                                                smart_str_appendc(buf, '}'); 
                                        } else {
                                                smart_str_appendl(buf, "N;", 2);
                                        }
-                                       if(serialized_data) {
-                                               efree(serialized_data);
+                                       if(serialized_data.v) {
+                                               efree(serialized_data.v);
                                        }
                                        return;
                                }
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.c?r1=1.82&r2=1.83&diff_format=u
Index: php-src/ext/standard/var_unserializer.c
diff -u php-src/ext/standard/var_unserializer.c:1.82 
php-src/ext/standard/var_unserializer.c:1.83
--- php-src/ext/standard/var_unserializer.c:1.82        Thu Dec 14 23:41:57 2006
+++ php-src/ext/standard/var_unserializer.c     Fri Dec 22 00:47:27 2006
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.9.12 on Thu Dec 14 15:32:34 2006 */
+/* Generated by re2c 0.10.2 on Thu Dec 21 19:19:25 2006 */
 #line 1 "ext/standard/var_unserializer.re"
 /*
   +----------------------------------------------------------------------+
@@ -18,7 +18,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: var_unserializer.c,v 1.82 2006/12/14 23:41:57 andrei Exp $ */
+/* $Id: var_unserializer.c,v 1.83 2006/12/22 00:47:27 helly Exp $ */
 
 #include "php.h"
 #include "ext/standard/php_var.h"
@@ -347,6 +347,7 @@
 static inline int object_custom(UNSERIALIZE_PARAMETER, zend_class_entry *ce)
 {
        long datalen;
+       int type;
 
        if(ce->unserialize == NULL) {
                zend_error(E_WARNING, "Class %v has no unserializer", ce->name);
@@ -355,14 +356,29 @@
 
        datalen = parse_iv2((*p) + 2, p);
 
-       (*p) += 2;
-
+       switch((*p)[1]) {
+       case 'U':
+               type = IS_UNICODE;
+               (*p) += 4;
+               break;
+       case 'N':
+               (*p) += 2;
+               return finish_nested_data(UNSERIALIZE_PASSTHRU);
+       case '{':
+               type = IS_STRING;
+               (*p) += 2;
+               break;
+       default:
+               zend_error(E_WARNING, "Illegal data for unserializing");
+               return 0;
+       }
+          
        if(datalen < 0 || (*p) + datalen >= max) {
                zend_error(E_WARNING, "Insufficient data for unserializing - 
%ld required, %d present", datalen, max - (*p));
                return 0;
        }
 
-       if(ce->unserialize(rval, ce, (const unsigned char*)*p, datalen, 
(zend_unserialize_data *)var_hash TSRMLS_CC) != SUCCESS) {
+       if(ce->unserialize(rval, ce, type, ZSTR((char*)*p), datalen, 
(zend_unserialize_data *)var_hash TSRMLS_CC) != SUCCESS) {
                return 0;
        }
 
@@ -424,160 +440,154 @@
        
 {
        static unsigned char yybm[] = {
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-       128, 128, 128, 128, 128, 128, 128, 128, 
-       128, 128,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
-         0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0, 
        };
 
-#line 462 "ext/standard/var_unserializer.c"
-{
-       YYCTYPE yych;
-       unsigned int yyaccept = 0;
-       goto yy0;
-       ++YYCURSOR;
-yy0:
-       if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
-       yych = *YYCURSOR;
-       switch(yych){
-       case 'C':       case 'O':       goto yy14;
-       case 'N':       goto yy5;
-       case 'R':       goto yy2;
-       case 'S':       goto yy10;
-       case 'U':       goto yy11;
-       case 'a':       goto yy12;
-       case 'b':       goto yy6;
-       case 'd':       goto yy8;
-       case 'i':       goto yy7;
-       case 'o':       goto yy13;
-       case 'r':       goto yy4;
-       case 's':       goto yy9;
-       case '}':       goto yy15;
-       default:        goto yy17;
-       }
-yy2:   yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == ':') goto yy103;
-       goto yy3;
+#line 478 "ext/standard/var_unserializer.c"
+       {
+               YYCTYPE yych;
+
+               if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
+               yych = *YYCURSOR;
+               switch(yych){
+               case 'C':
+               case 'O':       goto yy14;
+               case 'N':       goto yy5;
+               case 'R':       goto yy2;
+               case 'S':       goto yy10;
+               case 'U':       goto yy11;
+               case 'a':       goto yy12;
+               case 'b':       goto yy6;
+               case 'd':       goto yy8;
+               case 'i':       goto yy7;
+               case 'o':       goto yy13;
+               case 'r':       goto yy4;
+               case 's':       goto yy9;
+               case '}':       goto yy15;
+               default:        goto yy17;
+               }
+yy2:
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == ':') goto yy103;
 yy3:
-#line 753 "ext/standard/var_unserializer.re"
-{ return 0; }
-#line 494 "ext/standard/var_unserializer.c"
-yy4:   yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == ':') goto yy97;
-       goto yy3;
-yy5:   yych = *++YYCURSOR;
-       if(yych == ';') goto yy95;
-       goto yy3;
-yy6:   yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == ':') goto yy91;
-       goto yy3;
-yy7:   yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == ':') goto yy85;
-       goto yy3;
-yy8:   yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == ':') goto yy61;
-       goto yy3;
-yy9:   yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == ':') goto yy54;
-       goto yy3;
-yy10:  yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == ':') goto yy47;
-       goto yy3;
-yy11:  yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == ':') goto yy40;
-       goto yy3;
-yy12:  yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == ':') goto yy33;
-       goto yy3;
-yy13:  yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == ':') goto yy26;
-       goto yy3;
-yy14:  yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if(yych == ':') goto yy18;
-       goto yy3;
-yy15:  ++YYCURSOR;
-       goto yy16;
-yy16:
-#line 747 "ext/standard/var_unserializer.re"
-{
+#line 769 "ext/standard/var_unserializer.re"
+               { return 0; }
+#line 507 "ext/standard/var_unserializer.c"
+yy4:
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == ':') goto yy97;
+               goto yy3;
+yy5:
+               yych = *++YYCURSOR;
+               if(yych == ';') goto yy95;
+               goto yy3;
+yy6:
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == ':') goto yy91;
+               goto yy3;
+yy7:
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == ':') goto yy85;
+               goto yy3;
+yy8:
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == ':') goto yy61;
+               goto yy3;
+yy9:
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == ':') goto yy54;
+               goto yy3;
+yy10:
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == ':') goto yy47;
+               goto yy3;
+yy11:
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == ':') goto yy40;
+               goto yy3;
+yy12:
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == ':') goto yy33;
+               goto yy3;
+yy13:
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == ':') goto yy26;
+               goto yy3;
+yy14:
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == ':') goto yy18;
+               goto yy3;
+yy15:
+               ++YYCURSOR;
+#line 763 "ext/standard/var_unserializer.re"
+               {
        /* this is the case where we have less data than planned */
        php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Unexpected end of 
serialized data");
        return 0; /* not sure if it should be 0 or 1 here? */
 }
-#line 547 "ext/standard/var_unserializer.c"
-yy17:  yych = *++YYCURSOR;
-       goto yy3;
-yy18:  yych = *++YYCURSOR;
-       if(yybm[0+yych] & 128) {
-               goto yy21;
-       }
-       if(yych == '+') goto yy20;
-       goto yy19;
-yy19:  YYCURSOR = YYMARKER;
-       switch(yyaccept){
-       case 0: goto yy3;
-       }
-yy20:  yych = *++YYCURSOR;
-       if(yybm[0+yych] & 128) {
-               goto yy21;
-       }
-       goto yy19;
-yy21:  ++YYCURSOR;
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       goto yy22;
-yy22:  if(yybm[0+yych] & 128) {
-               goto yy21;
-       }
-       if(yych != ':') goto yy19;
-       goto yy23;
-yy23:  yych = *++YYCURSOR;
-       if(yych != '"') goto yy19;
-       goto yy24;
-yy24:  ++YYCURSOR;
-       goto yy25;
-yy25:
-#line 634 "ext/standard/var_unserializer.re"
-{
+#line 560 "ext/standard/var_unserializer.c"
+yy17:
+               yych = *++YYCURSOR;
+               goto yy3;
+yy18:
+               yych = *++YYCURSOR;
+               if(yybm[0+yych] & 128) {
+                       goto yy21;
+               }
+               if(yych == '+') goto yy20;
+yy19:
+               YYCURSOR = YYMARKER;
+               goto yy3;
+yy20:
+               yych = *++YYCURSOR;
+               if(yybm[0+yych] & 128) {
+                       goto yy21;
+               }
+               goto yy19;
+yy21:
+               ++YYCURSOR;
+               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+               yych = *YYCURSOR;
+               if(yybm[0+yych] & 128) {
+                       goto yy21;
+               }
+               if(yych != ':') goto yy19;
+               yych = *++YYCURSOR;
+               if(yych != '"') goto yy19;
+               ++YYCURSOR;
+#line 650 "ext/standard/var_unserializer.re"
+               {
        size_t len, len2, len3, maxlen;
        long elements;
        zstr class_name;
@@ -689,69 +699,62 @@
 
        return object_common2(UNSERIALIZE_PASSTHRU, elements);
 }
-#line 693 "ext/standard/var_unserializer.c"
-yy26:  yych = *++YYCURSOR;
-       if(yych <= ','){
-               if(yych != '+') goto yy19;
-               goto yy27;
-       } else {
-               if(yych <= '-') goto yy27;
-               if(yych <= '/') goto yy19;
-               if(yych <= '9') goto yy28;
-               goto yy19;
-       }
-yy27:  yych = *++YYCURSOR;
-       if(yych <= '/') goto yy19;
-       if(yych >= ':') goto yy19;
-       goto yy28;
-yy28:  ++YYCURSOR;
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       goto yy29;
-yy29:  if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy28;
-       if(yych >= ';') goto yy19;
-       goto yy30;
-yy30:  yych = *++YYCURSOR;
-       if(yych != '"') goto yy19;
-       goto yy31;
-yy31:  ++YYCURSOR;
-       goto yy32;
-yy32:
-#line 626 "ext/standard/var_unserializer.re"
-{
+#line 703 "ext/standard/var_unserializer.c"
+yy26:
+               yych = *++YYCURSOR;
+               if(yych <= ',') {
+                       if(yych != '+') goto yy19;
+               } else {
+                       if(yych <= '-') goto yy27;
+                       if(yych <= '/') goto yy19;
+                       if(yych <= '9') goto yy28;
+                       goto yy19;
+               }
+yy27:
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych >= ':') goto yy19;
+yy28:
+               ++YYCURSOR;
+               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+               yych = *YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy28;
+               if(yych >= ';') goto yy19;
+               yych = *++YYCURSOR;
+               if(yych != '"') goto yy19;
+               ++YYCURSOR;
+#line 642 "ext/standard/var_unserializer.re"
+               {
 
        INIT_PZVAL(*rval);
        
        return object_common2(UNSERIALIZE_PASSTHRU,
                        object_common1(UNSERIALIZE_PASSTHRU, 
ZEND_STANDARD_CLASS_DEF_PTR));
 }
-#line 730 "ext/standard/var_unserializer.c"
-yy33:  yych = *++YYCURSOR;
-       if(yych == '+') goto yy34;
-       if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy35;
-       goto yy19;
-yy34:  yych = *++YYCURSOR;
-       if(yych <= '/') goto yy19;
-       if(yych >= ':') goto yy19;
-       goto yy35;
-yy35:  ++YYCURSOR;
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       goto yy36;
-yy36:  if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy35;
-       if(yych >= ';') goto yy19;
-       goto yy37;
-yy37:  yych = *++YYCURSOR;
-       if(yych != '{') goto yy19;
-       goto yy38;
-yy38:  ++YYCURSOR;
-       goto yy39;
-yy39:
-#line 604 "ext/standard/var_unserializer.re"
-{
+#line 736 "ext/standard/var_unserializer.c"
+yy33:
+               yych = *++YYCURSOR;
+               if(yych == '+') goto yy34;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy35;
+               goto yy19;
+yy34:
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych >= ':') goto yy19;
+yy35:
+               ++YYCURSOR;
+               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+               yych = *YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy35;
+               if(yych >= ';') goto yy19;
+               yych = *++YYCURSOR;
+               if(yych != '{') goto yy19;
+               ++YYCURSOR;
+#line 620 "ext/standard/var_unserializer.re"
+               {
        long elements = parse_iv(start + 2);
        /* use iv() not uiv() in order to check data range */
        *p = YYCURSOR;
@@ -772,32 +775,29 @@
 
        return finish_nested_data(UNSERIALIZE_PASSTHRU);
 }
-#line 776 "ext/standard/var_unserializer.c"
-yy40:  yych = *++YYCURSOR;
-       if(yych == '+') goto yy41;
-       if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy42;
-       goto yy19;
-yy41:  yych = *++YYCURSOR;
-       if(yych <= '/') goto yy19;
-       if(yych >= ':') goto yy19;
-       goto yy42;
-yy42:  ++YYCURSOR;
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       goto yy43;
-yy43:  if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy42;
-       if(yych >= ';') goto yy19;
-       goto yy44;
-yy44:  yych = *++YYCURSOR;
-       if(yych != '"') goto yy19;
-       goto yy45;
-yy45:  ++YYCURSOR;
-       goto yy46;
-yy46:
-#line 575 "ext/standard/var_unserializer.re"
-{
+#line 779 "ext/standard/var_unserializer.c"
+yy40:
+               yych = *++YYCURSOR;
+               if(yych == '+') goto yy41;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy42;
+               goto yy19;
+yy41:
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych >= ':') goto yy19;
+yy42:
+               ++YYCURSOR;
+               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+               yych = *YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy42;
+               if(yych >= ';') goto yy19;
+               yych = *++YYCURSOR;
+               if(yych != '"') goto yy19;
+               ++YYCURSOR;
+#line 591 "ext/standard/var_unserializer.re"
+               {
        size_t len, maxlen;
        UChar *ustr;
 
@@ -826,31 +826,28 @@
        return 1;
 }
 #line 829 "ext/standard/var_unserializer.c"
-yy47:  yych = *++YYCURSOR;
-       if(yych == '+') goto yy48;
-       if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy49;
-       goto yy19;
-yy48:  yych = *++YYCURSOR;
-       if(yych <= '/') goto yy19;
-       if(yych >= ':') goto yy19;
-       goto yy49;
-yy49:  ++YYCURSOR;
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       goto yy50;
-yy50:  if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy49;
-       if(yych >= ';') goto yy19;
-       goto yy51;
-yy51:  yych = *++YYCURSOR;
-       if(yych != '"') goto yy19;
-       goto yy52;
-yy52:  ++YYCURSOR;
-       goto yy53;
-yy53:
-#line 546 "ext/standard/var_unserializer.re"
-{
+yy47:
+               yych = *++YYCURSOR;
+               if(yych == '+') goto yy48;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy49;
+               goto yy19;
+yy48:
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych >= ':') goto yy19;
+yy49:
+               ++YYCURSOR;
+               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+               yych = *YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy49;
+               if(yych >= ';') goto yy19;
+               yych = *++YYCURSOR;
+               if(yych != '"') goto yy19;
+               ++YYCURSOR;
+#line 562 "ext/standard/var_unserializer.re"
+               {
        size_t len, maxlen;
        char *str;
 
@@ -878,32 +875,29 @@
        ZVAL_STRINGL(*rval, str, len, 0);
        return 1;
 }
-#line 882 "ext/standard/var_unserializer.c"
-yy54:  yych = *++YYCURSOR;
-       if(yych == '+') goto yy55;
-       if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy56;
-       goto yy19;
-yy55:  yych = *++YYCURSOR;
-       if(yych <= '/') goto yy19;
-       if(yych >= ':') goto yy19;
-       goto yy56;
-yy56:  ++YYCURSOR;
-       if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-       yych = *YYCURSOR;
-       goto yy57;
-yy57:  if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy56;
-       if(yych >= ';') goto yy19;
-       goto yy58;
-yy58:  yych = *++YYCURSOR;
-       if(yych != '"') goto yy19;
-       goto yy59;
-yy59:  ++YYCURSOR;
-       goto yy60;
-yy60:
-#line 518 "ext/standard/var_unserializer.re"
-{
+#line 879 "ext/standard/var_unserializer.c"
+yy54:
+               yych = *++YYCURSOR;
+               if(yych == '+') goto yy55;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy56;
+               goto yy19;
+yy55:
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych >= ':') goto yy19;
+yy56:
+               ++YYCURSOR;
+               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+               yych = *YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy56;
+               if(yych >= ';') goto yy19;
+               yych = *++YYCURSOR;
+               if(yych != '"') goto yy19;
+               ++YYCURSOR;
+#line 534 "ext/standard/var_unserializer.re"
+               {
        size_t len, maxlen;
        char *str;
 
@@ -930,164 +924,162 @@
        ZVAL_STRINGL(*rval, str, len, 1);
        return 1;
 }
-#line 934 "ext/standard/var_unserializer.c"
-yy61:  yych = *++YYCURSOR;
-       if(yych <= '/'){
-               if(yych <= ','){
-                       if(yych == '+') goto yy65;
-                       goto yy19;
+#line 928 "ext/standard/var_unserializer.c"
+yy61:
+               yych = *++YYCURSOR;
+               if(yych <= '/') {
+                       if(yych <= ',') {
+                               if(yych == '+') goto yy65;
+                               goto yy19;
+                       } else {
+                               if(yych <= '-') goto yy63;
+                               if(yych <= '.') goto yy68;
+                               goto yy19;
+                       }
                } else {
-                       if(yych <= '-') goto yy63;
-                       if(yych <= '.') goto yy68;
-                       goto yy19;
+                       if(yych <= 'I') {
+                               if(yych <= '9') goto yy66;
+                               if(yych <= 'H') goto yy19;
+                               goto yy64;
+                       } else {
+                               if(yych != 'N') goto yy19;
+                       }
                }
-       } else {
-               if(yych <= 'I'){
-                       if(yych <= '9') goto yy66;
-                       if(yych <= 'H') goto yy19;
-                       goto yy64;
+               yych = *++YYCURSOR;
+               if(yych == 'A') goto yy84;
+               goto yy19;
+yy63:
+               yych = *++YYCURSOR;
+               if(yych <= '/') {
+                       if(yych == '.') goto yy68;
+                       goto yy19;
                } else {
-                       if(yych != 'N') goto yy19;
-                       goto yy62;
+                       if(yych <= '9') goto yy66;
+                       if(yych != 'I') goto yy19;
                }
-       }
-yy62:  yych = *++YYCURSOR;
-       if(yych == 'A') goto yy84;
-       goto yy19;
-yy63:  yych = *++YYCURSOR;
-       if(yych <= '/'){
-               if(yych == '.') goto yy68;
+yy64:
+               yych = *++YYCURSOR;
+               if(yych == 'N') goto yy80;
                goto yy19;
-       } else {
-               if(yych <= '9') goto yy66;
-               if(yych != 'I') goto yy19;
-               goto yy64;
-       }
-yy64:  yych = *++YYCURSOR;
-       if(yych == 'N') goto yy80;
-       goto yy19;
-yy65:  yych = *++YYCURSOR;
-       if(yych == '.') goto yy68;
-       if(yych <= '/') goto yy19;
-       if(yych >= ':') goto yy19;
-       goto yy66;
-yy66:  ++YYCURSOR;
-       if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
-       yych = *YYCURSOR;
-       goto yy67;
-yy67:  if(yych <= ':'){
-               if(yych <= '.'){
-                       if(yych <= '-') goto yy19;
-                       goto yy78;
+yy65:
+               yych = *++YYCURSOR;
+               if(yych == '.') goto yy68;
+               if(yych <= '/') goto yy19;
+               if(yych >= ':') goto yy19;
+yy66:
+               ++YYCURSOR;
+               if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+               yych = *YYCURSOR;
+               if(yych <= ':') {
+                       if(yych <= '.') {
+                               if(yych <= '-') goto yy19;
+                               goto yy78;
+                       } else {
+                               if(yych <= '/') goto yy19;
+                               if(yych <= '9') goto yy66;
+                               goto yy19;
+                       }
                } else {
-                       if(yych <= '/') goto yy19;
-                       if(yych <= '9') goto yy66;
-                       goto yy19;
+                       if(yych <= 'E') {
+                               if(yych <= ';') goto yy71;
+                               if(yych <= 'D') goto yy19;
+                               goto yy73;
+                       } else {
+                               if(yych == 'e') goto yy73;
+                               goto yy19;
+                       }
                }
-       } else {
-               if(yych <= 'E'){
-                       if(yych <= ';') goto yy71;
-                       if(yych <= 'D') goto yy19;
-                       goto yy73;
+yy68:
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych >= ':') goto yy19;
+yy69:
+               ++YYCURSOR;
+               if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+               yych = *YYCURSOR;
+               if(yych <= ';') {
+                       if(yych <= '/') goto yy19;
+                       if(yych <= '9') goto yy69;
+                       if(yych <= ':') goto yy19;
                } else {
-                       if(yych == 'e') goto yy73;
-                       goto yy19;
-               }
-       }
-yy68:  yych = *++YYCURSOR;
-       if(yych <= '/') goto yy19;
-       if(yych >= ':') goto yy19;
-       goto yy69;
-yy69:  ++YYCURSOR;
-       if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
-       yych = *YYCURSOR;
-       goto yy70;
-yy70:  if(yych <= ';'){
-               if(yych <= '/') goto yy19;
-               if(yych <= '9') goto yy69;
-               if(yych <= ':') goto yy19;
-               goto yy71;
-       } else {
-               if(yych <= 'E'){
-                       if(yych <= 'D') goto yy19;
-                       goto yy73;
-               } else {
-                       if(yych == 'e') goto yy73;
-                       goto yy19;
+                       if(yych <= 'E') {
+                               if(yych <= 'D') goto yy19;
+                               goto yy73;
+                       } else {
+                               if(yych == 'e') goto yy73;
+                               goto yy19;
+                       }
                }
-       }
-yy71:  ++YYCURSOR;
-       goto yy72;
-yy72:
-#line 511 "ext/standard/var_unserializer.re"
-{
+yy71:
+               ++YYCURSOR;
+#line 527 "ext/standard/var_unserializer.re"
+               {
        *p = YYCURSOR;
        INIT_PZVAL(*rval);
        ZVAL_DOUBLE(*rval, zend_strtod((const char *)start + 2, NULL));
        return 1;
 }
-#line 1030 "ext/standard/var_unserializer.c"
-yy73:  yych = *++YYCURSOR;
-       if(yych <= ','){
-               if(yych != '+') goto yy19;
-               goto yy74;
-       } else {
-               if(yych <= '-') goto yy74;
-               if(yych <= '/') goto yy19;
-               if(yych <= '9') goto yy75;
+#line 1023 "ext/standard/var_unserializer.c"
+yy73:
+               yych = *++YYCURSOR;
+               if(yych <= ',') {
+                       if(yych != '+') goto yy19;
+               } else {
+                       if(yych <= '-') goto yy74;
+                       if(yych <= '/') goto yy19;
+                       if(yych <= '9') goto yy75;
+                       goto yy19;
+               }
+yy74:
+               yych = *++YYCURSOR;
+               if(yych <= ',') {
+                       if(yych == '+') goto yy77;
+                       goto yy19;
+               } else {
+                       if(yych <= '-') goto yy77;
+                       if(yych <= '/') goto yy19;
+                       if(yych >= ':') goto yy19;
+               }
+yy75:
+               ++YYCURSOR;
+               if(YYLIMIT == YYCURSOR) YYFILL(1);
+               yych = *YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy75;
+               if(yych == ';') goto yy71;
                goto yy19;
-       }
-yy74:  yych = *++YYCURSOR;
-       if(yych <= ','){
-               if(yych == '+') goto yy77;
+yy77:
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy75;
                goto yy19;
-       } else {
-               if(yych <= '-') goto yy77;
-               if(yych <= '/') goto yy19;
-               if(yych >= ':') goto yy19;
-               goto yy75;
-       }
-yy75:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       goto yy76;
-yy76:  if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy75;
-       if(yych == ';') goto yy71;
-       goto yy19;
-yy77:  yych = *++YYCURSOR;
-       if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy75;
-       goto yy19;
-yy78:  ++YYCURSOR;
-       if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
-       yych = *YYCURSOR;
-       goto yy79;
-yy79:  if(yych <= ';'){
-               if(yych <= '/') goto yy19;
-               if(yych <= '9') goto yy78;
-               if(yych <= ':') goto yy19;
-               goto yy71;
-       } else {
-               if(yych <= 'E'){
-                       if(yych <= 'D') goto yy19;
-                       goto yy73;
+yy78:
+               ++YYCURSOR;
+               if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+               yych = *YYCURSOR;
+               if(yych <= ';') {
+                       if(yych <= '/') goto yy19;
+                       if(yych <= '9') goto yy78;
+                       if(yych <= ':') goto yy19;
+                       goto yy71;
                } else {
-                       if(yych == 'e') goto yy73;
-                       goto yy19;
+                       if(yych <= 'E') {
+                               if(yych <= 'D') goto yy19;
+                               goto yy73;
+                       } else {
+                               if(yych == 'e') goto yy73;
+                               goto yy19;
+                       }
                }
-       }
-yy80:  yych = *++YYCURSOR;
-       if(yych != 'F') goto yy19;
-       goto yy81;
-yy81:  yych = *++YYCURSOR;
-       if(yych != ';') goto yy19;
-       goto yy82;
-yy82:  ++YYCURSOR;
-       goto yy83;
-yy83:
-#line 496 "ext/standard/var_unserializer.re"
-{
+yy80:
+               yych = *++YYCURSOR;
+               if(yych != 'F') goto yy19;
+yy81:
+               yych = *++YYCURSOR;
+               if(yych != ';') goto yy19;
+               ++YYCURSOR;
+#line 512 "ext/standard/var_unserializer.re"
+               {
        *p = YYCURSOR;
        INIT_PZVAL(*rval);
 
@@ -1101,99 +1093,90 @@
 
        return 1;
 }
-#line 1105 "ext/standard/var_unserializer.c"
-yy84:  yych = *++YYCURSOR;
-       if(yych == 'N') goto yy81;
-       goto yy19;
-yy85:  yych = *++YYCURSOR;
-       if(yych <= ','){
-               if(yych != '+') goto yy19;
-               goto yy86;
-       } else {
-               if(yych <= '-') goto yy86;
-               if(yych <= '/') goto yy19;
-               if(yych <= '9') goto yy87;
+#line 1097 "ext/standard/var_unserializer.c"
+yy84:
+               yych = *++YYCURSOR;
+               if(yych == 'N') goto yy81;
                goto yy19;
-       }
-yy86:  yych = *++YYCURSOR;
-       if(yych <= '/') goto yy19;
-       if(yych >= ':') goto yy19;
-       goto yy87;
-yy87:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       goto yy88;
-yy88:  if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy87;
-       if(yych != ';') goto yy19;
-       goto yy89;
-yy89:  ++YYCURSOR;
-       goto yy90;
-yy90:
-#line 489 "ext/standard/var_unserializer.re"
-{
+yy85:
+               yych = *++YYCURSOR;
+               if(yych <= ',') {
+                       if(yych != '+') goto yy19;
+               } else {
+                       if(yych <= '-') goto yy86;
+                       if(yych <= '/') goto yy19;
+                       if(yych <= '9') goto yy87;
+                       goto yy19;
+               }
+yy86:
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych >= ':') goto yy19;
+yy87:
+               ++YYCURSOR;
+               if(YYLIMIT == YYCURSOR) YYFILL(1);
+               yych = *YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy87;
+               if(yych != ';') goto yy19;
+               ++YYCURSOR;
+#line 505 "ext/standard/var_unserializer.re"
+               {
        *p = YYCURSOR;
        INIT_PZVAL(*rval);
        ZVAL_LONG(*rval, parse_iv(start + 2));
        return 1;
 }
-#line 1141 "ext/standard/var_unserializer.c"
-yy91:  yych = *++YYCURSOR;
-       if(yych <= '/') goto yy19;
-       if(yych >= '2') goto yy19;
-       goto yy92;
-yy92:  yych = *++YYCURSOR;
-       if(yych != ';') goto yy19;
-       goto yy93;
-yy93:  ++YYCURSOR;
-       goto yy94;
-yy94:
-#line 482 "ext/standard/var_unserializer.re"
-{
+#line 1131 "ext/standard/var_unserializer.c"
+yy91:
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych >= '2') goto yy19;
+               yych = *++YYCURSOR;
+               if(yych != ';') goto yy19;
+               ++YYCURSOR;
+#line 498 "ext/standard/var_unserializer.re"
+               {
        *p = YYCURSOR;
        INIT_PZVAL(*rval);
        ZVAL_BOOL(*rval, parse_iv(start + 2));
        return 1;
 }
-#line 1159 "ext/standard/var_unserializer.c"
-yy95:  ++YYCURSOR;
-       goto yy96;
-yy96:
-#line 475 "ext/standard/var_unserializer.re"
-{
+#line 1146 "ext/standard/var_unserializer.c"
+yy95:
+               ++YYCURSOR;
+#line 491 "ext/standard/var_unserializer.re"
+               {
        *p = YYCURSOR;
        INIT_PZVAL(*rval);
        ZVAL_NULL(*rval);
        return 1;
 }
-#line 1170 "ext/standard/var_unserializer.c"
-yy97:  yych = *++YYCURSOR;
-       if(yych <= ','){
-               if(yych != '+') goto yy19;
-               goto yy98;
-       } else {
-               if(yych <= '-') goto yy98;
-               if(yych <= '/') goto yy19;
-               if(yych <= '9') goto yy99;
-               goto yy19;
-       }
-yy98:  yych = *++YYCURSOR;
-       if(yych <= '/') goto yy19;
-       if(yych >= ':') goto yy19;
-       goto yy99;
-yy99:  ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       goto yy100;
-yy100: if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy99;
-       if(yych != ';') goto yy19;
-       goto yy101;
-yy101: ++YYCURSOR;
-       goto yy102;
-yy102:
-#line 452 "ext/standard/var_unserializer.re"
-{
+#line 1156 "ext/standard/var_unserializer.c"
+yy97:
+               yych = *++YYCURSOR;
+               if(yych <= ',') {
+                       if(yych != '+') goto yy19;
+               } else {
+                       if(yych <= '-') goto yy98;
+                       if(yych <= '/') goto yy19;
+                       if(yych <= '9') goto yy99;
+                       goto yy19;
+               }
+yy98:
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych >= ':') goto yy19;
+yy99:
+               ++YYCURSOR;
+               if(YYLIMIT == YYCURSOR) YYFILL(1);
+               yych = *YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy99;
+               if(yych != ';') goto yy19;
+               ++YYCURSOR;
+#line 468 "ext/standard/var_unserializer.re"
+               {
        long id;
 
        *p = YYCURSOR;
@@ -1215,34 +1198,31 @@
        
        return 1;
 }
-#line 1219 "ext/standard/var_unserializer.c"
-yy103: yych = *++YYCURSOR;
-       if(yych <= ','){
-               if(yych != '+') goto yy19;
-               goto yy104;
-       } else {
-               if(yych <= '-') goto yy104;
-               if(yych <= '/') goto yy19;
-               if(yych <= '9') goto yy105;
-               goto yy19;
-       }
-yy104: yych = *++YYCURSOR;
-       if(yych <= '/') goto yy19;
-       if(yych >= ':') goto yy19;
-       goto yy105;
-yy105: ++YYCURSOR;
-       if(YYLIMIT == YYCURSOR) YYFILL(1);
-       yych = *YYCURSOR;
-       goto yy106;
-yy106: if(yych <= '/') goto yy19;
-       if(yych <= '9') goto yy105;
-       if(yych != ';') goto yy19;
-       goto yy107;
-yy107: ++YYCURSOR;
-       goto yy108;
-yy108:
-#line 431 "ext/standard/var_unserializer.re"
-{
+#line 1202 "ext/standard/var_unserializer.c"
+yy103:
+               yych = *++YYCURSOR;
+               if(yych <= ',') {
+                       if(yych != '+') goto yy19;
+               } else {
+                       if(yych <= '-') goto yy104;
+                       if(yych <= '/') goto yy19;
+                       if(yych <= '9') goto yy105;
+                       goto yy19;
+               }
+yy104:
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych >= ':') goto yy19;
+yy105:
+               ++YYCURSOR;
+               if(YYLIMIT == YYCURSOR) YYFILL(1);
+               yych = *YYCURSOR;
+               if(yych <= '/') goto yy19;
+               if(yych <= '9') goto yy105;
+               if(yych != ';') goto yy19;
+               ++YYCURSOR;
+#line 447 "ext/standard/var_unserializer.re"
+               {
        long id;
 
        *p = YYCURSOR;
@@ -1262,10 +1242,10 @@
        
        return 1;
 }
-#line 1266 "ext/standard/var_unserializer.c"
-}
+#line 1246 "ext/standard/var_unserializer.c"
+       }
 }
-#line 755 "ext/standard/var_unserializer.re"
+#line 771 "ext/standard/var_unserializer.re"
 
 
        return 0;
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.re?r1=1.61&r2=1.62&diff_format=u
Index: php-src/ext/standard/var_unserializer.re
diff -u php-src/ext/standard/var_unserializer.re:1.61 
php-src/ext/standard/var_unserializer.re:1.62
--- php-src/ext/standard/var_unserializer.re:1.61       Thu Dec 14 23:41:57 2006
+++ php-src/ext/standard/var_unserializer.re    Fri Dec 22 00:47:27 2006
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: var_unserializer.re,v 1.61 2006/12/14 23:41:57 andrei Exp $ */
+/* $Id: var_unserializer.re,v 1.62 2006/12/22 00:47:27 helly Exp $ */
 
 #include "php.h"
 #include "ext/standard/php_var.h"
@@ -351,6 +351,7 @@
 static inline int object_custom(UNSERIALIZE_PARAMETER, zend_class_entry *ce)
 {
        long datalen;
+       int type;
 
        if(ce->unserialize == NULL) {
                zend_error(E_WARNING, "Class %v has no unserializer", ce->name);
@@ -359,14 +360,29 @@
 
        datalen = parse_iv2((*p) + 2, p);
 
-       (*p) += 2;
-
+       switch((*p)[1]) {
+       case 'U':
+               type = IS_UNICODE;
+               (*p) += 4;
+               break;
+       case 'N':
+               (*p) += 2;
+               return finish_nested_data(UNSERIALIZE_PASSTHRU);
+       case '{':
+               type = IS_STRING;
+               (*p) += 2;
+               break;
+       default:
+               zend_error(E_WARNING, "Illegal data for unserializing");
+               return 0;
+       }
+          
        if(datalen < 0 || (*p) + datalen >= max) {
                zend_error(E_WARNING, "Insufficient data for unserializing - 
%ld required, %d present", datalen, max - (*p));
                return 0;
        }
 
-       if(ce->unserialize(rval, ce, (const unsigned char*)*p, datalen, 
(zend_unserialize_data *)var_hash TSRMLS_CC) != SUCCESS) {
+       if(ce->unserialize(rval, ce, type, ZSTR((char*)*p), datalen, 
(zend_unserialize_data *)var_hash TSRMLS_CC) != SUCCESS) {
                return 0;
        }
 
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/serialize/005.phpt?r1=1.4&r2=1.5&diff_format=u
Index: php-src/ext/standard/tests/serialize/005.phpt
diff -u php-src/ext/standard/tests/serialize/005.phpt:1.4 
php-src/ext/standard/tests/serialize/005.phpt:1.5
--- php-src/ext/standard/tests/serialize/005.phpt:1.4   Mon Mar 27 13:37:47 2006
+++ php-src/ext/standard/tests/serialize/005.phpt       Fri Dec 22 00:47:27 2006
@@ -197,7 +197,7 @@
 NULL
 ===N2===
 TestNew::serialize()
-unicode(19) "C:7:"TestNew":1:{2}"
+unicode(21) "C:7:"TestNew":1:U:{2}"
 TestNew::unserialize()
 object(TestNew)#%d (0) {
 }

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

Reply via email to