For use with u2 values which don't deserve a custom macro...
uint32_t fe_iter_idx; /* foreach iterator index */
uint32_t access_flags; /* class constant access flags */
uint32_t property_guard; /* single property guard */
+ uint32_t extra; /* not further specified */
} u2;
};
#define Z_ACCESS_FLAGS(zval) (zval).u2.access_flags
#define Z_ACCESS_FLAGS_P(zval_p) Z_ACCESS_FLAGS(*(zval_p))
+#define Z_EXTRA(zval) (zval).u2.extra
+#define Z_EXTRA_P(zval_p) Z_EXTRA(*(zval_p))
+
#define Z_COUNTED(zval) (zval).value.counted
#define Z_COUNTED_P(zval_p) Z_COUNTED(*(zval_p))
(*var_hashx)->last_dtor = var_hash;
}
ZVAL_UNDEF(&var_hash->data[var_hash->used_slots]);
- Z_ACCESS_FLAGS(var_hash->data[var_hash->used_slots]) = 0;
+ Z_EXTRA(var_hash->data[var_hash->used_slots]) = 0;
return &var_hash->data[var_hash->used_slots++];
}
#endif
/* Perform delayed __wakeup calls */
- if (Z_ACCESS_FLAGS_P(zv) == VAR_WAKEUP_FLAG) {
+ if (Z_EXTRA_P(zv) == VAR_WAKEUP_FLAG) {
if (!wakeup_failed) {
zval retval;
if (Z_ISUNDEF(wakeup_name)) {
/* Delay __wakeup call until end of serialization */
zval *wakeup_var = var_tmp_var(var_hash);
ZVAL_COPY(wakeup_var, rval);
- Z_ACCESS_FLAGS_P(wakeup_var) = VAR_WAKEUP_FLAG;
+ Z_EXTRA_P(wakeup_var) = VAR_WAKEUP_FLAG;
}
return finish_nested_data(UNSERIALIZE_PASSTHRU);
(*var_hashx)->last_dtor = var_hash;
}
ZVAL_UNDEF(&var_hash->data[var_hash->used_slots]);
- Z_ACCESS_FLAGS(var_hash->data[var_hash->used_slots]) = 0;
+ Z_EXTRA(var_hash->data[var_hash->used_slots]) = 0;
return &var_hash->data[var_hash->used_slots++];
}
#endif
/* Perform delayed __wakeup calls */
- if (Z_ACCESS_FLAGS_P(zv) == VAR_WAKEUP_FLAG) {
+ if (Z_EXTRA_P(zv) == VAR_WAKEUP_FLAG) {
if (!wakeup_failed) {
zval retval;
if (Z_ISUNDEF(wakeup_name)) {
/* Delay __wakeup call until end of serialization */
zval *wakeup_var = var_tmp_var(var_hash);
ZVAL_COPY(wakeup_var, rval);
- Z_ACCESS_FLAGS_P(wakeup_var) = VAR_WAKEUP_FLAG;
+ Z_EXTRA_P(wakeup_var) = VAR_WAKEUP_FLAG;
}
return finish_nested_data(UNSERIALIZE_PASSTHRU);