1
- /* Generated by re2c 0.13.5 */
1
+ /* Generated by re2c 0.13.7. 5 */
2
2
#line 1 "ext/standard/var_unserializer.re"
3
3
/*
4
4
+----------------------------------------------------------------------+
@@ -362,21 +362,15 @@ static inline int process_nested_data(UNSERIALIZE_PARAMETER, HashTable *ht, zend
362
362
} else {
363
363
/* object properties should include no integers */
364
364
convert_to_string (& key );
365
- //???
366
- #if 1
367
- data = zend_hash_update_ind (ht , Z_STR (key ), & d );
368
- #else
369
- if ((data = zend_hash_find (ht , Z_STR (key ))) != NULL ) {
370
- if (Z_TYPE_P (data ) == IS_INDIRECT ) {
371
- data = Z_INDIRECT_P (data );
365
+ if ((old_data = zend_hash_find (ht , Z_STR (key ))) != NULL ) {
366
+ if (Z_TYPE_P (old_data ) == IS_INDIRECT ) {
367
+ old_data = Z_INDIRECT_P (old_data );
372
368
}
373
- zval_ptr_dtor (data );
374
- //??? var_push_dtor(var_hash, data);
375
- ZVAL_UNDEF (data );
376
- } else {
377
- data = zend_hash_update (ht , Z_STR (key ), & d );
378
- }
379
- #endif
369
+ zval_ptr_dtor (old_data );
370
+ var_push_dtor (var_hash , old_data );
371
+ ZVAL_UNDEF (old_data );
372
+ }
373
+ data = zend_hash_update (ht , Z_STR (key ), & d );
380
374
}
381
375
382
376
zval_dtor (& key );
@@ -515,7 +509,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
515
509
start = cursor ;
516
510
517
511
518
- #line 519 "ext/standard/var_unserializer.c"
512
+ #line 513 "ext/standard/var_unserializer.c"
519
513
{
520
514
YYCTYPE yych ;
521
515
static const unsigned char yybm [] = {
@@ -575,9 +569,9 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
575
569
yych = * (YYMARKER = ++ YYCURSOR );
576
570
if (yych == ':' ) goto yy95 ;
577
571
yy3 :
578
- #line 866 "ext/standard/var_unserializer.re"
572
+ #line 860 "ext/standard/var_unserializer.re"
579
573
{ return 0 ; }
580
- #line 581 "ext/standard/var_unserializer.c"
574
+ #line 575 "ext/standard/var_unserializer.c"
581
575
yy4 :
582
576
yych = * (YYMARKER = ++ YYCURSOR );
583
577
if (yych == ':' ) goto yy89 ;
@@ -620,13 +614,13 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
620
614
goto yy3 ;
621
615
yy14 :
622
616
++ YYCURSOR ;
623
- #line 860 "ext/standard/var_unserializer.re"
617
+ #line 854 "ext/standard/var_unserializer.re"
624
618
{
625
619
/* this is the case where we have less data than planned */
626
620
php_error_docref (NULL TSRMLS_CC , E_NOTICE , "Unexpected end of serialized data" );
627
621
return 0 ; /* not sure if it should be 0 or 1 here? */
628
622
}
629
- #line 630 "ext/standard/var_unserializer.c"
623
+ #line 624 "ext/standard/var_unserializer.c"
630
624
yy16 :
631
625
yych = * ++ YYCURSOR ;
632
626
goto yy3 ;
@@ -652,11 +646,12 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
652
646
if (yybm [0 + yych ] & 128 ) {
653
647
goto yy20 ;
654
648
}
655
- if (yych != ':' ) goto yy18 ;
649
+ if (yych <= '/' ) goto yy18 ;
650
+ if (yych >= ';' ) goto yy18 ;
656
651
yych = * ++ YYCURSOR ;
657
652
if (yych != '"' ) goto yy18 ;
658
653
++ YYCURSOR ;
659
- #line 715 "ext/standard/var_unserializer.re"
654
+ #line 709 "ext/standard/var_unserializer.re"
660
655
{
661
656
size_t len , len2 , len3 , maxlen ;
662
657
zend_long elements ;
@@ -801,7 +796,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
801
796
802
797
return object_common2 (UNSERIALIZE_PASSTHRU , elements );
803
798
}
804
- #line 805 "ext/standard/var_unserializer.c"
799
+ #line 800 "ext/standard/var_unserializer.c"
805
800
yy25 :
806
801
yych = * ++ YYCURSOR ;
807
802
if (yych <= ',' ) {
@@ -826,15 +821,15 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
826
821
yych = * ++ YYCURSOR ;
827
822
if (yych != '"' ) goto yy18 ;
828
823
++ YYCURSOR ;
829
- #line 707 "ext/standard/var_unserializer.re"
824
+ #line 701 "ext/standard/var_unserializer.re"
830
825
{
831
826
832
827
//??? INIT_PZVAL(rval);
833
828
834
829
return object_common2 (UNSERIALIZE_PASSTHRU ,
835
830
object_common1 (UNSERIALIZE_PASSTHRU , ZEND_STANDARD_CLASS_DEF_PTR ));
836
831
}
837
- #line 838 "ext/standard/var_unserializer.c"
832
+ #line 833 "ext/standard/var_unserializer.c"
838
833
yy32 :
839
834
yych = * ++ YYCURSOR ;
840
835
if (yych == '+' ) goto yy33 ;
@@ -855,7 +850,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
855
850
yych = * ++ YYCURSOR ;
856
851
if (yych != '{' ) goto yy18 ;
857
852
++ YYCURSOR ;
858
- #line 686 "ext/standard/var_unserializer.re"
853
+ #line 680 "ext/standard/var_unserializer.re"
859
854
{
860
855
zend_long elements = parse_iv (start + 2 );
861
856
/* use iv() not uiv() in order to check data range */
@@ -876,7 +871,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
876
871
877
872
return finish_nested_data (UNSERIALIZE_PASSTHRU );
878
873
}
879
- #line 880 "ext/standard/var_unserializer.c"
874
+ #line 875 "ext/standard/var_unserializer.c"
880
875
yy39 :
881
876
yych = * ++ YYCURSOR ;
882
877
if (yych == '+' ) goto yy40 ;
@@ -897,7 +892,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
897
892
yych = * ++ YYCURSOR ;
898
893
if (yych != '"' ) goto yy18 ;
899
894
++ YYCURSOR ;
900
- #line 658 "ext/standard/var_unserializer.re"
895
+ #line 652 "ext/standard/var_unserializer.re"
901
896
{
902
897
size_t len , maxlen ;
903
898
zend_string * str ;
@@ -925,7 +920,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
925
920
ZVAL_STR (rval , str );
926
921
return 1 ;
927
922
}
928
- #line 929 "ext/standard/var_unserializer.c"
923
+ #line 924 "ext/standard/var_unserializer.c"
929
924
yy46 :
930
925
yych = * ++ YYCURSOR ;
931
926
if (yych == '+' ) goto yy47 ;
@@ -946,7 +941,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
946
941
yych = * ++ YYCURSOR ;
947
942
if (yych != '"' ) goto yy18 ;
948
943
++ YYCURSOR ;
949
- #line 631 "ext/standard/var_unserializer.re"
944
+ #line 625 "ext/standard/var_unserializer.re"
950
945
{
951
946
size_t len , maxlen ;
952
947
char * str ;
@@ -973,7 +968,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
973
968
ZVAL_STRINGL (rval , str , len );
974
969
return 1 ;
975
970
}
976
- #line 977 "ext/standard/var_unserializer.c"
971
+ #line 972 "ext/standard/var_unserializer.c"
977
972
yy53 :
978
973
yych = * ++ YYCURSOR ;
979
974
if (yych <= '/' ) {
@@ -1061,7 +1056,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
1061
1056
}
1062
1057
yy63 :
1063
1058
++ YYCURSOR ;
1064
- #line 622 "ext/standard/var_unserializer.re"
1059
+ #line 616 "ext/standard/var_unserializer.re"
1065
1060
{
1066
1061
#if SIZEOF_ZEND_LONG == 4
1067
1062
use_double :
@@ -1070,7 +1065,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
1070
1065
ZVAL_DOUBLE (rval , zend_strtod ((const char * )start + 2 , NULL ));
1071
1066
return 1 ;
1072
1067
}
1073
- #line 1074 "ext/standard/var_unserializer.c"
1068
+ #line 1069 "ext/standard/var_unserializer.c"
1074
1069
yy65 :
1075
1070
yych = * ++ YYCURSOR ;
1076
1071
if (yych <= ',' ) {
@@ -1129,7 +1124,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
1129
1124
yych = * ++ YYCURSOR ;
1130
1125
if (yych != ';' ) goto yy18 ;
1131
1126
++ YYCURSOR ;
1132
- #line 606 "ext/standard/var_unserializer.re"
1127
+ #line 600 "ext/standard/var_unserializer.re"
1133
1128
{
1134
1129
* p = YYCURSOR ;
1135
1130
@@ -1145,7 +1140,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
1145
1140
1146
1141
return 1 ;
1147
1142
}
1148
- #line 1149 "ext/standard/var_unserializer.c"
1143
+ #line 1144 "ext/standard/var_unserializer.c"
1149
1144
yy76 :
1150
1145
yych = * ++ YYCURSOR ;
1151
1146
if (yych == 'N' ) goto yy73 ;
@@ -1172,7 +1167,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
1172
1167
if (yych <= '9' ) goto yy79 ;
1173
1168
if (yych != ';' ) goto yy18 ;
1174
1169
++ YYCURSOR ;
1175
- #line 580 "ext/standard/var_unserializer.re"
1170
+ #line 574 "ext/standard/var_unserializer.re"
1176
1171
{
1177
1172
#if SIZEOF_ZEND_LONG == 4
1178
1173
int digits = YYCURSOR - start - 3 ;
@@ -1198,30 +1193,30 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
1198
1193
ZVAL_LONG (rval , parse_iv (start + 2 ));
1199
1194
return 1 ;
1200
1195
}
1201
- #line 1202 "ext/standard/var_unserializer.c"
1196
+ #line 1197 "ext/standard/var_unserializer.c"
1202
1197
yy83 :
1203
1198
yych = * ++ YYCURSOR ;
1204
1199
if (yych <= '/' ) goto yy18 ;
1205
1200
if (yych >= '2' ) goto yy18 ;
1206
1201
yych = * ++ YYCURSOR ;
1207
1202
if (yych != ';' ) goto yy18 ;
1208
1203
++ YYCURSOR ;
1209
- #line 574 "ext/standard/var_unserializer.re"
1204
+ #line 568 "ext/standard/var_unserializer.re"
1210
1205
{
1211
1206
* p = YYCURSOR ;
1212
1207
ZVAL_BOOL (rval , parse_iv (start + 2 ));
1213
1208
return 1 ;
1214
1209
}
1215
- #line 1216 "ext/standard/var_unserializer.c"
1210
+ #line 1211 "ext/standard/var_unserializer.c"
1216
1211
yy87 :
1217
1212
++ YYCURSOR ;
1218
- #line 568 "ext/standard/var_unserializer.re"
1213
+ #line 562 "ext/standard/var_unserializer.re"
1219
1214
{
1220
1215
* p = YYCURSOR ;
1221
1216
ZVAL_NULL (rval );
1222
1217
return 1 ;
1223
1218
}
1224
- #line 1225 "ext/standard/var_unserializer.c"
1219
+ #line 1220 "ext/standard/var_unserializer.c"
1225
1220
yy89 :
1226
1221
yych = * ++ YYCURSOR ;
1227
1222
if (yych <= ',' ) {
@@ -1244,7 +1239,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
1244
1239
if (yych <= '9' ) goto yy91 ;
1245
1240
if (yych != ';' ) goto yy18 ;
1246
1241
++ YYCURSOR ;
1247
- #line 545 "ext/standard/var_unserializer.re"
1242
+ #line 539 "ext/standard/var_unserializer.re"
1248
1243
{
1249
1244
zend_long id ;
1250
1245
@@ -1267,7 +1262,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
1267
1262
1268
1263
return 1 ;
1269
1264
}
1270
- #line 1271 "ext/standard/var_unserializer.c"
1265
+ #line 1266 "ext/standard/var_unserializer.c"
1271
1266
yy95 :
1272
1267
yych = * ++ YYCURSOR ;
1273
1268
if (yych <= ',' ) {
@@ -1290,7 +1285,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
1290
1285
if (yych <= '9' ) goto yy97 ;
1291
1286
if (yych != ';' ) goto yy18 ;
1292
1287
++ YYCURSOR ;
1293
- #line 523 "ext/standard/var_unserializer.re"
1288
+ #line 517 "ext/standard/var_unserializer.re"
1294
1289
{
1295
1290
zend_long id ;
1296
1291
@@ -1312,9 +1307,9 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER)
1312
1307
1313
1308
return 1 ;
1314
1309
}
1315
- #line 1316 "ext/standard/var_unserializer.c"
1310
+ #line 1311 "ext/standard/var_unserializer.c"
1316
1311
}
1317
- #line 868 "ext/standard/var_unserializer.re"
1312
+ #line 862 "ext/standard/var_unserializer.re"
1318
1313
1319
1314
1320
1315
return 0 ;
0 commit comments