| line |
true |
false |
branch |
|
61
|
163 |
0 |
if (!self || !SvROK(self) || !SvOBJECT(SvRV(self))) |
|
|
163 |
0 |
if (!self || !SvROK(self) || !SvOBJECT(SvRV(self))) |
|
|
0 |
163 |
if (!self || !SvROK(self) || !SvOBJECT(SvRV(self))) |
|
63
|
0 |
163 |
if (SvTYPE(SvRV(self)) != SVt_PVAV) |
|
66
|
0 |
163 |
if (av_len(av) < 2) |
|
70
|
163 |
0 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVHV) |
|
|
163 |
0 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVHV) |
|
|
163 |
0 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVHV) |
|
|
0 |
163 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVHV) |
|
75
|
163 |
0 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVAV) |
|
|
163 |
0 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVAV) |
|
|
163 |
0 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVAV) |
|
|
0 |
163 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVAV) |
|
80
|
163 |
0 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVAV) |
|
|
163 |
0 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVAV) |
|
|
163 |
0 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVAV) |
|
|
0 |
163 |
if (!slot || !*slot || !SvROK(*slot) || SvTYPE(SvRV(*slot)) != SVt_PVAV) |
|
90
|
14 |
0 |
if (!slot || !*slot) return 0; |
|
|
0 |
14 |
if (!slot || !*slot) return 0; |
|
99
|
10 |
0 |
if (slot && *slot) |
|
|
10 |
0 |
if (slot && *slot) |
|
133
|
1 |
29 |
if (he) { |
|
136
|
0 |
1 |
if (!av_store(vals, pos, val)) |
|
144
|
0 |
29 |
if (!av_store(vals, av_len(keys), val)) { |
|
149
|
0 |
29 |
if (!hv_store_ent(idx, key_sv, idx_sv, 0)) |
|
165
|
0 |
0 |
if (!he) return NULL; |
|
169
|
0 |
0 |
if (!vslot || !*vslot) return sv_mortalcopy(&PL_sv_undef); |
|
|
0 |
0 |
if (!vslot || !*vslot) return sv_mortalcopy(&PL_sv_undef); |
|
194
|
40 |
28 |
for (i = pos; i < top; i++) { |
|
196
|
40 |
0 |
if (src && *src) { |
|
|
40 |
0 |
if (src && *src) { |
|
198
|
0 |
40 |
if (!av_store(av, i, *src)) |
|
204
|
28 |
0 |
if (trailing) SvREFCNT_dec(trailing); |
|
220
|
6 |
14 |
if (!deleted_idx) return NULL; |
|
225
|
14 |
0 |
deleted_val = (vslot && *vslot) ? sv_mortalcopy(*vslot) |
|
226
|
14 |
0 |
: sv_mortalcopy(&PL_sv_undef); |
|
234
|
20 |
14 |
for (i = pos; i < n; i++) { |
|
237
|
20 |
0 |
if (!kslot || !*kslot) continue; |
|
|
0 |
20 |
if (!kslot || !*kslot) continue; |
|
239
|
20 |
0 |
if (he && HeVAL(he)) sv_setiv(HeVAL(he), (IV)i); |
|
|
20 |
0 |
if (he && HeVAL(he)) sv_setiv(HeVAL(he), (IV)i); |
|
244
|
10 |
4 |
if (cur > n) oh_perl_iter_set(aTHX_ self, n); |
|
256
|
8 |
0 |
if (!self || !SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV) |
|
|
8 |
0 |
if (!self || !SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV) |
|
|
0 |
8 |
if (!self || !SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV) |
|
261
|
8 |
0 |
if (slot) sv_setsv(*slot, sv_2mortal(newRV_noinc((SV *)newHV()))); |
|
263
|
8 |
0 |
if (slot) sv_setsv(*slot, sv_2mortal(newRV_noinc((SV *)newAV()))); |
|
265
|
8 |
0 |
if (slot) sv_setsv(*slot, sv_2mortal(newRV_noinc((SV *)newAV()))); |
|
267
|
8 |
0 |
if (slot) sv_setiv(*slot, 0); |
|
296
|
0 |
0 |
if (iter->pos >= iter->end) return 0; |
|
297
|
0 |
0 |
if (iter->pos > av_len(keys)) return 0; |
|
300
|
0 |
0 |
if (!kslot || !*kslot) return 0; |
|
|
0 |
0 |
if (!kslot || !*kslot) return 0; |
|
304
|
0 |
0 |
*out_val = (vslot && *vslot) ? *vslot : &PL_sv_undef; |
|
|
0 |
0 |
*out_val = (vslot && *vslot) ? *vslot : &PL_sv_undef; |
|
316
|
0 |
0 |
if (!sv || !SvROK(sv) || !SvOBJECT(SvRV(sv))) return 0; |
|
|
0 |
0 |
if (!sv || !SvROK(sv) || !SvOBJECT(SvRV(sv))) return 0; |
|
|
0 |
0 |
if (!sv || !SvROK(sv) || !SvOBJECT(SvRV(sv))) return 0; |
|
317
|
0 |
0 |
if (SvTYPE(SvRV(sv)) != SVt_PVAV) return 0; |
|
319
|
0 |
0 |
if (!stash) return 0; |
|
320
|
0 |
0 |
name = HvNAME_get(stash); |
|
|
0 |
0 |
name = HvNAME_get(stash); |
|
|
0 |
0 |
name = HvNAME_get(stash); |
|
|
0 |
0 |
name = HvNAME_get(stash); |
|
|
0 |
0 |
name = HvNAME_get(stash); |
|
|
0 |
0 |
name = HvNAME_get(stash); |
|
321
|
0 |
0 |
if (!name) return 0; |
|
334
|
6 |
4 |
if (av_len(keys) < 0) { |
|
335
|
6 |
0 |
if (out_key) *out_key = NULL; |
|
341
|
4 |
0 |
if (kpop) hv_delete_ent(idx, kpop, G_DISCARD, 0); |
|
343
|
4 |
0 |
if (out_key) *out_key = kpop ? sv_2mortal(kpop) : NULL; |
|
|
4 |
0 |
if (out_key) *out_key = kpop ? sv_2mortal(kpop) : NULL; |
|
344
|
4 |
0 |
return vpop ? sv_2mortal(vpop) : NULL; |
|
355
|
6 |
4 |
if (av_len(keys) < 0) { |
|
356
|
6 |
0 |
if (out_key) *out_key = NULL; |
|
362
|
4 |
0 |
if (kshift) hv_delete_ent(idx, kshift, G_DISCARD, 0); |
|
365
|
2 |
4 |
for (i = 0; i < n; i++) { |
|
368
|
2 |
0 |
if (!kslot || !*kslot) continue; |
|
|
0 |
2 |
if (!kslot || !*kslot) continue; |
|
370
|
2 |
0 |
if (he && HeVAL(he)) sv_setiv(HeVAL(he), (IV)i); |
|
|
2 |
0 |
if (he && HeVAL(he)) sv_setiv(HeVAL(he), (IV)i); |
|
373
|
4 |
0 |
if (out_key) *out_key = kshift ? sv_2mortal(kshift) : NULL; |
|
|
4 |
0 |
if (out_key) *out_key = kshift ? sv_2mortal(kshift) : NULL; |
|
374
|
4 |
0 |
return vshift ? sv_2mortal(vshift) : NULL; |
|
390
|
1 |
2 |
if (he) { |
|
392
|
0 |
1 |
if (!av_store(vals, pos, val)) SvREFCNT_dec(val); |
|
401
|
0 |
2 |
if (!av_store(keys, 0, kdup)) SvREFCNT_dec(kdup); |
|
402
|
0 |
2 |
if (!av_store(vals, 0, val)) SvREFCNT_dec(val); |
|
405
|
3 |
2 |
for (i = 1; i <= n; i++) { |
|
408
|
3 |
0 |
if (!kslot || !*kslot) continue; |
|
|
0 |
3 |
if (!kslot || !*kslot) continue; |
|
410
|
3 |
0 |
if (he2 && HeVAL(he2)) sv_setiv(HeVAL(he2), (IV)i); |
|
|
3 |
0 |
if (he2 && HeVAL(he2)) sv_setiv(HeVAL(he2), (IV)i); |
|
416
|
2 |
0 |
SV *kdup = (kslot && *kslot) ? *kslot : key_sv; |
|
|
2 |
0 |
SV *kdup = (kslot && *kslot) ? *kslot : key_sv; |
|
417
|
0 |
2 |
if (!hv_store_ent(idx, kdup, idx_sv, 0)) |