From: Dmitry Stogov Date: Mon, 22 Jan 2018 12:32:34 +0000 (+0300) Subject: Merge HashTable.u.v.consistency into HashTable.u.v.flags X-Git-Tag: php-7.3.0alpha1~564 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6fb5568b2de6430955936235e29413c1de4c6253;p=php Merge HashTable.u.v.consistency into HashTable.u.v.flags --- diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 324f9fd4b3..f5670dd370 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -38,16 +38,16 @@ #if ZEND_DEBUG #define HT_OK 0x00 -#define HT_IS_DESTROYING 0x40 -#define HT_DESTROYED 0x80 -#define HT_CLEANING 0xc0 +#define HT_IS_DESTROYING 0x01 +#define HT_DESTROYED 0x02 +#define HT_CLEANING 0x03 static void _zend_is_inconsistent(const HashTable *ht, const char *file, int line) { - if (ht->u.v.consistency == HT_OK) { + if ((HT_FLAGS(ht) & HASH_FLAG_CONSISTENCY) == HT_OK) { return; } - switch (ht->u.v.consistency) { + switch (HT_FLAGS(ht) & HASH_FLAG_CONSISTENCY) { case HT_IS_DESTROYING: zend_output_debug_string(1, "%s(%d) : ht=%p is being destroyed", file, line, ht); break; @@ -65,7 +65,7 @@ static void _zend_is_inconsistent(const HashTable *ht, const char *file, int lin } #define IS_CONSISTENT(a) _zend_is_inconsistent(a, __FILE__, __LINE__); #define SET_INCONSISTENT(n) do { \ - (ht)->u.v.consistency = n; \ + HT_FLAGS(ht) = (HT_FLAGS(ht) & ~HASH_FLAG_CONSISTENCY) | (n); \ } while (0) #else #define IS_CONSISTENT(a) diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h index d48e47f0e2..af9c21a7ec 100644 --- a/Zend/zend_hash.h +++ b/Zend/zend_hash.h @@ -35,6 +35,7 @@ #define HASH_ADD_NEW (1<<3) #define HASH_ADD_NEXT (1<<4) +#define HASH_FLAG_CONSISTENCY ((1<<0) | (1<<1)) #define HASH_FLAG_PACKED (1<<2) #define HASH_FLAG_INITIALIZED (1<<3) #define HASH_FLAG_STATIC_KEYS (1<<4) /* long and interned strings */ diff --git a/Zend/zend_types.h b/Zend/zend_types.h index ef1b83a11c..7fa90fdbd1 100644 --- a/Zend/zend_types.h +++ b/Zend/zend_types.h @@ -243,7 +243,7 @@ struct _zend_array { zend_uchar flags, zend_uchar _unused, zend_uchar nIteratorsCount, - zend_uchar consistency) + zend_uchar _unused2) } v; uint32_t flags; } u;