]> granicus.if.org Git - php/commitdiff
forgot to commit this one
authorStanislav Malyshev <stas@php.net>
Wed, 18 Mar 2015 00:10:49 +0000 (17:10 -0700)
committerStanislav Malyshev <stas@php.net>
Wed, 18 Mar 2015 00:16:27 +0000 (17:16 -0700)
ext/standard/var_unserializer.c

index 053a680fb01f2510b07c3baf39314bc378cc689b..5149fb376b71dcb45beaa00f8d6a746c87f2f774 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 */
+/* Generated by re2c 0.13.7.5 */
 #line 1 "ext/standard/var_unserializer.re"
 /*
   +----------------------------------------------------------------------+
@@ -392,6 +392,8 @@ string_key:
                        return 0;
                }
 
+               var_push_dtor(var_hash, data);
+
                if (elements && *(*p-1) != ';' && *(*p-1) != '}') {
                        (*p)--;
                        return 0;
@@ -522,7 +524,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
        start = cursor;
 
 
-#line 526 "ext/standard/var_unserializer.c"
+#line 528 "ext/standard/var_unserializer.c"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -582,9 +584,9 @@ yy2:
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych == ':') goto yy95;
 yy3:
-#line 873 "ext/standard/var_unserializer.re"
+#line 875 "ext/standard/var_unserializer.re"
        { return 0; }
-#line 588 "ext/standard/var_unserializer.c"
+#line 590 "ext/standard/var_unserializer.c"
 yy4:
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych == ':') goto yy89;
@@ -627,13 +629,13 @@ yy13:
        goto yy3;
 yy14:
        ++YYCURSOR;
-#line 867 "ext/standard/var_unserializer.re"
+#line 869 "ext/standard/var_unserializer.re"
        {
        /* this is the case where we have less data than planned */
        php_error_docref(NULL, E_NOTICE, "Unexpected end of serialized data");
        return 0; /* not sure if it should be 0 or 1 here? */
 }
-#line 637 "ext/standard/var_unserializer.c"
+#line 639 "ext/standard/var_unserializer.c"
 yy16:
        yych = *++YYCURSOR;
        goto yy3;
@@ -659,11 +661,12 @@ yy20:
        if (yybm[0+yych] & 128) {
                goto yy20;
        }
-       if (yych != ':') goto yy18;
+       if (yych <= '/') goto yy18;
+       if (yych >= ';') goto yy18;
        yych = *++YYCURSOR;
        if (yych != '"') goto yy18;
        ++YYCURSOR;
-#line 722 "ext/standard/var_unserializer.re"
+#line 724 "ext/standard/var_unserializer.re"
        {
        size_t len, len2, len3, maxlen;
        zend_long elements;
@@ -808,7 +811,7 @@ yy20:
 
        return object_common2(UNSERIALIZE_PASSTHRU, elements);
 }
-#line 812 "ext/standard/var_unserializer.c"
+#line 815 "ext/standard/var_unserializer.c"
 yy25:
        yych = *++YYCURSOR;
        if (yych <= ',') {
@@ -833,7 +836,7 @@ yy27:
        yych = *++YYCURSOR;
        if (yych != '"') goto yy18;
        ++YYCURSOR;
-#line 714 "ext/standard/var_unserializer.re"
+#line 716 "ext/standard/var_unserializer.re"
        {
 
 //???  INIT_PZVAL(rval);
@@ -841,7 +844,7 @@ yy27:
        return object_common2(UNSERIALIZE_PASSTHRU,
                        object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR));
 }
-#line 845 "ext/standard/var_unserializer.c"
+#line 848 "ext/standard/var_unserializer.c"
 yy32:
        yych = *++YYCURSOR;
        if (yych == '+') goto yy33;
@@ -862,7 +865,7 @@ yy34:
        yych = *++YYCURSOR;
        if (yych != '{') goto yy18;
        ++YYCURSOR;
-#line 693 "ext/standard/var_unserializer.re"
+#line 695 "ext/standard/var_unserializer.re"
        {
        zend_long elements = parse_iv(start + 2);
        /* use iv() not uiv() in order to check data range */
@@ -883,7 +886,7 @@ yy34:
 
        return finish_nested_data(UNSERIALIZE_PASSTHRU);
 }
-#line 887 "ext/standard/var_unserializer.c"
+#line 890 "ext/standard/var_unserializer.c"
 yy39:
        yych = *++YYCURSOR;
        if (yych == '+') goto yy40;
@@ -904,7 +907,7 @@ yy41:
        yych = *++YYCURSOR;
        if (yych != '"') goto yy18;
        ++YYCURSOR;
-#line 665 "ext/standard/var_unserializer.re"
+#line 667 "ext/standard/var_unserializer.re"
        {
        size_t len, maxlen;
        zend_string *str;
@@ -932,7 +935,7 @@ yy41:
        ZVAL_STR(rval, str);
        return 1;
 }
-#line 936 "ext/standard/var_unserializer.c"
+#line 939 "ext/standard/var_unserializer.c"
 yy46:
        yych = *++YYCURSOR;
        if (yych == '+') goto yy47;
