php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | |
Patch fix-serialize-in-sleep-and-wakeup for Variables related Bug #55801Patch version 2011-10-13 16:21 UTC Return to Bug #55801 | Download this patchThis patch renders other patches obsolete Obsolete patches: Patch Revisions: 2011-10-13 16:21 UTC | 2011-10-13 14:39 UTCDeveloper: mike@php.netLine 9 (now 9), was 1202 lines, now 8 lines + unsigned serialize_lock; /* whether to use the locally supplied var_hash instead (__sleep/__wakeup) */ struct { void *var_hash; unsigned level; Index: ext/standard/var_unserializer.c =================================================================== --- ext/standard/var_unserializer.c (revision 318013) +++ ext/standard/var_unserializer.c (working copy) @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Wed Sep 28 15:27:03 2011 */ +/* Generated by re2c 0.13.5 on Thu Oct 13 16:35:51 2011 */ #line 1 "ext/standard/var_unserializer.re" /* +----------------------------------------------------------------------+ @@ -388,7 +388,9 @@ zend_hash_exists(&Z_OBJCE_PP(rval)->function_table, "__wakeup", sizeof("__wakeup"))) { INIT_PZVAL(&fname); ZVAL_STRINGL(&fname, "__wakeup", sizeof("__wakeup") - 1, 0); + BG(serialize_lock)++; call_user_function_ex(CG(function_table), rval, &fname, &retval_ptr, 0, 0, 1, NULL TSRMLS_CC); + BG(serialize_lock)--; } if (retval_ptr) @@ -414,9 +416,43 @@ -#line 418 "ext/standard/var_unserializer.c" +#line 420 "ext/standard/var_unserializer.c" { YYCTYPE yych; + static const 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, + }; if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7); yych = *YYCURSOR; @@ -438,147 +474,90 @@ } yy2: yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case ':': goto yy95; - default: goto yy3; - } + if (yych == ':') goto yy95; yy3: -#line 740 "ext/standard/var_unserializer.re" +#line 742 "ext/standard/var_unserializer.re" { return 0; } -#line 449 "ext/standard/var_unserializer.c" +#line 482 "ext/standard/var_unserializer.c" yy4: yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case ':': goto yy89; - default: goto yy3; - } + if (yych == ':') goto yy89; + goto yy3; yy5: yych = *++YYCURSOR; - switch (yych) { - case ';': goto yy87; - default: goto yy3; - } + if (yych == ';') goto yy87; + goto yy3; yy6: yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case ':': goto yy83; - default: goto yy3; - } + if (yych == ':') goto yy83; + goto yy3; yy7: yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case ':': goto yy77; - default: goto yy3; - } + if (yych == ':') goto yy77; + goto yy3; yy8: yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case ':': goto yy53; - default: goto yy3; - } + if (yych == ':') goto yy53; + goto yy3; yy9: yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case ':': goto yy46; - default: goto yy3; - } + if (yych == ':') goto yy46; + goto yy3; yy10: yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case ':': goto yy39; - default: goto yy3; - } + if (yych == ':') goto yy39; + goto yy3; yy11: yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case ':': goto yy32; - default: goto yy3; - } + if (yych == ':') goto yy32; + goto yy3; yy12: yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case ':': goto yy25; - default: goto yy3; - } + if (yych == ':') goto yy25; + goto yy3; yy13: yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case ':': goto yy17; - default: goto yy3; - } + if (yych == ':') goto yy17; + goto yy3; yy14: ++YYCURSOR; -#line 734 "ext/standard/var_unserializer.re" +#line 736 "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 518 "ext/standard/var_unserializer.c" +#line 531 "ext/standard/var_unserializer.c" yy16: yych = *++YYCURSOR; goto yy3; yy17: yych = *++YYCURSOR; - switch (yych) { - case '+': goto yy19; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy20; - default: goto yy18; + if (yybm[0+yych] & 128) { + goto yy20; } + if (yych == '+') goto yy19; yy18: YYCURSOR = YYMARKER; goto yy3; yy19: yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy20; - default: goto yy18; + if (yybm[0+yych] & 128) { + goto yy20; } + goto yy18; yy20: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy20; - case ':': goto yy22; - default: goto yy18; + if (yybm[0+yych] & 128) { + goto yy20; } -yy22: + if (yych != ':') goto yy18; yych = *++YYCURSOR; - switch (yych) { - case '"': goto yy23; - default: goto yy18; - } -yy23: + if (yych != '"') goto yy18; ++YYCURSOR; -#line 617 "ext/standard/var_unserializer.re" +#line 619 "ext/standard/var_unserializer.re" { size_t len, len2, len3, maxlen; long elements; @@ -695,66 +674,32 @@ return object_common2(UNSERIALIZE_PASSTHRU, elements); } -#line 699 "ext/standard/var_unserializer.c" +#line 678 "ext/standard/var_unserializer.c" yy25: yych = *++YYCURSOR; - switch (yych) { - case '+': - case '-': goto yy26; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy27; - default: goto yy18; + if (yych <= ',') { + if (yych != '+') goto yy18; + } else { + if (yych <= '-') goto yy26; + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy27; + goto yy18; } yy26: yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy27; - default: goto yy18; - } + if (yych <= '/') goto yy18; + if (yych >= ':') goto yy18; yy27: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy27; - case ':': goto yy29; - default: goto yy18; - } -yy29: + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy27; + if (yych >= ';') goto yy18; yych = *++YYCURSOR; - switch (yych) { - case '"': goto yy30; - default: goto yy18; - } -yy30: + if (yych != '"') goto yy18; ++YYCURSOR; -#line 609 "ext/standard/var_unserializer.re" +#line 611 "ext/standard/var_unserializer.re" { INIT_PZVAL(*rval); @@ -762,65 +707,28 @@ return object_common2(UNSERIALIZE_PASSTHRU, object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR)); } -#line 766 "ext/standard/var_unserializer.c" +#line 711 "ext/standard/var_unserializer.c" yy32: yych = *++YYCURSOR; - switch (yych) { - case '+': goto yy33; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy34; - default: goto yy18; - } + if (yych == '+') goto yy33; + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy34; + goto yy18; yy33: yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy34; - default: goto yy18; - } + if (yych <= '/') goto yy18; + if (yych >= ':') goto yy18; yy34: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy34; - case ':': goto yy36; - default: goto yy18; - } -yy36: + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy34; + if (yych >= ';') goto yy18; yych = *++YYCURSOR; - switch (yych) { - case '{': goto yy37; - default: goto yy18; - } -yy37: + if (yych != '{') goto yy18; ++YYCURSOR; -#line 589 "ext/standard/var_unserializer.re" +#line 591 "ext/standard/var_unserializer.re" { long elements = parse_iv(start + 2); /* use iv() not uiv() in order to check data range */ @@ -840,65 +748,28 @@ return finish_nested_data(UNSERIALIZE_PASSTHRU); } -#line 844 "ext/standard/var_unserializer.c" +#line 752 "ext/standard/var_unserializer.c" yy39: yych = *++YYCURSOR; - switch (yych) { - case '+': goto yy40; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy41; - default: goto yy18; - } + if (yych == '+') goto yy40; + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy41; + goto yy18; yy40: yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy41; - default: goto yy18; - } + if (yych <= '/') goto yy18; + if (yych >= ':') goto yy18; yy41: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy41; - case ':': goto yy43; - default: goto yy18; - } -yy43: + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy41; + if (yych >= ';') goto yy18; yych = *++YYCURSOR; - switch (yych) { - case '"': goto yy44; - default: goto yy18; - } -yy44: + if (yych != '"') goto yy18; ++YYCURSOR; -#line 560 "ext/standard/var_unserializer.re" +#line 562 "ext/standard/var_unserializer.re" { size_t len, maxlen; char *str; @@ -927,65 +798,28 @@ ZVAL_STRINGL(*rval, str, len, 0); return 1; } -#line 931 "ext/standard/var_unserializer.c" +#line 802 "ext/standard/var_unserializer.c" yy46: yych = *++YYCURSOR; - switch (yych) { - case '+': goto yy47; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy48; - default: goto yy18; - } + if (yych == '+') goto yy47; + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy48; + goto yy18; yy47: yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy48; - default: goto yy18; - } + if (yych <= '/') goto yy18; + if (yych >= ':') goto yy18; yy48: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy48; - case ':': goto yy50; - default: goto yy18; - } -yy50: + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy48; + if (yych >= ';') goto yy18; yych = *++YYCURSOR; - switch (yych) { - case '"': goto yy51; - default: goto yy18; - } -yy51: + if (yych != '"') goto yy18; ++YYCURSOR; -#line 532 "ext/standard/var_unserializer.re" +#line 534 "ext/standard/var_unserializer.re" { size_t len, maxlen; char *str; @@ -1013,131 +847,95 @@ ZVAL_STRINGL(*rval, str, len, 1); return 1; } -#line 1017 "ext/standard/var_unserializer.c" +#line 851 "ext/standard/var_unserializer.c" yy53: yych = *++YYCURSOR; - switch (yych) { - case '+': goto yy57; - case '-': goto yy55; - case '.': goto yy60; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy58; - case 'I': goto yy56; - case 'N': goto yy54; - default: goto yy18; + if (yych <= '/') { + if (yych <= ',') { + if (yych == '+') goto yy57; + goto yy18; + } else { + if (yych <= '-') goto yy55; + if (yych <= '.') goto yy60; + goto yy18; + } + } else { + if (yych <= 'I') { + if (yych <= '9') goto yy58; + if (yych <= 'H') goto yy18; + goto yy56; + } else { + if (yych != 'N') goto yy18; + } } -yy54: yych = *++YYCURSOR; - switch (yych) { - case 'A': goto yy76; - default: goto yy18; - } + if (yych == 'A') goto yy76; + goto yy18; yy55: yych = *++YYCURSOR; - switch (yych) { - case '.': goto yy60; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy58; - case 'I': goto yy56; - default: goto yy18; + if (yych <= '/') { + if (yych == '.') goto yy60; + goto yy18; + } else { + if (yych <= '9') goto yy58; + if (yych != 'I') goto yy18; } yy56: yych = *++YYCURSOR; - switch (yych) { - case 'N': goto yy72; - default: goto yy18; - } + if (yych == 'N') goto yy72; + goto yy18; yy57: yych = *++YYCURSOR; - switch (yych) { - case '.': goto yy60; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy58; - default: goto yy18; - } + if (yych == '.') goto yy60; + if (yych <= '/') goto yy18; + if (yych >= ':') goto yy18; yy58: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); yych = *YYCURSOR; - switch (yych) { - case '.': goto yy70; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy58; - case ';': goto yy63; - case 'E': - case 'e': goto yy65; - default: goto yy18; + if (yych <= ':') { + if (yych <= '.') { + if (yych <= '-') goto yy18; + goto yy70; + } else { + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy58; + goto yy18; + } + } else { + if (yych <= 'E') { + if (yych <= ';') goto yy63; + if (yych <= 'D') goto yy18; + goto yy65; + } else { + if (yych == 'e') goto yy65; + goto yy18; + } } yy60: yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy61; - default: goto yy18; - } + if (yych <= '/') goto yy18; + if (yych >= ':') goto yy18; yy61: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); yych = *YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy61; - case ';': goto yy63; - case 'E': - case 'e': goto yy65; - default: goto yy18; + if (yych <= ';') { + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy61; + if (yych <= ':') goto yy18; + } else { + if (yych <= 'E') { + if (yych <= 'D') goto yy18; + goto yy65; + } else { + if (yych == 'e') goto yy65; + goto yy18; + } } yy63: ++YYCURSOR; -#line 522 "ext/standard/var_unserializer.re" +#line 524 "ext/standard/var_unserializer.re" { #if SIZEOF_LONG == 4 use_double: @@ -1147,109 +945,66 @@ ZVAL_DOUBLE(*rval, zend_strtod((const char *)start + 2, NULL)); return 1; } -#line 1151 "ext/standard/var_unserializer.c" +#line 949 "ext/standard/var_unserializer.c" yy65: yych = *++YYCURSOR; - switch (yych) { - case '+': - case '-': goto yy66; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy67; - default: goto yy18; + if (yych <= ',') { + if (yych != '+') goto yy18; + } else { + if (yych <= '-') goto yy66; + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy67; + goto yy18; } yy66: yych = *++YYCURSOR; - switch (yych) { - case '+': - case '-': goto yy69; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy67; - default: goto yy18; + if (yych <= ',') { + if (yych == '+') goto yy69; + goto yy18; + } else { + if (yych <= '-') goto yy69; + if (yych <= '/') goto yy18; + if (yych >= ':') goto yy18; } yy67: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy67; - case ';': goto yy63; - default: goto yy18; - } + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy67; + if (yych == ';') goto yy63; + goto yy18; yy69: yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy67; - default: goto yy18; - } + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy67; + goto yy18; yy70: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); yych = *YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy70; - case ';': goto yy63; - case 'E': - case 'e': goto yy65; - default: goto yy18; + if (yych <= ';') { + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy70; + if (yych <= ':') goto yy18; + goto yy63; + } else { + if (yych <= 'E') { + if (yych <= 'D') goto yy18; + goto yy65; + } else { + if (yych == 'e') goto yy65; + goto yy18; + } } yy72: yych = *++YYCURSOR; - switch (yych) { - case 'F': goto yy73; - default: goto yy18; - } + if (yych != 'F') goto yy18; yy73: yych = *++YYCURSOR; - switch (yych) { - case ';': goto yy74; - default: goto yy18; - } -yy74: + if (yych != ';') goto yy18; ++YYCURSOR; -#line 507 "ext/standard/var_unserializer.re" +#line 509 "ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); @@ -1264,66 +1019,34 @@ return 1; } -#line 1268 "ext/standard/var_unserializer.c" +#line 1023 "ext/standard/var_unserializer.c" yy76: yych = *++YYCURSOR; - switch (yych) { - case 'N': goto yy73; - default: goto yy18; - } + if (yych == 'N') goto yy73; + goto yy18; yy77: yych = *++YYCURSOR; - switch (yych) { - case '+': - case '-': goto yy78; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy79; - default: goto yy18; + if (yych <= ',') { + if (yych != '+') goto yy18; + } else { + if (yych <= '-') goto yy78; + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy79; + goto yy18; } yy78: yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy79; - default: goto yy18; - } + if (yych <= '/') goto yy18; + if (yych >= ':') goto yy18; yy79: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy79; - case ';': goto yy81; - default: goto yy18; - } -yy81: + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy79; + if (yych != ';') goto yy18; ++YYCURSOR; -#line 480 "ext/standard/var_unserializer.re" +#line 482 "ext/standard/var_unserializer.re" { #if SIZEOF_LONG == 4 int digits = YYCURSOR - start - 3; @@ -1350,93 +1073,55 @@ ZVAL_LONG(*rval, parse_iv(start + 2)); return 1; } -#line 1354 "ext/standard/var_unserializer.c" +#line 1077 "ext/standard/var_unserializer.c" yy83: yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': goto yy84; - default: goto yy18; - } -yy84: + if (yych <= '/') goto yy18; + if (yych >= '2') goto yy18; yych = *++YYCURSOR; - switch (yych) { - case ';': goto yy85; - default: goto yy18; - } -yy85: + if (yych != ';') goto yy18; ++YYCURSOR; -#line 473 "ext/standard/var_unserializer.re" +#line 475 "ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); ZVAL_BOOL(*rval, parse_iv(start + 2)); return 1; } -#line 1377 "ext/standard/var_unserializer.c" +#line 1092 "ext/standard/var_unserializer.c" yy87: ++YYCURSOR; -#line 466 "ext/standard/var_unserializer.re" +#line 468 "ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); ZVAL_NULL(*rval); return 1; } -#line 1387 "ext/standard/var_unserializer.c" +#line 1102 "ext/standard/var_unserializer.c" yy89: yych = *++YYCURSOR; - switch (yych) { - case '+': - case '-': goto yy90; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy91; - default: goto yy18; + if (yych <= ',') { + if (yych != '+') goto yy18; + } else { + if (yych <= '-') goto yy90; + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy91; + goto yy18; } yy90: yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy91; - default: goto yy18; - } + if (yych <= '/') goto yy18; + if (yych >= ':') goto yy18; yy91: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy91; - case ';': goto yy93; - default: goto yy18; - } -yy93: + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy91; + if (yych != ';') goto yy18; ++YYCURSOR; -#line 443 "ext/standard/var_unserializer.re" +#line 445 "ext/standard/var_unserializer.re" { long id; @@ -1459,60 +1144,30 @@ return 1; } -#line 1463 "ext/standard/var_unserializer.c" +#line 1148 "ext/standard/var_unserializer.c" yy95: yych = *++YYCURSOR; - switch (yych) { - case '+': - case '-': goto yy96; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy97; - default: goto yy18; + if (yych <= ',') { + if (yych != '+') goto yy18; + } else { + if (yych <= '-') goto yy96; + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy97; + goto yy18; } yy96: yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy97; - default: goto yy18; - } + if (yych <= '/') goto yy18; + if (yych >= ':') goto yy18; yy97: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy97; - case ';': goto yy99; - default: goto yy18; - } -yy99: + if (yych <= '/') goto yy18; + if (yych <= '9') goto yy97; + if (yych != ';') goto yy18; ++YYCURSOR; -#line 422 "ext/standard/var_unserializer.re" +#line 424 "ext/standard/var_unserializer.re" { long id; @@ -1533,9 +1188,9 @@ return 1; } -#line 1537 "ext/standard/var_unserializer.c" +#line 1192 "ext/standard/var_unserializer.c" } -#line 742 "ext/standard/var_unserializer.re" +#line 744 "ext/standard/var_unserializer.re" return 0; Index: ext/standard/var.c =================================================================== --- ext/standard/var.c (revision 318013) +++ ext/standard/var.c (working copy) |
Copyright © 2001-2024 The PHP Group All rights reserved. |
Last updated: Fri Apr 26 03:01:32 2024 UTC |