@@ -101,11 +101,10 @@ static int zend_file_cache_flock(int fd, int type)
101
101
#define IS_SERIALIZED (ptr ) \
102
102
((char*)(ptr) <= (char*)script->size)
103
103
#define IS_UNSERIALIZED (ptr ) \
104
- (((char*)(ptr) >= (char*)script->mem && (char*)(ptr) < (char*)script->mem + script->size) || \
105
- IS_ACCEL_INTERNED(ptr))
104
+ ((char*)(ptr) >= (char*)script->mem && (char*)(ptr) < (char*)script->mem + script->size)
106
105
#define SERIALIZE_PTR (ptr ) do { \
107
106
if (ptr) { \
108
- ZEND_ASSERT(IS_UNSERIALIZED(ptr)); \
107
+ ZEND_ASSERT(IS_UNSERIALIZED(ptr) || IS_ACCEL_INTERNED(ptr) ); \
109
108
(ptr) = (void*)((char*)(ptr) - (char*)script->mem); \
110
109
} \
111
110
} while (0)
@@ -952,12 +951,12 @@ static void zend_file_cache_unserialize_zval(zval *zv,
952
951
switch (Z_TYPE_P (zv )) {
953
952
case IS_STRING :
954
953
case IS_CONSTANT :
955
- if (! IS_UNSERIALIZED (Z_STR_P (zv ))) {
954
+ if (IS_SERIALIZED (Z_STR_P (zv ))) {
956
955
UNSERIALIZE_STR (Z_STR_P (zv ));
957
956
}
958
957
break ;
959
958
case IS_ARRAY :
960
- if (! IS_UNSERIALIZED (Z_ARR_P (zv ))) {
959
+ if (IS_SERIALIZED (Z_ARR_P (zv ))) {
961
960
HashTable * ht ;
962
961
963
962
UNSERIALIZE_PTR (Z_ARR_P (zv ));
@@ -967,7 +966,7 @@ static void zend_file_cache_unserialize_zval(zval *zv,
967
966
}
968
967
break ;
969
968
case IS_REFERENCE :
970
- if (! IS_UNSERIALIZED (Z_REF_P (zv ))) {
969
+ if (IS_SERIALIZED (Z_REF_P (zv ))) {
971
970
zend_reference * ref ;
972
971
973
972
UNSERIALIZE_PTR (Z_REF_P (zv ));
@@ -976,12 +975,12 @@ static void zend_file_cache_unserialize_zval(zval *zv,
976
975
}
977
976
break ;
978
977
case IS_CONSTANT_AST :
979
- if (! IS_UNSERIALIZED (Z_AST_P (zv ))) {
978
+ if (IS_SERIALIZED (Z_AST_P (zv ))) {
980
979
zend_ast_ref * ast ;
981
980
982
981
UNSERIALIZE_PTR (Z_AST_P (zv ));
983
982
ast = Z_AST_P (zv );
984
- if (! IS_UNSERIALIZED (ast -> ast )) {
983
+ if (IS_SERIALIZED (ast -> ast )) {
985
984
ast -> ast = zend_file_cache_unserialize_ast (ast -> ast , script , buf );
986
985
}
987
986
}
@@ -993,7 +992,7 @@ static void zend_file_cache_unserialize_op_array(zend_op_array *op_arr
993
992
zend_persistent_script * script ,
994
993
void * buf )
995
994
{
996
- if (op_array -> static_variables && ! IS_UNSERIALIZED (op_array -> static_variables )) {
995
+ if (op_array -> static_variables && IS_SERIALIZED (op_array -> static_variables )) {
997
996
HashTable * ht ;
998
997
999
998
UNSERIALIZE_PTR (op_array -> static_variables );
@@ -1018,7 +1017,7 @@ static void zend_file_cache_unserialize_op_array(zend_op_array *op_arr
1018
1017
return ;
1019
1018
}
1020
1019
1021
- if (op_array -> literals && ! IS_UNSERIALIZED (op_array -> literals )) {
1020
+ if (op_array -> literals && IS_SERIALIZED (op_array -> literals )) {
1022
1021
zval * p , * end ;
1023
1022
1024
1023
UNSERIALIZE_PTR (op_array -> literals );
@@ -1030,7 +1029,7 @@ static void zend_file_cache_unserialize_op_array(zend_op_array *op_arr
1030
1029
}
1031
1030
}
1032
1031
1033
- if (! IS_UNSERIALIZED (op_array -> opcodes )) {
1032
+ if (IS_SERIALIZED (op_array -> opcodes )) {
1034
1033
zend_op * opline , * end ;
1035
1034
1036
1035
UNSERIALIZE_PTR (op_array -> opcodes );
@@ -1089,10 +1088,10 @@ static void zend_file_cache_unserialize_op_array(zend_op_array *op_arr
1089
1088
end ++ ;
1090
1089
}
1091
1090
while (p < end ) {
1092
- if (! IS_UNSERIALIZED (p -> name )) {
1091
+ if (IS_SERIALIZED (p -> name )) {
1093
1092
UNSERIALIZE_STR (p -> name );
1094
1093
}
1095
- if (! IS_UNSERIALIZED (p -> class_name )) {
1094
+ if (IS_SERIALIZED (p -> class_name )) {
1096
1095
UNSERIALIZE_STR (p -> class_name );
1097
1096
}
1098
1097
p ++ ;
@@ -1106,7 +1105,7 @@ static void zend_file_cache_unserialize_op_array(zend_op_array *op_arr
1106
1105
p = op_array -> vars ;
1107
1106
end = p + op_array -> last_var ;
1108
1107
while (p < end ) {
1109
- if (! IS_UNSERIALIZED (* p )) {
1108
+ if (IS_SERIALIZED (* p )) {
1110
1109
UNSERIALIZE_STR (* p );
1111
1110
}
1112
1111
p ++ ;
@@ -1138,19 +1137,19 @@ static void zend_file_cache_unserialize_prop_info(zval *zv,
1138
1137
zend_persistent_script * script ,
1139
1138
void * buf )
1140
1139
{
1141
- if (! IS_UNSERIALIZED (Z_PTR_P (zv ))) {
1140
+ if (IS_SERIALIZED (Z_PTR_P (zv ))) {
1142
1141
zend_property_info * prop ;
1143
1142
1144
1143
UNSERIALIZE_PTR (Z_PTR_P (zv ));
1145
1144
prop = Z_PTR_P (zv );
1146
1145
1147
- if (prop -> ce && ! IS_UNSERIALIZED (prop -> ce )) {
1146
+ if (prop -> ce && IS_SERIALIZED (prop -> ce )) {
1148
1147
UNSERIALIZE_PTR (prop -> ce );
1149
1148
}
1150
- if (prop -> name && ! IS_UNSERIALIZED (prop -> name )) {
1149
+ if (prop -> name && IS_SERIALIZED (prop -> name )) {
1151
1150
UNSERIALIZE_STR (prop -> name );
1152
1151
}
1153
- if (prop -> doc_comment && ! IS_UNSERIALIZED (prop -> doc_comment )) {
1152
+ if (prop -> doc_comment && IS_SERIALIZED (prop -> doc_comment )) {
1154
1153
UNSERIALIZE_STR (prop -> doc_comment );
1155
1154
}
1156
1155
}
@@ -1160,17 +1159,17 @@ static void zend_file_cache_unserialize_class_constant(zval *
1160
1159
zend_persistent_script * script ,
1161
1160
void * buf )
1162
1161
{
1163
- if (! IS_UNSERIALIZED (Z_PTR_P (zv ))) {
1162
+ if (IS_SERIALIZED (Z_PTR_P (zv ))) {
1164
1163
zend_class_constant * c ;
1165
1164
1166
1165
UNSERIALIZE_PTR (Z_PTR_P (zv ));
1167
1166
c = Z_PTR_P (zv );
1168
1167
1169
1168
zend_file_cache_unserialize_zval (& c -> value , script , buf );
1170
- if (c -> ce && ! IS_UNSERIALIZED (c -> ce )) {
1169
+ if (c -> ce && IS_SERIALIZED (c -> ce )) {
1171
1170
UNSERIALIZE_PTR (c -> ce );
1172
1171
}
1173
- if (c -> doc_comment && ! IS_UNSERIALIZED (c -> doc_comment )) {
1172
+ if (c -> doc_comment && IS_SERIALIZED (c -> doc_comment )) {
1174
1173
UNSERIALIZE_STR (c -> doc_comment );
1175
1174
}
1176
1175
}
0 commit comments