line |
true |
false |
branch |
58
|
526676 |
258691156 |
if (!*root) |
94
|
0 |
0 |
if (flags & HVhek_FREEKEY) |
107
|
0 |
0 |
while (he) { |
201
|
121 |
0 |
if (!(flags & HVhek_FREEKEY)) { |
209
|
0 |
121 |
if (flags & HVhek_UTF8) { |
329
|
76256 |
1872269768 |
if (klen_i32 < 0) { |
352
|
2590002769 |
498 |
if (!hv) |
354
|
2590002769 |
0 |
if (SvTYPE(hv) == (svtype)SVTYPEMASK) |
359
|
60419 |
2589942350 |
if (SvSMAGICAL(hv) && SvGMAGICAL(hv) && !(action & HV_DISABLE_UVAR_XKEY)) { |
|
40357 |
20062 |
if (SvSMAGICAL(hv) && SvGMAGICAL(hv) && !(action & HV_DISABLE_UVAR_XKEY)) { |
361
|
40357 |
0 |
if ((mg = mg_find((const SV *)hv, PERL_MAGIC_uvar))) { |
363
|
40341 |
16 |
if (uf->uf_set == NULL) { |
366
|
0 |
40341 |
if (!keysv) { |
367
|
0 |
0 |
keysv = newSVpvn_flags(key, klen, SVs_TEMP | |
384
|
686625621 |
1903377148 |
if (keysv) { |
385
|
0 |
686625621 |
if (flags & HVhek_FREEKEY) |
387
|
595937437 |
90688184 |
key = SvPV_const(keysv, klen); |
389
|
567986195 |
118639426 |
if (SvIsCOW_shared_hash(keysv)) { |
|
491815454 |
76170741 |
if (SvIsCOW_shared_hash(keysv)) { |
398
|
10432083 |
2579570686 |
if (action & HV_DELETE) { |
404
|
335067536 |
2244503150 |
if (SvMAGICAL(hv)) { |
405
|
335027181 |
40355 |
if (SvRMAGICAL(hv) && !(action & (HV_FETCH_ISSTORE|HV_FETCH_ISEXISTS))) { |
|
329955905 |
5071276 |
if (SvRMAGICAL(hv) && !(action & (HV_FETCH_ISSTORE|HV_FETCH_ISEXISTS))) { |
406
|
329761930 |
193975 |
if (mg_find((const SV *)hv, PERL_MAGIC_tied) |
407
|
0 |
329761930 |
|| SvGMAGICAL((const SV *)hv)) |
411
|
22 |
193953 |
if (!keysv) { |
412
|
22 |
0 |
keysv = newSVpvn_utf8(key, klen, is_utf8); |
421
|
179181 |
14794 |
if (entry) |
438
|
0 |
193975 |
if (flags & HVhek_FREEKEY) |
441
|
17 |
193958 |
if (return_svp) { |
442
|
17 |
0 |
return entry ? (void *) &HeVAL(entry) : NULL; |
481
|
5071276 |
40355 |
else if (SvRMAGICAL(hv) && (action & HV_FETCH_ISEXISTS)) { |
|
1576907 |
3494369 |
else if (SvRMAGICAL(hv) && (action & HV_FETCH_ISEXISTS)) { |
482
|
1532554 |
44353 |
if (mg_find((const SV *)hv, PERL_MAGIC_tied) |
483
|
0 |
1532554 |
|| SvGMAGICAL((const SV *)hv)) { |
489
|
0 |
44353 |
if (keysv || is_utf8) { |
|
0 |
0 |
if (keysv || is_utf8) { |
490
|
0 |
44353 |
if (!keysv) { |
499
|
0 |
44353 |
if (flags & HVhek_FREEKEY) |
505
|
44353 |
0 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
0 |
44353 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
0 |
0 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
3 |
44350 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
3 |
0 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
0 |
3 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
42715 |
1635 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
42715 |
0 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
42715 |
0 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
20099 |
22616 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
0 |
20099 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
20099 |
22616 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
1635 |
0 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
1635 |
0 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
24 |
1611 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
0 |
24 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
0 |
0 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
1611 |
24 |
return SvTRUE(svret) ? (void *)hv : NULL; |
|
0 |
0 |
return SvTRUE(svret) ? (void *)hv : NULL; |
525
|
3514486 |
20238 |
else if (action & HV_FETCH_ISSTORE) { |
529
|
3126029 |
388457 |
if (needs_copy) { |
531
|
1439355 |
1686674 |
if (keysv || is_utf8) { |
|
0 |
1439355 |
if (keysv || is_utf8) { |
532
|
0 |
1686674 |
if (!keysv) { |
535
|
3647 |
1683027 |
if (TAINTING_get) |
536
|
0 |
3647 |
TAINT_set(SvTAINTED(keysv)); |
|
0 |
0 |
TAINT_set(SvTAINTED(keysv)); |
543
|
877675 |
2248354 |
TAINT_IF(save_taint); |
547
|
26 |
3126003 |
if (!needs_store) { |
548
|
0 |
26 |
if (flags & HVhek_FREEKEY) |
573
|
65650428 |
2513681904 |
if (!HvARRAY(hv)) { |
574
|
51022605 |
14627823 |
if ((action & (HV_FETCH_LVALUE | HV_FETCH_ISSTORE)) |
594
|
0 |
14627823 |
if (flags & HVhek_FREEKEY) |
601
|
776067 |
2563928442 |
if (is_utf8 && !(flags & HVhek_KEYCANONICAL)) { |
|
766710 |
9357 |
if (is_utf8 && !(flags & HVhek_KEYCANONICAL)) { |
604
|
705637 |
61073 |
if (is_utf8) |
608
|
61073 |
705637 |
if (key != keysave) { |
609
|
0 |
61073 |
if (flags & HVhek_FREEKEY) |
620
|
2251776751 |
312927758 |
if (!hash) { |
621
|
359248160 |
1892528591 |
if (keysv && (SvIsCOW_shared_hash(keysv))) |
|
251019847 |
108228313 |
if (keysv && (SvIsCOW_shared_hash(keysv))) |
|
181403970 |
69615877 |
if (keysv && (SvIsCOW_shared_hash(keysv))) |
636
|
2778551224 |
841831150 |
for (; entry; entry = HeNEXT(entry)) { |
637
|
1055677320 |
1722873904 |
if (HeHASH(entry) != hash) /* strings can't be equal */ |
639
|
4 |
1722873900 |
if (HeKLEN(entry) != (I32)klen) |
641
|
1275629814 |
447244086 |
if (HeKEY(entry) != key && memNE(HeKEY(entry),key,klen)) /* is this it? */ |
|
305 |
1275629509 |
if (HeKEY(entry) != key && memNE(HeKEY(entry),key,klen)) /* is this it? */ |
643
|
236 |
1722873359 |
if ((HeKFLAGS(entry) ^ masked_flags) & HVhek_UTF8) |
646
|
885229402 |
837643957 |
if (action & (HV_FETCH_LVALUE|HV_FETCH_ISSTORE)) { |
647
|
4909 |
885224493 |
if (HeKFLAGS(entry) != masked_flags) { |
652
|
4909 |
0 |
if (HvSHAREKEYS(hv)) { |
661
|
0 |
0 |
else if (hv == PL_strtab) { |
664
|
0 |
0 |
if (flags & HVhek_FREEKEY) |
666
|
0 |
0 |
Perl_croak(aTHX_ S_strtab_error, |
671
|
3146 |
1763 |
if (masked_flags & HVhek_ENABLEHVKFLAGS) |
674
|
10278 |
885219124 |
if (HeVAL(entry) == &PL_sv_placeholder) { |
676
|
5138 |
5140 |
if (action & HV_FETCH_LVALUE) { |
677
|
0 |
5138 |
if (SvMAGICAL(hv)) { |
694
|
5140 |
0 |
if (val != &PL_sv_placeholder) |
698
|
258183 |
884960941 |
} else if (action & HV_FETCH_ISSTORE) { |
702
|
837643939 |
18 |
} else if (HeVAL(entry) == &PL_sv_placeholder) { |
707
|
50182 |
1722818021 |
if (flags & HVhek_FREEKEY) |
709
|
1222011843 |
500856360 |
if (return_svp) { |
710
|
1222011843 |
0 |
return entry ? (void *) &HeVAL(entry) : NULL; |
730
|
841831150 |
5156 |
if (!entry && SvREADONLY(hv) && !(action & HV_FETCH_ISEXISTS)) { |
|
3786357 |
838044793 |
if (!entry && SvREADONLY(hv) && !(action & HV_FETCH_ISEXISTS)) { |
|
121 |
3786236 |
if (!entry && SvREADONLY(hv) && !(action & HV_FETCH_ISEXISTS)) { |
735
|
584511757 |
257324428 |
if (!(action & (HV_FETCH_LVALUE|HV_FETCH_ISSTORE))) { |
737
|
7939 |
584503818 |
if (flags & HVhek_FREEKEY) |
741
|
77539776 |
179784652 |
if (action & HV_FETCH_LVALUE) { |
742
|
77539215 |
561 |
val = action & HV_FETCH_EMPTY_HE ? NULL : newSV(0); |
743
|
2461975 |
75077801 |
if (SvMAGICAL(hv)) { |
765
|
0 |
254862453 |
if (!HvARRAY(hv)) { |
781
|
254862453 |
0 |
if (HvSHAREKEYS(hv)) |
783
|
0 |
0 |
else if (hv == PL_strtab) { |
786
|
0 |
0 |
if (flags & HVhek_FREEKEY) |
788
|
0 |
0 |
Perl_croak(aTHX_ S_strtab_error, |
795
|
186265142 |
68597311 |
if (!*oentry && SvOOK(hv)) { |
|
12309238 |
173955904 |
if (!*oentry && SvOOK(hv)) { |
798
|
11512 |
12297726 |
if (aux->xhv_fill_lazy) |
808
|
68597311 |
186265142 |
if ( *oentry && PL_HASH_RAND_BITS_ENABLED) { |
|
68597167 |
144 |
if ( *oentry && PL_HASH_RAND_BITS_ENABLED) { |
811
|
34281508 |
34315659 |
if ( PL_hash_rand_bits & 1 ) { |
825
|
21068233 |
233794220 |
if (SvOOK(hv)) { |
835
|
21068033 |
200 |
if (PL_HASH_RAND_BITS_ENABLED) { |
836
|
21067533 |
500 |
if (PL_HASH_RAND_BITS_ENABLED == 1) |
844
|
5130 |
254857323 |
if (val == &PL_sv_placeholder) |
846
|
302987 |
254559466 |
if (masked_flags & HVhek_ENABLEHVKFLAGS) |
850
|
4646945 |
250215508 |
if ( DO_HSPLIT(xhv) ) { |
852
|
111687 |
4535258 |
const U32 items = (U32)HvPLACEHOLDERS_get(hv); |
854
|
0 |
4646945 |
if (items /* hash has placeholders */ |
855
|
0 |
0 |
&& !SvREADONLY(hv) /* but is not a restricted hash */) { |
867
|
0 |
0 |
if (DO_HSPLIT(xhv)) |
873
|
176877695 |
77984758 |
if (return_svp) { |
874
|
176877695 |
0 |
return entry ? (void *) &HeVAL(entry) : NULL; |
888
|
1546021 |
1544223 |
while (mg) { |
|
3515655 |
3514460 |
while (mg) { |
889
|
1517959 |
28062 |
if (isUPPER(mg->mg_type)) { |
|
3126029 |
389626 |
if (isUPPER(mg->mg_type)) { |
891
|
1517190 |
769 |
if (mg->mg_type == PERL_MAGIC_tied) { |
|
3126003 |
26 |
if (mg->mg_type == PERL_MAGIC_tied) { |
915
|
41 |
58316 |
if (SvRMAGICAL(hv)) { |
917
|
20 |
21 |
if (mg) |
922
|
57313 |
1024 |
if (HvTOTALKEYS((const HV *)hv)) |
964
|
1544992 |
8887091 |
if (SvRMAGICAL(hv)) { |
969
|
1517959 |
27033 |
if (needs_copy) { |
975
|
1517959 |
0 |
sv = entry ? HeVAL(entry) : NULL; |
976
|
1517959 |
0 |
if (sv) { |
977
|
1517959 |
0 |
if (SvMAGICAL(sv)) { |
980
|
765 |
1517190 |
if (!needs_store) { |
981
|
765 |
0 |
if (mg_find(sv, PERL_MAGIC_tiedelem)) { |
1005
|
10416510 |
14804 |
if (!HvARRAY(hv)) |
1008
|
708 |
10415802 |
if (is_utf8 && !(k_flags & HVhek_KEYCANONICAL)) { |
|
708 |
0 |
if (is_utf8 && !(k_flags & HVhek_KEYCANONICAL)) { |
1012
|
690 |
18 |
if (is_utf8) |
1016
|
18 |
690 |
if (key != keysave) { |
1017
|
0 |
18 |
if (k_flags & HVhek_FREEKEY) { |
1027
|
10416510 |
0 |
if (!hash) { |
1028
|
5789018 |
4627492 |
if (keysv && (SvIsCOW_shared_hash(keysv))) |
|
5667846 |
121172 |
if (keysv && (SvIsCOW_shared_hash(keysv))) |
|
172489 |
5495357 |
if (keysv && (SvIsCOW_shared_hash(keysv))) |
1038
|
10615206 |
2360319 |
for (; entry; oentry = &HeNEXT(entry), entry = *oentry) { |
1044
|
2559004 |
8056202 |
if (HeHASH(entry) != hash) /* strings can't be equal */ |
1046
|
0 |
8056202 |
if (HeKLEN(entry) != (I32)klen) |
1048
|
6807959 |
1248243 |
if (HeKEY(entry) != key && memNE(HeKEY(entry),key,klen)) /* is this it? */ |
|
11 |
6807948 |
if (HeKEY(entry) != key && memNE(HeKEY(entry),key,klen)) /* is this it? */ |
1050
|
0 |
8056191 |
if ((HeKFLAGS(entry) ^ masked_flags) & HVhek_UTF8) |
1053
|
0 |
8056191 |
if (hv == PL_strtab) { |
1054
|
0 |
0 |
if (k_flags & HVhek_FREEKEY) |
1060
|
2 |
8056189 |
if (HeVAL(entry) == &PL_sv_placeholder) { |
1061
|
0 |
2 |
if (k_flags & HVhek_FREEKEY) |
1065
|
5132 |
8051057 |
if (SvREADONLY(hv) && HeVAL(entry) && SvREADONLY(HeVAL(entry))) { |
|
5132 |
0 |
if (SvREADONLY(hv) && HeVAL(entry) && SvREADONLY(HeVAL(entry))) { |
|
0 |
5132 |
if (SvREADONLY(hv) && HeVAL(entry) && SvREADONLY(HeVAL(entry))) { |
1070
|
18 |
8056171 |
if (k_flags & HVhek_FREEKEY) |
1076
|
8056189 |
0 |
if (HeVAL(entry) && HvENAME_get(hv)) { |
|
3313534 |
4742655 |
if (HeVAL(entry) && HvENAME_get(hv)) { |
|
3104546 |
208988 |
if (HeVAL(entry) && HvENAME_get(hv)) { |
|
3104544 |
2 |
if (HeVAL(entry) && HvENAME_get(hv)) { |
|
42 |
3104502 |
if (HeVAL(entry) && HvENAME_get(hv)) { |
|
160 |
3104342 |
if (HeVAL(entry) && HvENAME_get(hv)) { |
|
3104342 |
0 |
if (HeVAL(entry) && HvENAME_get(hv)) { |
|
3104544 |
0 |
if (HeVAL(entry) && HvENAME_get(hv)) { |
1078
|
63992 |
3040552 |
if (keysv) key = SvPV(keysv, klen); |
|
63992 |
0 |
if (keysv) key = SvPV(keysv, klen); |
1079
|
3098386 |
6158 |
if (( |
1080
|
74 |
3098312 |
(klen > 1 && key[klen-2] == ':' && key[klen-1] == ':') |
|
0 |
74 |
(klen > 1 && key[klen-2] == ':' && key[klen-1] == ':') |
1081
|
6158 |
3098312 |
|| |
1082
|
0 |
6158 |
(klen == 1 && key[0] == ':') |
1084
|
7 |
67 |
&& (klen != 6 || hv!=PL_defstash || memNE(key,"main::",6)) |
|
7 |
0 |
&& (klen != 6 || hv!=PL_defstash || memNE(key,"main::",6)) |
|
6 |
1 |
&& (klen != 6 || hv!=PL_defstash || memNE(key,"main::",6)) |
1085
|
73 |
0 |
&& SvTYPE(gv) == SVt_PVGV && (stash = GvHV((GV *)gv)) |
|
73 |
0 |
&& SvTYPE(gv) == SVt_PVGV && (stash = GvHV((GV *)gv)) |
1086
|
73 |
0 |
&& HvENAME_get(stash)) { |
|
73 |
0 |
&& HvENAME_get(stash)) { |
|
73 |
0 |
&& HvENAME_get(stash)) { |
|
4 |
69 |
&& HvENAME_get(stash)) { |
|
19 |
50 |
&& HvENAME_get(stash)) { |
|
50 |
0 |
&& HvENAME_get(stash)) { |
|
73 |
0 |
&& HvENAME_get(stash)) { |
1098
|
31885 |
3072586 |
else if (klen == 3 && strnEQ(key, "ISA", 3)) |
|
2 |
31883 |
else if (klen == 3 && strnEQ(key, "ISA", 3)) |
1102
|
6598504 |
1457685 |
sv = d_flags & G_DISCARD ? HeVAL(entry) : sv_2mortal(HeVAL(entry)); |
1104
|
8056189 |
0 |
if (sv) { |
1106
|
3103999 |
4952190 |
if (isGV(sv) && isGV_with_GP(sv) && GvCVu(sv) |
|
3103999 |
0 |
if (isGV(sv) && isGV_with_GP(sv) && GvCVu(sv) |
|
3103999 |
0 |
if (isGV(sv) && isGV_with_GP(sv) && GvCVu(sv) |
|
3103997 |
2 |
if (isGV(sv) && isGV_with_GP(sv) && GvCVu(sv) |
|
31371 |
3072626 |
if (isGV(sv) && isGV_with_GP(sv) && GvCVu(sv) |
1107
|
31371 |
0 |
&& HvENAME_get(hv)) |
|
31371 |
0 |
&& HvENAME_get(hv)) |
|
31369 |
2 |
&& HvENAME_get(hv)) |
|
0 |
31369 |
&& HvENAME_get(hv)) |
|
0 |
31369 |
&& HvENAME_get(hv)) |
|
31369 |
0 |
&& HvENAME_get(hv)) |
|
31369 |
0 |
&& HvENAME_get(hv)) |
1117
|
5132 |
8051057 |
if (SvREADONLY(hv)) |
1123
|
5204765 |
2846292 |
if(!*first_entry && SvOOK(hv)) { |
|
1765297 |
3439468 |
if(!*first_entry && SvOOK(hv)) { |
1126
|
594 |
1764703 |
if (aux->xhv_fill_lazy) |
1129
|
3308402 |
4742655 |
if (SvOOK(hv) && entry == HvAUX(hv)->xhv_eiter /* HvEITER(hv) */) |
|
5 |
3308397 |
if (SvOOK(hv) && entry == HvAUX(hv)->xhv_eiter /* HvEITER(hv) */) |
1132
|
1 |
8051051 |
if (SvOOK(hv) && HvLAZYDEL(hv) && |
|
1 |
0 |
if (SvOOK(hv) && HvLAZYDEL(hv) && |
1138
|
850495 |
7200562 |
if (xhv->xhv_keys == 0) |
1142
|
6598504 |
1457685 |
if (d_flags & G_DISCARD) { |
1147
|
2 |
8056187 |
if (mro_changes == 1) mro_isa_changed_in(hv); |
1148
|
73 |
8056114 |
else if (mro_changes == 2) |
1153
|
0 |
2360319 |
if (SvREADONLY(hv)) { |
1159
|
0 |
2360319 |
if (k_flags & HVhek_FREEKEY) |
1178
|
3954910 |
712141 |
Renew(a, PERL_HV_ARRAY_ALLOC_BYTES(newsize) |
1180
|
0 |
4667051 |
if (!a) { |
1190
|
4667029 |
22 |
if (PL_HASH_RAND_BITS_ENABLED) { |
1191
|
4666974 |
55 |
if (PL_HASH_RAND_BITS_ENABLED == 1) |
1197
|
712141 |
3954910 |
if (SvOOK(hv)) { |
1216
|
4667051 |
0 |
if (!HvTOTALKEYS(hv)) /* skip rest if no entries */ |
1224
|
50749332 |
87053411 |
if (!entry) /* non-existent */ |
1228
|
66681893 |
68815951 |
if (j != (U32)i) { |
1235
|
13822205 |
52859688 |
if (aep[j] && PL_HASH_RAND_BITS_ENABLED) { |
|
13822167 |
38 |
if (aep[j] && PL_HASH_RAND_BITS_ENABLED) { |
1238
|
6907076 |
6915091 |
if (PL_hash_rand_bits & 1) { |
1260
|
48444433 |
87053411 |
} while (entry); |
1261
|
133135692 |
4667051 |
} while (i++ < oldsize); |
1276
|
44578146 |
0 |
if (newsize != newmax || newmax <= oldsize) |
|
497951 |
44080195 |
if (newsize != newmax || newmax <= oldsize) |
1278
|
847525 |
497951 |
while ((newsize & (1 + ~newsize)) != newsize) { |
1281
|
461775 |
36176 |
if (newsize < newmax) |
1283
|
497951 |
0 |
if (newsize < newmax) |
1287
|
4 |
497947 |
if (a) { |
1318
|
260865 |
0 |
if (!ohv || (!HvTOTALKEYS(ohv) && !SvMAGICAL((const SV *)ohv))) |
|
0 |
260865 |
if (!ohv || (!HvTOTALKEYS(ohv) && !SvMAGICAL((const SV *)ohv))) |
|
0 |
0 |
if (!ohv || (!HvTOTALKEYS(ohv) && !SvMAGICAL((const SV *)ohv))) |
1322
|
260864 |
1 |
if (!SvMAGICAL((const SV *)ohv)) { |
1332
|
2351496 |
260864 |
for (i = 0; i <= hv_max; i++) { |
1336
|
766671 |
1584825 |
if (!oent) { |
1342
|
906580 |
766671 |
for (; oent; oent = HeNEXT(oent)) { |
1350
|
906580 |
0 |
HeVAL(ent) = SvIMMORTAL(val) ? val : newSVsv(val); |
|
0 |
906580 |
HeVAL(ent) = SvIMMORTAL(val) ? val : newSVsv(val); |
|
0 |
0 |
HeVAL(ent) = SvIMMORTAL(val) ? val : newSVsv(val); |
|
0 |
0 |
HeVAL(ent) = SvIMMORTAL(val) ? val : newSVsv(val); |
|
0 |
0 |
HeVAL(ent) = SvIMMORTAL(val) ? val : newSVsv(val); |
1353
|
906580 |
0 |
: save_hek_flags(key, len, hash, flags); |
1354
|
139909 |
766671 |
if (prev) |
1370
|
0 |
1 |
const I32 riter = HvRITER_get(ohv); |
1371
|
0 |
1 |
HE * const eiter = HvEITER_get(ohv); |
1374
|
1 |
0 |
HV_SET_MAX_ADJUSTED_FOR_KEYS(hv,hv_max,hv_keys); |
|
0 |
1 |
HV_SET_MAX_ADJUSTED_FOR_KEYS(hv,hv_max,hv_keys); |
|
0 |
0 |
HV_SET_MAX_ADJUSTED_FOR_KEYS(hv,hv_max,hv_keys); |
1377
|
1 |
1 |
while ((entry = hv_iternext_flags(ohv, 0))) { |
1379
|
1 |
0 |
SV * const keysv = HeSVKEY(entry); |
|
0 |
1 |
SV * const keysv = HeSVKEY(entry); |
1380
|
0 |
1 |
val = SvIMMORTAL(val) ? val : newSVsv(val); |
|
0 |
0 |
val = SvIMMORTAL(val) ? val : newSVsv(val); |
|
0 |
0 |
val = SvIMMORTAL(val) ? val : newSVsv(val); |
|
0 |
0 |
val = SvIMMORTAL(val) ? val : newSVsv(val); |
|
0 |
0 |
val = SvIMMORTAL(val) ? val : newSVsv(val); |
1381
|
0 |
1 |
if (keysv) |
1411
|
538264 |
0 |
if (ohv) { |
1415
|
249156 |
289108 |
const I32 riter = HvRITER_get(ohv); |
1416
|
249156 |
289108 |
HE * const eiter = HvEITER_get(ohv); |
1421
|
538264 |
0 |
HV_SET_MAX_ADJUSTED_FOR_KEYS(hv,hv_max,hv_keys); |
|
271961 |
266352 |
HV_SET_MAX_ADJUSTED_FOR_KEYS(hv,hv_max,hv_keys); |
|
49 |
271912 |
HV_SET_MAX_ADJUSTED_FOR_KEYS(hv,hv_max,hv_keys); |
1424
|
3319680 |
538261 |
while ((entry = hv_iternext_flags(ohv, 0))) { |
1426
|
3319678 |
0 |
SV *heksv = HeSVKEY(entry); |
|
3 |
3319675 |
SV *heksv = HeSVKEY(entry); |
1427
|
3319675 |
3 |
if (!heksv && sv) heksv = newSVhek(HeKEY_hek(entry)); |
1428
|
3319678 |
0 |
if (sv) sv_magic(sv, NULL, PERL_MAGIC_hintselem, |
1430
|
3319678 |
0 |
if (heksv == HeSVKEY(entry)) |
|
3 |
3319675 |
if (heksv == HeSVKEY(entry)) |
|
3 |
3319675 |
if (heksv == HeSVKEY(entry)) |
1459
|
12 |
223568267 |
if (HeKLEN(entry) == HEf_SVKEY) { |
1463
|
223568267 |
0 |
else if (HvSHAREKEYS(hv)) |
1480
|
8742544 |
0 |
if (!entry) |
1494
|
0 |
0 |
if (!entry) |
1498
|
0 |
0 |
if (HeKLEN(entry) == HEf_SVKEY) { |
1521
|
8463984 |
0 |
if (!hv) |
1530
|
2 |
8463982 |
if (SvREADONLY(hv) && HvARRAY(hv) != NULL) { |
|
2 |
0 |
if (SvREADONLY(hv) && HvARRAY(hv) != NULL) { |
1533
|
16 |
2 |
for (i = 0; i <= xhv->xhv_max; i++) { |
1535
|
6 |
16 |
for (; entry; entry = HeNEXT(entry)) { |
1537
|
2 |
4 |
if (HeVAL(entry) != &PL_sv_placeholder) { |
1538
|
2 |
0 |
if (HeVAL(entry)) { |
1539
|
0 |
2 |
if (SvREADONLY(HeVAL(entry))) { |
1557
|
308689 |
8155293 |
if (SvRMAGICAL(hv)) |
1562
|
351876 |
8112106 |
if (SvOOK(hv)) { |
1563
|
351876 |
0 |
if(HvENAME_get(hv)) |
|
31 |
351845 |
if(HvENAME_get(hv)) |
|
31 |
0 |
if(HvENAME_get(hv)) |
|
0 |
31 |
if(HvENAME_get(hv)) |
|
22 |
9 |
if(HvENAME_get(hv)) |
|
9 |
0 |
if(HvENAME_get(hv)) |
|
31 |
0 |
if(HvENAME_get(hv)) |
1588
|
0 |
115 |
const U32 items = (U32)HvPLACEHOLDERS_get(hv); |
1592
|
0 |
115 |
if (items) |
1604
|
86971 |
0 |
if (items == 0) |
1613
|
866446 |
601924 |
while ((entry = *oentry)) { |
1614
|
691475 |
174971 |
if (HeVAL(entry) == &PL_sv_placeholder) { |
1616
|
0 |
691475 |
if (entry == HvEITER_get(hv)) |
|
0 |
691475 |
if (entry == HvEITER_get(hv)) |
1619
|
0 |
691475 |
if (SvOOK(hv) && HvLAZYDEL(hv) && |
|
0 |
0 |
if (SvOOK(hv) && HvLAZYDEL(hv) && |
1625
|
86971 |
604504 |
if (--items == 0) { |
1627
|
0 |
86971 |
HvTOTALKEYS(hv) -= (IV)HvPLACEHOLDERS_get(hv); |
1628
|
0 |
86971 |
if (HvUSEDKEYS(hv) == 0) |
|
0 |
86971 |
if (HvUSEDKEYS(hv) == 0) |
1637
|
601924 |
0 |
} while (--i >= 0); |
1652
|
10674781 |
64525799 |
while ((sv = Perl_hfree_next_entry(aTHX_ hv, &index))||xhv->xhv_keys) { |
|
0 |
64525799 |
while ((sv = Perl_hfree_next_entry(aTHX_ hv, &index))||xhv->xhv_keys) { |
1679
|
53470510 |
276784402 |
if (SvOOK(hv) && ((iter = HvAUX(hv)))) { |
|
53470510 |
0 |
if (SvOOK(hv) && ((iter = HvAUX(hv)))) { |
1680
|
71 |
53470439 |
if ((entry = iter->xhv_eiter)) { |
1683
|
71 |
0 |
if (entry && HvLAZYDEL(hv)) { /* was deleted earlier? */ |
|
10 |
61 |
if (entry && HvLAZYDEL(hv)) { /* was deleted earlier? */ |
1699
|
7591 |
53462919 |
if (iter->xhv_fill_lazy) |
1703
|
214825735 |
115429177 |
if (!((XPVHV*)SvANY(hv))->xhv_keys) |
1708
|
358589773 |
214825735 |
while ( ! ((entry = array[*indexp])) ) { |
1709
|
3 |
358589770 |
if ((*indexp)++ >= HvMAX(hv)) |
1716
|
182050767 |
32774968 |
if ( PL_phase != PERL_PHASE_DESTRUCT && HvENAME(hv) |
|
7411843 |
174638924 |
if ( PL_phase != PERL_PHASE_DESTRUCT && HvENAME(hv) |
|
2629 |
7409214 |
if ( PL_phase != PERL_PHASE_DESTRUCT && HvENAME(hv) |
|
1171 |
1458 |
if ( PL_phase != PERL_PHASE_DESTRUCT && HvENAME(hv) |
|
0 |
1171 |
if ( PL_phase != PERL_PHASE_DESTRUCT && HvENAME(hv) |
|
1160 |
11 |
if ( PL_phase != PERL_PHASE_DESTRUCT && HvENAME(hv) |
|
11 |
0 |
if ( PL_phase != PERL_PHASE_DESTRUCT && HvENAME(hv) |
|
1171 |
0 |
if ( PL_phase != PERL_PHASE_DESTRUCT && HvENAME(hv) |
1717
|
1171 |
0 |
&& HeVAL(entry) && isGV(HeVAL(entry)) |
|
1171 |
0 |
&& HeVAL(entry) && isGV(HeVAL(entry)) |
1718
|
212 |
959 |
&& GvHV(HeVAL(entry)) && HvENAME(GvHV(HeVAL(entry))) |
|
184 |
28 |
&& GvHV(HeVAL(entry)) && HvENAME(GvHV(HeVAL(entry))) |
|
184 |
0 |
&& GvHV(HeVAL(entry)) && HvENAME(GvHV(HeVAL(entry))) |
|
184 |
0 |
&& GvHV(HeVAL(entry)) && HvENAME(GvHV(HeVAL(entry))) |
|
3 |
181 |
&& GvHV(HeVAL(entry)) && HvENAME(GvHV(HeVAL(entry))) |
|
14 |
167 |
&& GvHV(HeVAL(entry)) && HvENAME(GvHV(HeVAL(entry))) |
|
167 |
0 |
&& GvHV(HeVAL(entry)) && HvENAME(GvHV(HeVAL(entry))) |
|
184 |
0 |
&& GvHV(HeVAL(entry)) && HvENAME(GvHV(HeVAL(entry))) |
1721
|
0 |
184 |
const char * const key = HePV(entry,klen); |
|
0 |
0 |
const char * const key = HePV(entry,klen); |
1722
|
184 |
0 |
if ((klen > 1 && key[klen-1]==':' && key[klen-2]==':') |
|
184 |
0 |
if ((klen > 1 && key[klen-1]==':' && key[klen-2]==':') |
|
0 |
184 |
if ((klen > 1 && key[klen-1]==':' && key[klen-2]==':') |
1723
|
0 |
0 |
|| (klen == 1 && key[0] == ':')) { |
|
0 |
0 |
|| (klen == 1 && key[0] == ':')) { |
1758
|
56061817 |
0 |
if (!hv) |
1773
|
48013463 |
8048354 |
if (PL_phase != PERL_PHASE_DESTRUCT && (name = HvNAME(hv))) { |
|
1128064 |
46885399 |
if (PL_phase != PERL_PHASE_DESTRUCT && (name = HvNAME(hv))) { |
|
425 |
1127639 |
if (PL_phase != PERL_PHASE_DESTRUCT && (name = HvNAME(hv))) { |
|
394 |
31 |
if (PL_phase != PERL_PHASE_DESTRUCT && (name = HvNAME(hv))) { |
|
126 |
268 |
if (PL_phase != PERL_PHASE_DESTRUCT && (name = HvNAME(hv))) { |
|
31 |
0 |
if (PL_phase != PERL_PHASE_DESTRUCT && (name = HvNAME(hv))) { |
|
126 |
31 |
if (PL_phase != PERL_PHASE_DESTRUCT && (name = HvNAME(hv))) { |
|
157 |
48013306 |
if (PL_phase != PERL_PHASE_DESTRUCT && (name = HvNAME(hv))) { |
1774
|
157 |
0 |
if (PL_stashcache) { |
1777
|
157 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
157 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
126 |
31 |
(void)hv_delete(PL_stashcache, name, |
|
157 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
157 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
126 |
31 |
(void)hv_delete(PL_stashcache, name, |
|
41 |
116 |
(void)hv_delete(PL_stashcache, name, |
|
41 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
41 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
35 |
6 |
(void)hv_delete(PL_stashcache, name, |
|
35 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
6 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
35 |
6 |
(void)hv_delete(PL_stashcache, name, |
|
116 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
116 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
91 |
25 |
(void)hv_delete(PL_stashcache, name, |
|
91 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
25 |
0 |
(void)hv_delete(PL_stashcache, name, |
|
91 |
25 |
(void)hv_delete(PL_stashcache, name, |
1784
|
1390783 |
54671034 |
if (save) { |
1789
|
8452300 |
47609517 |
if (SvOOK(hv)) { |
1793
|
8452300 |
0 |
if ((name = HvENAME_get(hv))) { |
|
430 |
8451870 |
if ((name = HvENAME_get(hv))) { |
|
211 |
219 |
if ((name = HvENAME_get(hv))) { |
|
0 |
211 |
if ((name = HvENAME_get(hv))) { |
|
209 |
2 |
if ((name = HvENAME_get(hv))) { |
|
2 |
0 |
if ((name = HvENAME_get(hv))) { |
|
211 |
8452089 |
if ((name = HvENAME_get(hv))) { |
1794
|
209 |
2 |
if (PL_phase != PERL_PHASE_DESTRUCT) |
1796
|
211 |
0 |
if (PL_stashcache) { |
1799
|
211 |
0 |
(void)hv_delete( |
|
211 |
0 |
(void)hv_delete( |
|
0 |
211 |
(void)hv_delete( |
|
209 |
2 |
(void)hv_delete( |
|
2 |
0 |
(void)hv_delete( |
|
211 |
0 |
(void)hv_delete( |
|
211 |
0 |
(void)hv_delete( |
|
0 |
211 |
(void)hv_delete( |
|
209 |
2 |
(void)hv_delete( |
|
2 |
0 |
(void)hv_delete( |
|
8 |
203 |
(void)hv_delete( |
|
8 |
0 |
(void)hv_delete( |
|
8 |
0 |
(void)hv_delete( |
|
8 |
0 |
(void)hv_delete( |
|
0 |
8 |
(void)hv_delete( |
|
8 |
0 |
(void)hv_delete( |
|
0 |
0 |
(void)hv_delete( |
|
203 |
0 |
(void)hv_delete( |
|
203 |
0 |
(void)hv_delete( |
|
203 |
0 |
(void)hv_delete( |
|
0 |
203 |
(void)hv_delete( |
|
201 |
2 |
(void)hv_delete( |
|
2 |
0 |
(void)hv_delete( |
1809
|
8452300 |
0 |
name = HvNAME(hv); |
|
430 |
8451870 |
name = HvNAME(hv); |
|
428 |
2 |
name = HvNAME(hv); |
|
9 |
419 |
name = HvNAME(hv); |
|
2 |
0 |
name = HvNAME(hv); |
|
9 |
2 |
name = HvNAME(hv); |
1810
|
8268822 |
183478 |
if (flags & HV_NAME_SETALL ? !!aux->xhv_name_u.xhvnameu_name : !!name) { |
|
418 |
8451882 |
if (flags & HV_NAME_SETALL ? !!aux->xhv_name_u.xhvnameu_name : !!name) { |
1811
|
11 |
407 |
if (name && PL_stashcache) { |
|
11 |
0 |
if (name && PL_stashcache) { |
1814
|
11 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
11 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
9 |
2 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
11 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
11 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
9 |
2 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
2 |
9 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
2 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
2 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
2 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
2 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
0 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
2 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
9 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
9 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
7 |
2 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
7 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
2 |
0 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
|
7 |
2 |
(void)hv_delete(PL_stashcache, name, (HEK_UTF8(HvNAME_HEK(hv)) ? -HvNAMELEN_get(hv) : HvNAMELEN_get(hv)), G_DISCARD); |
1818
|
430 |
8451870 |
if((meta = aux->xhv_mro_meta)) { |
1819
|
0 |
430 |
if (meta->mro_linear_all) { |
1834
|
8452282 |
18 |
if (!aux->xhv_name_u.xhvnameu_name && ! aux->xhv_backreferences) |
|
8452281 |
1 |
if (!aux->xhv_name_u.xhvnameu_name && ! aux->xhv_backreferences) |
1837
|
56061798 |
19 |
if (!SvOOK(hv)) { |
1844
|
1390783 |
54671034 |
if (SvREFCNT(hv)) |
1847
|
2 |
56061815 |
if (SvRMAGICAL(hv)) |
1849
|
1390783 |
54671034 |
if (save) LEAVE; |
1873
|
48129 |
9184 |
struct xpvhv_aux *aux = SvOOK(hv) ? HvAUX(hv) : NULL; |
1879
|
562 |
56751 |
if (HvTOTALKEYS(hv) < 2) |
1883
|
47637 |
9114 |
if (aux && aux->xhv_fill_lazy) |
|
27239 |
20398 |
if (aux && aux->xhv_fill_lazy) |
1887
|
29512 |
0 |
if (ents) { |
1892
|
2527364 |
2241412 |
if (!*ents) |
1894
|
4739264 |
29512 |
} while (++ents <= last); |
1896
|
20398 |
9114 |
if (aux) { |
1902
|
5742 |
3372 |
} else if (HvMAX(hv) >= HV_FILL_THRESHOLD) { |
1950
|
10079476 |
0 |
if (!SvOOK(hv)) { |
1951
|
1167402 |
8912074 |
if (!HvARRAY(hv)) { |
1963
|
10079434 |
42 |
if (PL_HASH_RAND_BITS_ENABLED) { |
1965
|
10079329 |
105 |
if (PL_HASH_RAND_BITS_ENABLED == 1) |
2010
|
0 |
14958901 |
if (!hv) |
2013
|
5727238 |
9231663 |
if (SvOOK(hv)) { |
2016
|
54 |
5727184 |
if (entry && HvLAZYDEL(hv)) { /* was deleted earlier? */ |
|
4 |
50 |
if (entry && HvLAZYDEL(hv)) { /* was deleted earlier? */ |
2039
|
0 |
0 |
if (!hv) |
2042
|
0 |
0 |
iter = SvOOK(hv) ? HvAUX(hv) : hv_auxinit(hv); |
2052
|
0 |
1 |
if (!hv) |
2055
|
1 |
0 |
iter = SvOOK(hv) ? HvAUX(hv) : hv_auxinit(hv); |
2065
|
0 |
7893475 |
if (!hv) |
2068
|
7893475 |
0 |
if (SvOOK(hv)) { |
2071
|
0 |
0 |
if (riter == -1) |
2086
|
0 |
0 |
if (!hv) |
2089
|
0 |
0 |
if (SvOOK(hv)) { |
2106
|
0 |
8255691 |
if (!hv) |
2109
|
8245375 |
10316 |
if (SvOOK(hv)) { |
2114
|
0 |
10316 |
if (!eiter) |
2132
|
0 |
842922 |
if (len > I32_MAX) |
2135
|
13240 |
829682 |
if (SvOOK(hv)) { |
2137
|
887 |
12353 |
if (iter->xhv_name_u.xhvnameu_name) { |
2138
|
678 |
209 |
if(iter->xhv_name_count) { |
2139
|
410 |
268 |
if(flags & HV_NAME_SETALL) { |
2141
|
410 |
0 |
HEK **hekp = name + ( |
2146
|
213 |
410 |
while(hekp-- > name+1) |
2149
|
3 |
407 |
if(*name) unshare_hek_or_pvn(*name, 0, 0, 0); |
2155
|
24 |
244 |
if(iter->xhv_name_count > 0) { |
2157
|
0 |
24 |
Renew( |
2165
|
222 |
22 |
else if(*(spot = iter->xhv_name_u.xhvnameu_names)) { |
2170
|
2 |
207 |
else if (flags & HV_NAME_SETALL) { |
2184
|
829682 |
0 |
if (name == 0) |
2191
|
842079 |
843 |
*spot = name ? share_hek(name, flags & SVf_UTF8 ? -(I32)len : (I32)len, hash) : NULL; |
|
718 |
841361 |
*spot = name ? share_hek(name, flags & SVf_UTF8 ? -(I32)len : (I32)len, hash) : NULL; |
2201
|
1 |
214 |
if ( (HEK_UTF8(hek) ? 1 : 0) != (flags & SVf_UTF8 ? 1 : 0) ) { |
2202
|
0 |
1 |
if (flags & SVf_UTF8) |
2212
|
100 |
114 |
return HEK_LEN(hek) == pvlen && ((HEK_KEY(hek) == pv) |
|
100 |
0 |
return HEK_LEN(hek) == pvlen && ((HEK_KEY(hek) == pv) |
2213
|
5 |
95 |
|| memEQ(HEK_KEY(hek), pv, pvlen)); |
2232
|
352 |
0 |
struct xpvhv_aux *aux = SvOOK(hv) ? HvAUX(hv) : hv_auxinit(hv); |
2237
|
0 |
352 |
if (len > I32_MAX) |
2242
|
12 |
340 |
if (aux->xhv_name_count) { |
2245
|
9 |
3 |
HEK **hekp = xhv_name + (count < 0 ? -count : count); |
2246
|
18 |
9 |
while (hekp-- > xhv_name) |
2247
|
3 |
15 |
if ( |
2248
|
13 |
5 |
(HEK_UTF8(*hekp) || (flags & SVf_UTF8)) |
|
0 |
13 |
(HEK_UTF8(*hekp) || (flags & SVf_UTF8)) |
|
6 |
7 |
(HEK_UTF8(*hekp) || (flags & SVf_UTF8)) |
2250
|
4 |
2 |
: (HEK_LEN(*hekp) == (I32)len && memEQ(HEK_KEY(*hekp), name, len)) |
2252
|
3 |
0 |
if (hekp == xhv_name && count < 0) |
2256
|
6 |
3 |
if (count < 0) aux->xhv_name_count--, count = -count; |
2258
|
0 |
9 |
Renew(aux->xhv_name_u.xhvnameu_names, count + 1, HEK *); |
2259
|
3 |
6 |
(aux->xhv_name_u.xhvnameu_names)[count] = share_hek(name, (flags & SVf_UTF8 ? -(I32)len : (I32)len), hash); |
2263
|
340 |
0 |
if ( |
2264
|
204 |
136 |
existing_name && ( |
|
139 |
65 |
existing_name && ( |
|
263 |
77 |
existing_name && ( |
2265
|
0 |
204 |
(HEK_UTF8(existing_name) || (flags & SVf_UTF8)) |
2267
|
89 |
50 |
: (HEK_LEN(existing_name) == (I32)len && memEQ(HEK_KEY(existing_name), name, len)) |
2271
|
0 |
263 |
aux->xhv_name_count = existing_name ? 2 : -2; |
2273
|
108 |
155 |
(aux->xhv_name_u.xhvnameu_names)[1] = share_hek(name, (flags & SVf_UTF8 ? -(I32)len : (I32)len), hash); |
2297
|
0 |
266 |
if (len > I32_MAX) |
2300
|
266 |
0 |
if (!SvOOK(hv)) return; |
2303
|
266 |
0 |
if (!aux->xhv_name_u.xhvnameu_name) return; |
2305
|
56 |
210 |
if (aux->xhv_name_count) { |
2308
|
24 |
32 |
HEK **victim = namep + (count < 0 ? -count : count); |
2309
|
56 |
20 |
while (victim-- > namep + 1) |
2310
|
36 |
20 |
if ( |
2311
|
41 |
15 |
(HEK_UTF8(*victim) || (flags & SVf_UTF8)) |
|
0 |
41 |
(HEK_UTF8(*victim) || (flags & SVf_UTF8)) |
|
31 |
10 |
(HEK_UTF8(*victim) || (flags & SVf_UTF8)) |
2313
|
3 |
28 |
: (HEK_LEN(*victim) == (I32)len && memEQ(HEK_KEY(*victim), name, len)) |
2316
|
24 |
12 |
if (count < 0) ++aux->xhv_name_count; |
2318
|
35 |
1 |
if ( |
2320
|
0 |
35 |
&& !*namep |
2329
|
24 |
12 |
*victim = *(namep + (count < 0 ? -count : count) - 1); |
2333
|
20 |
0 |
if ( |
2334
|
20 |
0 |
count > 0 && (HEK_UTF8(*namep) || (flags & SVf_UTF8)) |
|
13 |
7 |
count > 0 && (HEK_UTF8(*namep) || (flags & SVf_UTF8)) |
|
0 |
13 |
count > 0 && (HEK_UTF8(*namep) || (flags & SVf_UTF8)) |
|
13 |
0 |
count > 0 && (HEK_UTF8(*namep) || (flags & SVf_UTF8)) |
2336
|
0 |
13 |
: (HEK_LEN(*namep) == (I32)len && memEQ(HEK_KEY(*namep), name, len)) |
2341
|
210 |
0 |
else if( |
2342
|
158 |
52 |
(HEK_UTF8(aux->xhv_name_u.xhvnameu_name) || (flags & SVf_UTF8)) |
|
0 |
158 |
(HEK_UTF8(aux->xhv_name_u.xhvnameu_name) || (flags & SVf_UTF8)) |
|
158 |
0 |
(HEK_UTF8(aux->xhv_name_u.xhvnameu_name) || (flags & SVf_UTF8)) |
2344
|
0 |
158 |
: (HEK_LEN(aux->xhv_name_u.xhvnameu_name) == (I32)len && |
2356
|
64382026 |
12389 |
struct xpvhv_aux * const iter = SvOOK(hv) ? HvAUX(hv) : hv_auxinit(hv); |
2370
|
8496833 |
48829971 |
if (!SvOOK(hv)) |
2375
|
337 |
8496496 |
if (av) { |
2378
|
254 |
83 |
if (SvTYPE(av) == SVt_PVAV) |
2424
|
0 |
84062611 |
if (!hv) |
2429
|
9934 |
84052677 |
if (!SvOOK(hv)) { |
2438
|
7161239 |
76901372 |
if (SvMAGICAL(hv) && SvRMAGICAL(hv)) { |
|
7161006 |
233 |
if (SvMAGICAL(hv) && SvRMAGICAL(hv)) { |
2439
|
1010599 |
6150407 |
if ( ( mg = mg_find((const SV *)hv, PERL_MAGIC_tied) ) ) { |
2441
|
1008981 |
1618 |
if (entry) { |
2442
|
1008981 |
0 |
sv_setsv(key, HeSVKEY_force(entry)); |
|
1008981 |
0 |
sv_setsv(key, HeSVKEY_force(entry)); |
2443
|
1008981 |
0 |
SvREFCNT_dec(HeSVKEY(entry)); /* get rid of previous key */ |
|
1008981 |
0 |
SvREFCNT_dec(HeSVKEY(entry)); /* get rid of previous key */ |
2460
|
1606 |
1008991 |
if (SvOK(key)) { |
|
1606 |
0 |
if (SvOK(key)) { |
|
0 |
1606 |
if (SvOK(key)) { |
2492
|
68478630 |
14573382 |
if (entry) |
2495
|
47030082 |
21448548 |
if (!(flags & HV_ITERNEXT_WANTPLACEHOLDERS)) { |
2500
|
11540099 |
35489983 |
while (entry && HeVAL(entry) == &PL_sv_placeholder) { |
|
0 |
11540099 |
while (entry && HeVAL(entry) == &PL_sv_placeholder) { |
2507
|
2237 |
83049775 |
if (iter->xhv_last_rand != iter->xhv_rand) { |
2508
|
17 |
2220 |
if (iter->xhv_riter != -1) { |
2519
|
28803741 |
54248271 |
if ((flags & HV_ITERNEXT_WANTPLACEHOLDERS) |
|
6145506 |
48102765 |
if ((flags & HV_ITERNEXT_WANTPLACEHOLDERS) |
|
81508823 |
1543189 |
if ((flags & HV_ITERNEXT_WANTPLACEHOLDERS) |
2521
|
145814205 |
75833939 |
while (!entry) { |
2525
|
5674884 |
140139321 |
if (iter->xhv_riter > (I32)xhv->xhv_max /* HvRITER(hv) > HvMAX(hv) */) { |
2535
|
88329485 |
51809836 |
if (!(flags & HV_ITERNEXT_WANTPLACEHOLDERS)) { |
2538
|
35490126 |
52839386 |
while (entry && HeVAL(entry) == &PL_sv_placeholder) |
|
27 |
35490099 |
while (entry && HeVAL(entry) == &PL_sv_placeholder) |
2553
|
68478630 |
14573382 |
if (oldentry && HvLAZYDEL(hv)) { /* was deleted earlier? */ |
|
2 |
68478628 |
if (oldentry && HvLAZYDEL(hv)) { /* was deleted earlier? */ |
2576
|
0 |
441409 |
if (HeKLEN(entry) == HEf_SVKEY) { |
2578
|
0 |
0 |
char * const p = SvPV(HeKEY_sv(entry), len); |
2621
|
4821528 |
32391292 |
if (SvRMAGICAL(hv)) { |
2622
|
956703 |
3864825 |
if (mg_find((const SV *)hv, PERL_MAGIC_tied)) { |
2624
|
956703 |
0 |
if (HeKLEN(entry) == HEf_SVKEY) |
2650
|
3007 |
260 |
if (!he) |
2700
|
496975214 |
0 |
if (hek) { |
2710
|
470257766 |
26717448 |
if (he->shared_he_he.he_valu.hent_refcount - 1) { |
2716
|
0 |
0 |
} else if (len < 0) { |
2722
|
0 |
0 |
if (is_utf8) |
2724
|
0 |
0 |
if (str != save) |
2736
|
26717448 |
0 |
if (he) { |
2738
|
28803797 |
0 |
for (entry = *oentry; entry; oentry = &HeNEXT(entry), entry = *oentry) { |
2739
|
2086349 |
26717448 |
if (entry == he_he) |
2744
|
0 |
0 |
for (entry = *oentry; entry; oentry = &HeNEXT(entry), entry = *oentry) { |
2745
|
0 |
0 |
if (HeHASH(entry) != hash) /* strings can't be equal */ |
2747
|
0 |
0 |
if (HeKLEN(entry) != len) |
2749
|
0 |
0 |
if (HeKEY(entry) != str && memNE(HeKEY(entry),str,len)) /* is this it? */ |
|
0 |
0 |
if (HeKEY(entry) != str && memNE(HeKEY(entry),str,len)) /* is this it? */ |
2751
|
0 |
0 |
if (HeKFLAGS(entry) != flags_masked) |
2757
|
26717448 |
0 |
if (entry) { |
2758
|
26717448 |
0 |
if (--entry->he_valu.hent_refcount == 0) { |
2765
|
0 |
26717448 |
if (!entry) |
2766
|
0 |
0 |
Perl_ck_warner_d(aTHX_ packWARN(WARN_INTERNAL), |
|
0 |
0 |
Perl_ck_warner_d(aTHX_ packWARN(WARN_INTERNAL), |
2771
|
0 |
26717448 |
if (k_flags & HVhek_FREEKEY) |
2788
|
4435 |
68823503 |
if (len < 0) { |
2796
|
3368 |
1067 |
if (is_utf8) |
2801
|
1067 |
3368 |
if (str != save) { |
2833
|
436500447 |
52316873 |
for (;entry; entry = HeNEXT(entry)) { |
2834
|
160158850 |
276341597 |
if (HeHASH(entry) != hash) /* strings can't be equal */ |
2836
|
1066 |
276340531 |
if (HeKLEN(entry) != len) |
2838
|
214558951 |
61781580 |
if (HeKEY(entry) != str && memNE(HeKEY(entry),str,len)) /* is this it? */ |
|
581 |
214558370 |
if (HeKEY(entry) != str && memNE(HeKEY(entry),str,len)) /* is this it? */ |
2840
|
3935135 |
272404815 |
if (HeKFLAGS(entry) != flags_masked) |
2845
|
52316873 |
272404815 |
if (!entry) { |
2881
|
25679443 |
26637430 |
if (!next) { /* initial entry? */ |
2882
|
20102 |
25659341 |
} else if ( DO_HSPLIT(xhv) ) { |
2890
|
4019 |
324717669 |
if (flags & HVhek_FREEKEY) |
2904
|
225 |
15179 |
if (!mg) { |
2907
|
0 |
225 |
if (!mg) { |
2923
|
125 |
6314147 |
return mg ? mg->mg_len : 0; |
2934
|
0 |
9941736 |
if (mg) { |
2936
|
0 |
9941736 |
} else if (ph) { |
2937
|
0 |
0 |
if (!sv_magicext(MUTABLE_SV(hv), 0, PERL_MAGIC_rhash, 0, 0, ph)) |
2975
|
309 |
1900138 |
if ((he->refcounted_he_data[0] & HVrhek_typemask) == HVrhek_PV_UTF8) |
3001
|
0 |
958930 |
if (flags) |
3010
|
958930 |
0 |
if (!HvARRAY(hv)) { |
3017
|
4047146 |
958930 |
while (chain) { |
3027
|
3141762 |
3432387 |
for (; entry; entry = HeNEXT(entry)) { |
3028
|
614779 |
2526983 |
if (HeHASH(entry) == hash) { |
3041
|
184523 |
430256 |
if (HeKEY_hek(entry) == chain->refcounted_he_hek) |
3043
|
184523 |
0 |
if (HeKLEN(entry) == HEK_LEN(chain->refcounted_he_hek) |
3044
|
184503 |
20 |
&& HeKUTF8(entry) == HEK_UTF8(chain->refcounted_he_hek) |
3045
|
0 |
184503 |
&& memEQ(HeKEY(entry), HEK_KEY(chain->refcounted_he_hek), |
3065
|
691475 |
2740912 |
if (value == &PL_sv_placeholder) |
3079
|
86971 |
871959 |
if (placeholders) { |
3115
|
0 |
7722118 |
if (flags & ~(REFCOUNTED_HE_KEY_UTF8|REFCOUNTED_HE_EXISTS)) |
3118
|
7722056 |
62 |
if (!chain) |
3120
|
11 |
7722045 |
if (flags & REFCOUNTED_HE_KEY_UTF8) { |
3124
|
51 |
8 |
for (p = keypv; p != keyend; p++) { |
3125
|
9 |
42 |
if (! UTF8_IS_INVARIANT(*p)) { |
3126
|
6 |
3 |
if (! UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(p, keyend)) { |
|
6 |
0 |
if (! UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(p, keyend)) { |
|
6 |
0 |
if (! UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(p, keyend)) { |
3133
|
6 |
2 |
if (nonascii_count) { |
3140
|
30 |
6 |
for (; p != keyend; p++, q++) { |
3142
|
24 |
6 |
if (UTF8_IS_INVARIANT(c)) { |
3155
|
7722056 |
0 |
if (!hash) |
3158
|
8300023 |
25263 |
for (; chain; chain = chain->refcounted_he_next) { |
3159
|
7696795 |
603228 |
if ( |
3166
|
7696795 |
0 |
hash == HEK_HASH(chain->refcounted_he_hek) && |
3167
|
7696795 |
0 |
keylen == (STRLEN)HEK_LEN(chain->refcounted_he_hek) && |
3168
|
7696793 |
2 |
memEQ(HEK_KEY(chain->refcounted_he_hek), keypv, keylen) && |
3172
|
1656 |
7695137 |
if (flags & REFCOUNTED_HE_EXISTS) |
3175
|
57 |
1599 |
? NULL : &PL_sv_yes; |
3179
|
0 |
25263 |
return flags & REFCOUNTED_HE_EXISTS ? NULL : &PL_sv_placeholder; |
3215
|
0 |
53 |
if (flags & REFCOUNTED_HE_KEY_UTF8) |
3218
|
53 |
0 |
keypv = SvPV_const(key, keylen); |
3219
|
1 |
52 |
if (SvUTF8(key)) |
3221
|
53 |
0 |
if (!hash && SvIsCOW_shared_hash(key)) |
|
42 |
11 |
if (!hash && SvIsCOW_shared_hash(key)) |
|
0 |
42 |
if (!hash && SvIsCOW_shared_hash(key)) |
3273
|
103441 |
16367 |
if (!value || value == &PL_sv_placeholder) { |
|
103441 |
0 |
if (!value || value == &PL_sv_placeholder) { |
3275
|
42620 |
60821 |
} else if (SvPOK(value)) { |
3277
|
41656 |
964 |
} else if (SvIOK(value)) { |
3278
|
41654 |
2 |
value_type = SvUOK((const SV *)value) ? HVrhek_UV : HVrhek_IV; |
3279
|
9 |
955 |
} else if (!SvOK(value)) { |
|
9 |
0 |
} else if (!SvOK(value)) { |
|
0 |
9 |
} else if (!SvOK(value)) { |
3285
|
61776 |
58032 |
if (is_pv) { |
3288
|
60821 |
955 |
value_p = SvPV_const(value, value_len); |
3289
|
186 |
61590 |
if (SvUTF8(value)) |
3295
|
9 |
119799 |
if (flags & REFCOUNTED_HE_KEY_UTF8) { |
3299
|
37 |
5 |
for (p = keypv; p != keyend; p++) { |
3300
|
8 |
29 |
if (! UTF8_IS_INVARIANT(*p)) { |
3301
|
4 |
4 |
if (! UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(p, keyend)) { |
|
4 |
0 |
if (! UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(p, keyend)) { |
|
4 |
0 |
if (! UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(p, keyend)) { |
3308
|
4 |
1 |
if (nonascii_count) { |
3315
|
20 |
4 |
for (; p != keyend; p++, q++) { |
3317
|
16 |
4 |
if (UTF8_IS_INVARIANT(c)) { |
3329
|
4 |
119804 |
if (flags & REFCOUNTED_HE_KEY_UTF8) |
3331
|
119440 |
368 |
if (!hash) |
3347
|
61776 |
58032 |
if (is_pv) { |
3350
|
41654 |
16378 |
} else if (value_type == HVrhek_IV) { |
3352
|
2 |
16376 |
} else if (value_type == HVrhek_UV) { |
3403
|
0 |
72865 |
if (flags & REFCOUNTED_HE_KEY_UTF8) |
3406
|
72865 |
0 |
keypv = SvPV_const(key, keylen); |
3407
|
2 |
72863 |
if (SvUTF8(key)) |
3409
|
72865 |
0 |
if (!hash && SvIsCOW_shared_hash(key)) |
|
368 |
72497 |
if (!hash && SvIsCOW_shared_hash(key)) |
|
368 |
0 |
if (!hash && SvIsCOW_shared_hash(key)) |
3431
|
862698 |
38286370 |
while (he) { |
3439
|
6102 |
856596 |
if (new_count) { |
3466
|
1273416 |
75976551 |
if (he) { |
3491
|
1079999 |
44726873 |
if (!chain) |
3499
|
220112 |
859887 |
if ((STRLEN)HEK_LEN(chain->refcounted_he_hek) != 1) |
3501
|
220089 |
23 |
if (*HEK_KEY(chain->refcounted_he_hek) != ':') |
3506
|
220089 |
0 |
if ((chain->refcounted_he_data[0] & HVrhek_typemask) != HVrhek_PV |
3510
|
169021 |
51068 |
if (len) |
3512
|
169021 |
51068 |
if (flags) { |
3513
|
168995 |
26 |
*flags = ((chain->refcounted_he_data[0] & HVrhek_typemask) |
3535
|
0 |
46921 |
if (flags & ~(SVf_UTF8)) |
3539
|
179 |
46742 |
if (flags & SVf_UTF8) |