8
8
*
9
9
*/
10
10
11
- /* These control hash traversal randomization and the environment variable PERL_PERTURB_KEYS.
11
+ /* These control hash traversal randomization and
12
+ the environment variable PERL_PERTURB_KEYS.
12
13
* Currently disabling this functionality will break a few tests, but should otherwise work fine.
13
14
* See perlrun for more details. */
14
15
@@ -79,7 +80,8 @@ struct mro_alg {
79
80
AV * (* resolve )(pTHX_ HV * stash , U32 level );
80
81
const char * name ;
81
82
U16 length ;
82
- U16 kflags ; /* For the hash API - set HVhek_UTF8 if name is UTF-8 */
83
+ U16 kflags ; /* For the hash API - set HVhek_UTF8
84
+ if name is UTF-8 */
83
85
U32 hash ; /* or 0 */
84
86
};
85
87
@@ -91,13 +93,19 @@ struct mro_meta {
91
93
value stored in and owned by mro_linear_all. */
92
94
SV * mro_linear_current ;
93
95
HV * mro_nextmethod ; /* next::method caching */
94
- U32 cache_gen ; /* Bumping this invalidates our method cache */
95
- U32 pkg_gen ; /* Bumps when local methods/@ISA change */
96
- const struct mro_alg * mro_which ; /* which mro alg is in use? */
97
- HV * isa ; /* Everything this class @ISA */
96
+ U32 cache_gen ; /* Bumping this invalidates
97
+ our method cache */
98
+ U32 pkg_gen ; /* Bumps when local
99
+ methods/@ISA change */
100
+ const struct mro_alg * mro_which ; /* which mro alg is
101
+ in use? */
102
+ HV * isa ; /* Everything this
103
+ class @ISA */
98
104
HV * super ; /* SUPER method cache */
99
- CV * destroy ; /* DESTROY method if destroy_gen non-zero */
100
- U32 destroy_gen ; /* Generation number of DESTROY cache */
105
+ CV * destroy ; /* DESTROY method if
106
+ destroy_gen non-zero */
107
+ U32 destroy_gen ; /* Generation number of
108
+ DESTROY cache */
101
109
};
102
110
103
111
#define MRO_GET_PRIVATE_DATA (smeta , which ) \
@@ -116,7 +124,8 @@ union _xhvnameu {
116
124
117
125
struct xpvhv_aux {
118
126
union _xhvnameu xhv_name_u ; /* name, if a symbol table */
119
- AV * xhv_backreferences ; /* back references for weak references */
127
+ AV * xhv_backreferences ; /* back references for
128
+ weak references */
120
129
HE * xhv_eiter ; /* current entry of iterator */
121
130
I32 xhv_riter ; /* current root of iterator */
122
131
@@ -129,15 +138,19 @@ struct xpvhv_aux {
129
138
I32 xhv_name_count ;
130
139
struct mro_meta * xhv_mro_meta ;
131
140
#ifdef PERL_HASH_RANDOMIZE_KEYS
132
- U32 xhv_rand ; /* random value for hash traversal */
133
- U32 xhv_last_rand ; /* last random value for hash traversal,
141
+ U32 xhv_rand ; /* random value for hash
142
+ traversal */
143
+ U32 xhv_last_rand ; /* last random value for
144
+ hash traversal,
134
145
used to detect each() after insert for warnings */
135
146
#endif
136
147
U32 xhv_aux_flags ; /* assorted extra flags */
137
148
};
138
149
139
- #define HvAUXf_SCAN_STASH 0x1 /* stash is being scanned by gv_check */
140
- #define HvAUXf_NO_DEREF 0x2 /* @{}, %{} etc (and nomethod) not present */
150
+ #define HvAUXf_SCAN_STASH 0x1 /* stash is being scanned
151
+ by gv_check */
152
+ #define HvAUXf_NO_DEREF 0x2 /* @{}, %{} etc (and nomethod)
153
+ not present */
141
154
142
155
/* hash structure: */
143
156
/* This structure must match the beginning of struct xpvmg in sv.h. */
@@ -449,7 +462,8 @@ whether it is valid to call C<HvAUX()>.
449
462
#define HEK_FLAGS (hek ) (*((unsigned char *)(HEK_KEY(hek))+HEK_LEN(hek)+1))
450
463
451
464
#define HVhek_UTF8 0x01 /* Key is utf8 encoded. */
452
- #define HVhek_WASUTF8 0x02 /* Key is bytes here, but was supplied as utf8. */
465
+ #define HVhek_WASUTF8 0x02 /* Key is bytes here, but was
466
+ supplied as utf8. */
453
467
#define HVhek_NOTSHARED 0x04 /* This key isn't a shared hash key. */
454
468
/* the following flags are options for functions, they are not stored in heks */
455
469
#define HVhek_FREEKEY 0x100 /* Internal flag to say key is Newx()ed. */
@@ -634,7 +648,8 @@ instead of a string/length pair, and no precomputed hash.
634
648
635
649
/* Flag bits are HVhek_UTF8, HVhek_WASUTF8, then */
636
650
#define HVrhek_undef 0x00 /* Value is undef. */
637
- #define HVrhek_delete 0x10 /* Value is placeholder - signifies delete. */
651
+ #define HVrhek_delete 0x10 /* Value is placeholder -
652
+ signifies delete. */
638
653
#define HVrhek_IV 0x20 /* Value is IV. */
639
654
#define HVrhek_UV 0x30 /* Value is UV. */
640
655
#define HVrhek_PV 0x40 /* Value is a (byte) string. */
0 commit comments