summaryrefslogtreecommitdiff
path: root/ext/standard/var_unserializer.c
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2011-11-09 23:50:01 +0000
committerFelipe Pena <felipe@php.net>2011-11-09 23:50:01 +0000
commit6781229e88a0625f5fab2673785051d749ec13ff (patch)
treef2a861366e90e43d5a9d7d3181131c5a5855766f /ext/standard/var_unserializer.c
parentcc8d433454b88e2f19d4b82c3ec938da54d3e224 (diff)
downloadphp-git-6781229e88a0625f5fab2673785051d749ec13ff.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.c912
1 files changed, 286 insertions, 626 deletions
diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c
index 8a1eeb4b25..0bd4deb058 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:37:48 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;