1- /* Generated by re2c 0.13.7. 5 */
1+ /* Generated by re2c 0.13.5 */
22#line 1 "ext/standard/var_unserializer.re"
33/*
44 +----------------------------------------------------------------------+
@@ -319,8 +319,7 @@ static inline int process_nested_data(UNSERIALIZE_PARAMETER, HashTable *ht, long
319319 if (!php_var_unserialize (& data , p , max , var_hash TSRMLS_CC )) {
320320 zval_dtor (key );
321321 FREE_ZVAL (key );
322- zval_dtor (data );
323- FREE_ZVAL (data );
322+ zval_ptr_dtor (& data );
324323 return 0 ;
325324 }
326325
@@ -478,7 +477,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
478477
479478
480479
481- #line 482 "ext/standard/var_unserializer.c"
480+ #line 481 "ext/standard/var_unserializer.c"
482481{
483482 YYCTYPE yych ;
484483 static const unsigned char yybm [] = {
@@ -538,9 +537,9 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
538537 yych = * (YYMARKER = ++ YYCURSOR );
539538 if (yych == ':' ) goto yy95 ;
540539yy3 :
541- #line 833 "ext/standard/var_unserializer.re"
540+ #line 832 "ext/standard/var_unserializer.re"
542541 { return 0 ; }
543- #line 544 "ext/standard/var_unserializer.c"
542+ #line 543 "ext/standard/var_unserializer.c"
544543yy4 :
545544 yych = * (YYMARKER = ++ YYCURSOR );
546545 if (yych == ':' ) goto yy89 ;
@@ -583,13 +582,13 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
583582 goto yy3 ;
584583yy14 :
585584 ++ YYCURSOR ;
586- #line 827 "ext/standard/var_unserializer.re"
585+ #line 826 "ext/standard/var_unserializer.re"
587586 {
588587 /* this is the case where we have less data than planned */
589588 php_error_docref (NULL TSRMLS_CC , E_NOTICE , "Unexpected end of serialized data" );
590589 return 0 ; /* not sure if it should be 0 or 1 here? */
591590}
592- #line 593 "ext/standard/var_unserializer.c"
591+ #line 592 "ext/standard/var_unserializer.c"
593592yy16 :
594593 yych = * ++ YYCURSOR ;
595594 goto yy3 ;
@@ -615,12 +614,11 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
615614 if (yybm [0 + yych ] & 128 ) {
616615 goto yy20 ;
617616 }
618- if (yych <= '/' ) goto yy18 ;
619- if (yych >= ';' ) goto yy18 ;
617+ if (yych != ':' ) goto yy18 ;
620618 yych = * ++ YYCURSOR ;
621619 if (yych != '"' ) goto yy18 ;
622620 ++ YYCURSOR ;
623- #line 681 "ext/standard/var_unserializer.re"
621+ #line 680 "ext/standard/var_unserializer.re"
624622 {
625623 size_t len , len2 , len3 , maxlen ;
626624 long elements ;
@@ -766,7 +764,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
766764
767765 return object_common2 (UNSERIALIZE_PASSTHRU , elements );
768766}
769- #line 770 "ext/standard/var_unserializer.c"
767+ #line 768 "ext/standard/var_unserializer.c"
770768yy25 :
771769 yych = * ++ YYCURSOR ;
772770 if (yych <= ',' ) {
@@ -791,15 +789,15 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
791789 yych = * ++ YYCURSOR ;
792790 if (yych != '"' ) goto yy18 ;
793791 ++ YYCURSOR ;
794- #line 673 "ext/standard/var_unserializer.re"
792+ #line 672 "ext/standard/var_unserializer.re"
795793 {
796794
797795 INIT_PZVAL (* rval );
798796
799797 return object_common2 (UNSERIALIZE_PASSTHRU ,
800798 object_common1 (UNSERIALIZE_PASSTHRU , ZEND_STANDARD_CLASS_DEF_PTR ));
801799}
802- #line 803 "ext/standard/var_unserializer.c"
800+ #line 801 "ext/standard/var_unserializer.c"
803801yy32 :
804802 yych = * ++ YYCURSOR ;
805803 if (yych == '+' ) goto yy33 ;
@@ -820,7 +818,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
820818 yych = * ++ YYCURSOR ;
821819 if (yych != '{' ) goto yy18 ;
822820 ++ YYCURSOR ;
823- #line 653 "ext/standard/var_unserializer.re"
821+ #line 652 "ext/standard/var_unserializer.re"
824822 {
825823 long elements = parse_iv (start + 2 );
826824 /* use iv() not uiv() in order to check data range */
@@ -840,7 +838,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
840838
841839 return finish_nested_data (UNSERIALIZE_PASSTHRU );
842840}
843- #line 844 "ext/standard/var_unserializer.c"
841+ #line 842 "ext/standard/var_unserializer.c"
844842yy39 :
845843 yych = * ++ YYCURSOR ;
846844 if (yych == '+' ) goto yy40 ;
@@ -861,7 +859,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
861859 yych = * ++ YYCURSOR ;
862860 if (yych != '"' ) goto yy18 ;
863861 ++ YYCURSOR ;
864- #line 624 "ext/standard/var_unserializer.re"
862+ #line 623 "ext/standard/var_unserializer.re"
865863 {
866864 size_t len , maxlen ;
867865 char * str ;
@@ -890,7 +888,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
890888 ZVAL_STRINGL (* rval , str , len , 0 );
891889 return 1 ;
892890}
893- #line 894 "ext/standard/var_unserializer.c"
891+ #line 892 "ext/standard/var_unserializer.c"
894892yy46 :
895893 yych = * ++ YYCURSOR ;
896894 if (yych == '+' ) goto yy47 ;
@@ -911,7 +909,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
911909 yych = * ++ YYCURSOR ;
912910 if (yych != '"' ) goto yy18 ;
913911 ++ YYCURSOR ;
914- #line 596 "ext/standard/var_unserializer.re"
912+ #line 595 "ext/standard/var_unserializer.re"
915913 {
916914 size_t len , maxlen ;
917915 char * str ;
@@ -939,7 +937,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
939937 ZVAL_STRINGL (* rval , str , len , 1 );
940938 return 1 ;
941939}
942- #line 943 "ext/standard/var_unserializer.c"
940+ #line 941 "ext/standard/var_unserializer.c"
943941yy53 :
944942 yych = * ++ YYCURSOR ;
945943 if (yych <= '/' ) {
@@ -1027,7 +1025,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
10271025 }
10281026yy63 :
10291027 ++ YYCURSOR ;
1030- #line 586 "ext/standard/var_unserializer.re"
1028+ #line 585 "ext/standard/var_unserializer.re"
10311029 {
10321030#if SIZEOF_LONG == 4
10331031use_double :
@@ -1037,7 +1035,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
10371035 ZVAL_DOUBLE (* rval , zend_strtod ((const char * )start + 2 , NULL ));
10381036 return 1 ;
10391037}
1040- #line 1041 "ext/standard/var_unserializer.c"
1038+ #line 1039 "ext/standard/var_unserializer.c"
10411039yy65 :
10421040 yych = * ++ YYCURSOR ;
10431041 if (yych <= ',' ) {
@@ -1096,7 +1094,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
10961094 yych = * ++ YYCURSOR ;
10971095 if (yych != ';' ) goto yy18 ;
10981096 ++ YYCURSOR ;
1099- #line 571 "ext/standard/var_unserializer.re"
1097+ #line 570 "ext/standard/var_unserializer.re"
11001098 {
11011099 * p = YYCURSOR ;
11021100 INIT_PZVAL (* rval );
@@ -1111,7 +1109,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
11111109
11121110 return 1 ;
11131111}
1114- #line 1115 "ext/standard/var_unserializer.c"
1112+ #line 1113 "ext/standard/var_unserializer.c"
11151113yy76 :
11161114 yych = * ++ YYCURSOR ;
11171115 if (yych == 'N' ) goto yy73 ;
@@ -1138,7 +1136,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
11381136 if (yych <= '9' ) goto yy79 ;
11391137 if (yych != ';' ) goto yy18 ;
11401138 ++ YYCURSOR ;
1141- #line 544 "ext/standard/var_unserializer.re"
1139+ #line 543 "ext/standard/var_unserializer.re"
11421140 {
11431141#if SIZEOF_LONG == 4
11441142 int digits = YYCURSOR - start - 3 ;
@@ -1165,32 +1163,32 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
11651163 ZVAL_LONG (* rval , parse_iv (start + 2 ));
11661164 return 1 ;
11671165}
1168- #line 1169 "ext/standard/var_unserializer.c"
1166+ #line 1167 "ext/standard/var_unserializer.c"
11691167yy83 :
11701168 yych = * ++ YYCURSOR ;
11711169 if (yych <= '/' ) goto yy18 ;
11721170 if (yych >= '2' ) goto yy18 ;
11731171 yych = * ++ YYCURSOR ;
11741172 if (yych != ';' ) goto yy18 ;
11751173 ++ YYCURSOR ;
1176- #line 537 "ext/standard/var_unserializer.re"
1174+ #line 536 "ext/standard/var_unserializer.re"
11771175 {
11781176 * p = YYCURSOR ;
11791177 INIT_PZVAL (* rval );
11801178 ZVAL_BOOL (* rval , parse_iv (start + 2 ));
11811179 return 1 ;
11821180}
1183- #line 1184 "ext/standard/var_unserializer.c"
1181+ #line 1182 "ext/standard/var_unserializer.c"
11841182yy87 :
11851183 ++ YYCURSOR ;
1186- #line 530 "ext/standard/var_unserializer.re"
1184+ #line 529 "ext/standard/var_unserializer.re"
11871185 {
11881186 * p = YYCURSOR ;
11891187 INIT_PZVAL (* rval );
11901188 ZVAL_NULL (* rval );
11911189 return 1 ;
11921190}
1193- #line 1194 "ext/standard/var_unserializer.c"
1191+ #line 1192 "ext/standard/var_unserializer.c"
11941192yy89 :
11951193 yych = * ++ YYCURSOR ;
11961194 if (yych <= ',' ) {
@@ -1213,7 +1211,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
12131211 if (yych <= '9' ) goto yy91 ;
12141212 if (yych != ';' ) goto yy18 ;
12151213 ++ YYCURSOR ;
1216- #line 507 "ext/standard/var_unserializer.re"
1214+ #line 506 "ext/standard/var_unserializer.re"
12171215 {
12181216 long id ;
12191217
@@ -1236,7 +1234,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
12361234
12371235 return 1 ;
12381236}
1239- #line 1240 "ext/standard/var_unserializer.c"
1237+ #line 1238 "ext/standard/var_unserializer.c"
12401238yy95 :
12411239 yych = * ++ YYCURSOR ;
12421240 if (yych <= ',' ) {
@@ -1259,7 +1257,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
12591257 if (yych <= '9' ) goto yy97 ;
12601258 if (yych != ';' ) goto yy18 ;
12611259 ++ YYCURSOR ;
1262- #line 486 "ext/standard/var_unserializer.re"
1260+ #line 485 "ext/standard/var_unserializer.re"
12631261 {
12641262 long id ;
12651263
@@ -1280,9 +1278,9 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
12801278
12811279 return 1 ;
12821280}
1283- #line 1284 "ext/standard/var_unserializer.c"
1281+ #line 1282 "ext/standard/var_unserializer.c"
12841282}
1285- #line 835 "ext/standard/var_unserializer.re"
1283+ #line 834 "ext/standard/var_unserializer.re"
12861284
12871285
12881286 return 0 ;
0 commit comments