Branch Coverage

xs/i16.xsi
Criterion Covered Total %
branch 169 628 26.9


line true false branch
7 2 19 EXTRACT_NEW_ARGS(_max_size, _ttl, _lru_skip);
1 20 EXTRACT_NEW_ARGS(_max_size, _ttl, _lru_skip);
0 21 EXTRACT_NEW_ARGS(_max_size, _ttl, _lru_skip);
9 0 21 if (!map) croak("Failed to create HashMap::I16");
17 21 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
21 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 21 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 21 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
24 81231 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
81231 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 81231 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 81231 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
32 30013 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
30013 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 30013 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 30013 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
34 6 30007 if (!hashmap_i16_get(self, key, &value)) XSRETURN_UNDEF;
42 80007 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
80007 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 80007 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 80007 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
50 2 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
2 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 2 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 2 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
52 0 2 if (!hashmap_i16_take(self, key, &value)) XSRETURN_UNDEF;
60 4 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
4 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 4 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 4 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
68 12 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
12 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 12 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 12 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
70 3 9 if (!hashmap_i16_increment(self, key, &val))
79 6 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
6 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 6 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 6 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
81 2 4 if (!hashmap_i16_decrement(self, key, &val))
90 8 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
8 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 8 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 8 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
92 2 6 if (!hashmap_i16_increment_by(self, key, delta, &val))
101 8 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
8 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 8 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 8 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
102 0 8 RETVAL = self->size;
109 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
110 0 0 RETVAL = self->max_size;
117 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
118 0 0 RETVAL = (UV)self->default_ttl;
125 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
126 0 0 RETVAL = (UV)self->lru_skip;
133 3 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
3 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
134 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
135 0 3 EXTEND(SP, self->size);
137 48 3 for (i = 0; i < self->capacity; i++) {
138 4 44 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
4 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 4 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
139 0 4 mXPUSHi(self->nodes[i].key);
145 2 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
2 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 2 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 2 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
146 0 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
147 0 2 EXTEND(SP, self->size);
149 32 2 for (i = 0; i < self->capacity; i++) {
150 4 28 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
4 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 4 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
151 0 4 mXPUSHi(self->nodes[i].value);
157 1 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
1 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
158 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
159 0 1 EXTEND(SP, self->size * 2);
161 16 1 for (i = 0; i < self->capacity; i++) {
162 2 14 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
163 0 2 mXPUSHi(self->nodes[i].key);
164 0 2 mXPUSHi(self->nodes[i].value);
171 3 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
3 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
172 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
173 16 1 while (self->iter_pos < self->capacity) {
175 2 14 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
176 0 2 EXTEND(SP, 2);
177 0 2 mXPUSHi(self->nodes[i].key);
178 0 2 if (GIMME_V == G_SCALAR) XSRETURN(1);
179 0 2 mXPUSHi(self->nodes[i].value);
189 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
195 1 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
1 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
196 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
198 0 1 EXTEND(SP, (count < self->size ? count : self->size) * 2);
199 5 0 while (self->iter_pos < self->capacity && n < count) {
4 1 while (self->iter_pos < self->capacity && n < count) {
201 1 3 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
202 0 1 mXPUSHi(self->nodes[i].key);
203 0 1 mXPUSHi(self->nodes[i].value);
204 0 1 if (HM_UNLIKELY(self->lru_prev)) hashmap_i16_lru_unlink(self, (uint32_t)i);
209 0 1 if (self->iter_pos >= self->capacity) self->iter_pos = 0;
210 1 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
1 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
1 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
215 1 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
1 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
216 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
217 0 1 if (self->lru_prev) {
218 0 0 while (self->lru_tail != HM_LRU_NONE) {
220 0 0 if (HM_UNLIKELY(HM_TTL_SKIP_EXPIRED(self, idx, now))) {
0 0 if (HM_UNLIKELY(HM_TTL_SKIP_EXPIRED(self, idx, now))) {
0 0 if (HM_UNLIKELY(HM_TTL_SKIP_EXPIRED(self, idx, now))) {
0 0 if (HM_UNLIKELY(HM_TTL_SKIP_EXPIRED(self, idx, now))) {
223 0 0 EXTEND(SP, 2);
224 0 0 mXPUSHi(self->nodes[idx].key);
225 0 0 mXPUSHi(self->nodes[idx].value);
228 0 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
0 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
0 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
233 14 0 while (self->iter_pos < self->capacity) {
235 1 13 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
236 0 1 EXTEND(SP, 2);
237 0 1 mXPUSHi(self->nodes[i].key);
238 0 1 mXPUSHi(self->nodes[i].value);
240 1 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
0 1 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
0 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
251 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
252 0 0 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
253 0 0 if (self->lru_prev) {
254 0 0 while (self->lru_head != HM_LRU_NONE) {
256 0 0 if (HM_UNLIKELY(HM_TTL_SKIP_EXPIRED(self, idx, now))) {
0 0 if (HM_UNLIKELY(HM_TTL_SKIP_EXPIRED(self, idx, now))) {
0 0 if (HM_UNLIKELY(HM_TTL_SKIP_EXPIRED(self, idx, now))) {
0 0 if (HM_UNLIKELY(HM_TTL_SKIP_EXPIRED(self, idx, now))) {
259 0 0 EXTEND(SP, 2);
260 0 0 mXPUSHi(self->nodes[idx].key);
261 0 0 mXPUSHi(self->nodes[idx].value);
264 0 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
0 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
0 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
269 0 0 if (self->iter_pos == 0) self->iter_pos = self->capacity;
270 0 0 while (self->iter_pos > 0) {
272 0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
273 0 0 EXTEND(SP, 2);
274 0 0 mXPUSHi(self->nodes[i].key);
275 0 0 mXPUSHi(self->nodes[i].value);
277 0 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
0 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
0 0 HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
288 3 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
3 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
294 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
295 0 0 if (!hashmap_i16_reserve(self, (size_t)count))
301 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
307 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
308 0 0 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
323 0 0 for (i = 0; i < self->capacity; i++) {
324 0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
329 0 0 if (self->expires_at && self->expires_at[i] && self->expires_at[i] >= now) {
0 0 if (self->expires_at && self->expires_at[i] && self->expires_at[i] >= now) {
0 0 if (self->expires_at && self->expires_at[i] && self->expires_at[i] >= now) {
331 0 0 if (!rem) rem = 1;
351 0 0 if (dlen < 22 || memcmp(p, "DHMP", 4) != 0) croak("Invalid freeze data");
0 0 if (dlen < 22 || memcmp(p, "DHMP", 4) != 0) croak("Invalid freeze data");
353 0 0 uint8_t ver = *p++; if (ver != 1) croak("Unsupported freeze version %d", ver);
354 0 0 uint8_t vid = *p++; if (vid != 7) croak("Variant mismatch: expected 7, got %d", vid);
360 0 0 if (!map) croak("Failed to create map for thaw");
361 0 0 if (cnt > 0) hashmap_i16_reserve(map, (size_t)cnt);
363 0 0 for (j = 0; j < cnt; j++) {
364 0 0 if (p + 8 > end) { hashmap_i16_destroy(map); croak("Truncated freeze data"); }
368 0 0 if (!hashmap_i16_put(map, key, val, ttl)) { hashmap_i16_destroy(map); croak("OOM during thaw"); }
369 0 0 if (ttl == 0 && map->expires_at) hashmap_i16_persist(map, key);
0 0 if (ttl == 0 && map->expires_at) hashmap_i16_persist(map, key);
372 0 0 if (p > end) croak("Truncated freeze data");
381 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
382 0 0 RETVAL = (UV)self->capacity;
389 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
397 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
399 0 0 if (!hashmap_i16_swap(self, key, new_val, &old)) XSRETURN_UNDEF;
407 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
416 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
418 0 0 if (!clone) croak("Failed to clone");
419 0 0 RETVAL = sv_setref_pv(newSV(0), HvNAME(SvSTASH(SvRV(self_sv))), (void*)clone);
0 0 RETVAL = sv_setref_pv(newSV(0), HvNAME(SvSTASH(SvRV(self_sv))), (void*)clone);
0 0 RETVAL = sv_setref_pv(newSV(0), HvNAME(SvSTASH(SvRV(self_sv))), (void*)clone);
0 0 RETVAL = sv_setref_pv(newSV(0), HvNAME(SvSTASH(SvRV(self_sv))), (void*)clone);
0 0 RETVAL = sv_setref_pv(newSV(0), HvNAME(SvSTASH(SvRV(self_sv))), (void*)clone);
0 0 RETVAL = sv_setref_pv(newSV(0), HvNAME(SvSTASH(SvRV(self_sv))), (void*)clone);
426 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
427 0 0 if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV)
0 0 if (!SvROK(href) || SvTYPE(SvRV(href)) != SVt_PVHV)
430 0 0 hashmap_i16_reserve(self, (size_t)HvUSEDKEYS(hv));
433 0 0 while ((he = hv_iternext(hv))) {
443 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
444 0 0 if (!SvROK(other_sv) || !SvOBJECT(SvRV(other_sv)) || SvSTASH(SvRV(other_sv)) != stash_i16)
0 0 if (!SvROK(other_sv) || !SvOBJECT(SvRV(other_sv)) || SvSTASH(SvRV(other_sv)) != stash_i16)
0 0 if (!SvROK(other_sv) || !SvOBJECT(SvRV(other_sv)) || SvSTASH(SvRV(other_sv)) != stash_i16)
448 0 0 uint32_t now = other->expires_at ? (uint32_t)time(NULL) : 0;
450 0 0 for (i = 0; i < other->capacity; i++) {
451 0 0 if (I16_NODE_LIVE(other->nodes[i]) && !HM_TTL_SKIP_EXPIRED(other, i, now))
0 0 if (I16_NODE_LIVE(other->nodes[i]) && !HM_TTL_SKIP_EXPIRED(other, i, now))
0 0 if (I16_NODE_LIVE(other->nodes[i]) && !HM_TTL_SKIP_EXPIRED(other, i, now))
0 0 if (I16_NODE_LIVE(other->nodes[i]) && !HM_TTL_SKIP_EXPIRED(other, i, now))
0 0 if (I16_NODE_LIVE(other->nodes[i]) && !HM_TTL_SKIP_EXPIRED(other, i, now))
459 3 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
3 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
461 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
463 528 3 for (i = 0; i < self->capacity; i++) {
464 201 327 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
199 2 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 199 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
478 0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
486 3 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
3 0 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
489 1 2 if (idx >= self->capacity) XSRETURN_UNDEF;