diff options
author | Felipe Pena <felipe@php.net> | 2011-11-09 23:50:01 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2011-11-09 23:50:01 +0000 |
commit | 9da6f6a3741eccc4904998918ce7972d57f4f04b (patch) | |
tree | a2d3d8031fd0e89b6eb0e4c19aa99b8432572258 /ext/standard/var_unserializer.c | |
parent | 6fac17f9d0101dc0ec5c0a5a8aa14fb6b4db1f97 (diff) | |
download | php-git-9da6f6a3741eccc4904998918ce7972d57f4f04b.tar.gz |
- Make valgrind happy with session_decode_error2.phpt
Diffstat (limited to 'ext/standard/var_unserializer.c')
-rw-r--r-- | ext/standard/var_unserializer.c | 912 |
1 files changed, 286 insertions, 626 deletions
diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c index 8a1eeb4b25..4da8c745b0 100644 --- a/ext/standard/var_unserializer.c +++ b/ext/standard/var_unserializer.c @@ -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 Wed Nov 9 19:12:09 2011 */ #line 1 "ext/standard/var_unserializer.re" /* +----------------------------------------------------------------------+ @@ -388,7 +388,9 @@ static inline int object_common2(UNSERIALIZE_PARAMETER, long elements) 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) @@ -403,7 +405,12 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER) const unsigned char *cursor, *limit, *marker, *start; zval **rval_ref; - limit = cursor = *p; + limit = max; + cursor = *p; + + if (YYCURSOR >= YYLIMIT) { + return 0; + } if (var_hash && cursor[0] != 'R') { var_push(var_hash, rval); @@ -414,9 +421,43 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER) -#line 418 "ext/standard/var_unserializer.c" +#line 425 "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 +479,90 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER) } 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 747 "ext/standard/var_unserializer.re" { return 0; } -#line 449 "ext/standard/var_unserializer.c" +#line 487 "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 741 "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 536 "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 624 "ext/standard/var_unserializer.re" { size_t len, len2, len3, maxlen; long elements; @@ -695,66 +679,32 @@ yy23: return object_common2(UNSERIALIZE_PASSTHRU, elements); } -#line 699 "ext/standard/var_unserializer.c" +#line 683 "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 616 "ext/standard/var_unserializer.re" { INIT_PZVAL(*rval); @@ -762,65 +712,28 @@ yy30: return object_common2(UNSERIALIZE_PASSTHRU, object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR)); } -#line 766 "ext/standard/var_unserializer.c" +#line 716 "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 596 "ext/standard/var_unserializer.re" { long elements = parse_iv(start + 2); /* use iv() not uiv() in order to check data range */ @@ -840,65 +753,28 @@ yy37: return finish_nested_data(UNSERIALIZE_PASSTHRU); } -#line 844 "ext/standard/var_unserializer.c" +#line 757 "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 567 "ext/standard/var_unserializer.re" { size_t len, maxlen; char *str; @@ -927,65 +803,28 @@ yy44: ZVAL_STRINGL(*rval, str, len, 0); return 1; } -#line 931 "ext/standard/var_unserializer.c" +#line 807 "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 539 "ext/standard/var_unserializer.re" { size_t len, maxlen; char *str; @@ -1013,131 +852,95 @@ yy51: ZVAL_STRINGL(*rval, str, len, 1); return 1; } -#line 1017 "ext/standard/var_unserializer.c" +#line 856 "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 529 "ext/standard/var_unserializer.re" { #if SIZEOF_LONG == 4 use_double: @@ -1147,109 +950,66 @@ use_double: ZVAL_DOUBLE(*rval, zend_strtod((const char *)start + 2, NULL)); return 1; } -#line 1151 "ext/standard/var_unserializer.c" +#line 954 "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 514 "ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); @@ -1264,66 +1024,34 @@ yy74: return 1; } -#line 1268 "ext/standard/var_unserializer.c" +#line 1028 "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 487 "ext/standard/var_unserializer.re" { #if SIZEOF_LONG == 4 int digits = YYCURSOR - start - 3; @@ -1350,93 +1078,55 @@ yy81: ZVAL_LONG(*rval, parse_iv(start + 2)); return 1; } -#line 1354 "ext/standard/var_unserializer.c" +#line 1082 "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 480 "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 1097 "ext/standard/var_unserializer.c" yy87: ++YYCURSOR; -#line 466 "ext/standard/var_unserializer.re" +#line 473 "ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); ZVAL_NULL(*rval); return 1; } -#line 1387 "ext/standard/var_unserializer.c" +#line 1107 "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 450 "ext/standard/var_unserializer.re" { long id; @@ -1459,60 +1149,30 @@ yy93: return 1; } -#line 1463 "ext/standard/var_unserializer.c" +#line 1153 "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 429 "ext/standard/var_unserializer.re" { long id; @@ -1533,9 +1193,9 @@ yy99: return 1; } -#line 1537 "ext/standard/var_unserializer.c" +#line 1197 "ext/standard/var_unserializer.c" } -#line 742 "ext/standard/var_unserializer.re" +#line 749 "ext/standard/var_unserializer.re" return 0; |