@@ -953,7 +956,7 @@ yy48:
        yych = *++YYCURSOR;
        if (yych != '"') goto yy18;
        ++YYCURSOR;
-#line 638 "ext/standard/var_unserializer.re"
+#line 640 "ext/standard/var_unserializer.re"
        {
        size_t len, maxlen;
        char *str;
@@ -980,7 +983,7 @@ yy48:
        ZVAL_STRINGL(rval, str, len);
        return 1;
 }
-#line 984 "ext/standard/var_unserializer.c"
+#line 987 "ext/standard/var_unserializer.c"
 yy53:
        yych = *++YYCURSOR;
        if (yych <= '/') {
@@ -1068,7 +1071,7 @@ yy61:
        }
 yy63:
        ++YYCURSOR;
-#line 629 "ext/standard/var_unserializer.re"
+#line 631 "ext/standard/var_unserializer.re"
        {
 #if SIZEOF_ZEND_LONG == 4
 use_double:
@@ -1077,7 +1080,7 @@ use_double:
        ZVAL_DOUBLE(rval, zend_strtod((const char *)start + 2, NULL));
        return 1;
 }
-#line 1081 "ext/standard/var_unserializer.c"
+#line 1084 "ext/standard/var_unserializer.c"
 yy65:
        yych = *++YYCURSOR;
        if (yych <= ',') {
@@ -1136,7 +1139,7 @@ yy73:
        yych = *++YYCURSOR;
        if (yych != ';') goto yy18;
        ++YYCURSOR;
-#line 613 "ext/standard/var_unserializer.re"
+#line 615 "ext/standard/var_unserializer.re"
        {
        *p = YYCURSOR;
 
@@ -1152,7 +1155,7 @@ yy73:
 
        return 1;
 }
-#line 1156 "ext/standard/var_unserializer.c"
+#line 1159 "ext/standard/var_unserializer.c"
 yy76:
        yych = *++YYCURSOR;
        if (yych == 'N') goto yy73;
@@ -1179,7 +1182,7 @@ yy79:
        if (yych <= '9') goto yy79;
        if (yych != ';') goto yy18;
        ++YYCURSOR;
-#line 587 "ext/standard/var_unserializer.re"
+#line 589 "ext/standard/var_unserializer.re"
        {
 #if SIZEOF_ZEND_LONG == 4
        int digits = YYCURSOR - start - 3;
@@ -1205,7 +1208,7 @@ yy79:
        ZVAL_LONG(rval, parse_iv(start + 2));
        return 1;
 }
-#line 1209 "ext/standard/var_unserializer.c"
+#line 1212 "ext/standard/var_unserializer.c"
 yy83:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy18;
@@ -1213,22 +1216,22 @@ yy83:
        yych = *++YYCURSOR;
        if (yych != ';') goto yy18;
        ++YYCURSOR;
-#line 581 "ext/standard/var_unserializer.re"
+#line 583 "ext/standard/var_unserializer.re"
        {
        *p = YYCURSOR;
        ZVAL_BOOL(rval, parse_iv(start + 2));
        return 1;
 }
-#line 1223 "ext/standard/var_unserializer.c"
+#line 1226 "ext/standard/var_unserializer.c"
 yy87:
        ++YYCURSOR;
-#line 575 "ext/standard/var_unserializer.re"
+#line 577 "ext/standard/var_unserializer.re"
        {
        *p = YYCURSOR;
        ZVAL_NULL(rval);
        return 1;
 }
-#line 1232 "ext/standard/var_unserializer.c"
+#line 1235 "ext/standard/var_unserializer.c"
 yy89:
        yych = *++YYCURSOR;
        if (yych <= ',') {
@@ -1251,7 +1254,7 @@ yy91:
        if (yych <= '9') goto yy91;
        if (yych != ';') goto yy18;
        ++YYCURSOR;
-#line 552 "ext/standard/var_unserializer.re"
+#line 554 "ext/standard/var_unserializer.re"
        {
        zend_long id;
 
@@ -1274,7 +1277,7 @@ yy91:
 
        return 1;
 }
-#line 1278 "ext/standard/var_unserializer.c"
+#line 1281 "ext/standard/var_unserializer.c"
 yy95:
        yych = *++YYCURSOR;
        if (yych <= ',') {
@@ -1297,7 +1300,7 @@ yy97:
        if (yych <= '9') goto yy97;
        if (yych != ';') goto yy18;
        ++YYCURSOR;
-#line 530 "ext/standard/var_unserializer.re"
+#line 532 "ext/standard/var_unserializer.re"
        {
        zend_long id;
 
@@ -1319,9 +1322,9 @@ yy97:
 
        return 1;
 }
-#line 1323 "ext/standard/var_unserializer.c"
+#line 1326 "ext/standard/var_unserializer.c"
 }
-#line 875 "ext/standard/var_unserializer.re"
+#line 877 "ext/standard/var_unserializer.re"
 
 
        return 0;