Branch Coverage

Storable.xs
Criterion Covered Total %
branch 1509 3754 40.2


line true false branch
1591 466 0 if (cxt->hclass) {
1593 116 466 while ((he = hv_iternext(cxt->hclass))) /* Extra () for -Wall */
1608 466 0 if (cxt->pseen) {
1623 466 0 if (cxt->hclass) {
1630 466 0 if (cxt->hook) {
1637 466 0 if (cxt->hook_seen) {
1646 0 466 if (cxt->eval) {
1688 2 586 ? newHV() : 0);
1719 586 0 if (cxt->aseen) {
1727 586 0 if (cxt->aclass) {
1734 586 0 if (cxt->hook) {
1741 2 584 if (cxt->hseen) {
1771 51 54 if (cxt->membuf_ro)
1776 27 78 if (cxt->optype & ST_RETRIEVE)
1778 5 73 else if (cxt->optype & ST_STORE)
1818 0 0 stcxt_t *prev = (stcxt_t *)(cxt->prev ? SvPVX(SvRV(cxt->prev)) : 0);
1898 142 0 const char *hvname = HvNAME_get(pkg);
142 0 const char *hvname = HvNAME_get(pkg);
0 142 const char *hvname = HvNAME_get(pkg);
0 0 const char *hvname = HvNAME_get(pkg);
142 0 const char *hvname = HvNAME_get(pkg);
0 142 const char *hvname = HvNAME_get(pkg);
1907 62 80 if (gv && isGV(gv)) {
62 0 if (gv && isGV(gv)) {
1922 80 62 return SvOK(sv) ? sv : (SV *) 0;
80 0 return SvOK(sv) ? sv : (SV *) 0;
0 80 return SvOK(sv) ? sv : (SV *) 0;
1935 4 0 const char *hvname = HvNAME_get(pkg);
4 0 const char *hvname = HvNAME_get(pkg);
0 4 const char *hvname = HvNAME_get(pkg);
0 0 const char *hvname = HvNAME_get(pkg);
4 0 const char *hvname = HvNAME_get(pkg);
0 4 const char *hvname = HvNAME_get(pkg);
1951 2 0 const char *hvname = HvNAME_get(pkg);
2 0 const char *hvname = HvNAME_get(pkg);
0 2 const char *hvname = HvNAME_get(pkg);
0 0 const char *hvname = HvNAME_get(pkg);
2 0 const char *hvname = HvNAME_get(pkg);
0 2 const char *hvname = HvNAME_get(pkg);
1971 208 0 const char *hvname = HvNAME_get(pkg);
208 0 const char *hvname = HvNAME_get(pkg);
0 208 const char *hvname = HvNAME_get(pkg);
0 0 const char *hvname = HvNAME_get(pkg);
208 0 const char *hvname = HvNAME_get(pkg);
0 208 const char *hvname = HvNAME_get(pkg);
1984 66 142 if (svh) {
1986 30 36 if (!SvOK(sv)) {
30 0 if (!SvOK(sv)) {
30 0 if (!SvOK(sv)) {
2022 0 53 PUSHMARK(sp);
2023 0 53 XPUSHs(obj);
2024 0 53 XPUSHs(sv_2mortal(newSViv(cloning))); /* Cloning flag */
2025 53 0 if (av) {
2029 0 53 XPUSHs(ary[0]); /* Frozen string */
2030 40 53 for (i = 1; i < cnt; i++) {
2033 0 40 XPUSHs(sv_2mortal(newRV_inc(ary[i])));
2044 12 41 if (count) {
2050 53 0 FREETMPS;
2077 0 57 PUSHMARK(sp);
2078 0 57 XPUSHs(obj); /* Target object */
2079 0 57 XPUSHs(sv_2mortal(newSViv(cloning))); /* Cloning flag */
2087 95 57 for (i = count - 1; i >= 0; i--) {
2093 57 0 FREETMPS;
2189 44 116 if (svh) {
2199 0 116 if (!hv_store(hclass, name, len, INT2PTR(SV*, cxt->classnum), 0))
2227 16 1593 if (SvWEAKREF(sv))
2234 168 1441 if (SvOBJECT(sv)) {
2236 168 0 if (stash && Gv_AMG(stash)) {
168 0 if (stash && Gv_AMG(stash)) {
168 0 if (stash && Gv_AMG(stash)) {
0 168 if (stash && Gv_AMG(stash)) {
0 0 if (stash && Gv_AMG(stash)) {
168 0 if (stash && Gv_AMG(stash)) {
0 168 if (stash && Gv_AMG(stash)) {
168 0 if (stash && Gv_AMG(stash)) {
135 33 if (stash && Gv_AMG(stash)) {
2238 29 4 PUTMARK(is_weak ? SX_WEAKOVERLOAD : SX_OVERLOAD);
29 0 PUTMARK(is_weak ? SX_WEAKOVERLOAD : SX_OVERLOAD);
2 27 PUTMARK(is_weak ? SX_WEAKOVERLOAD : SX_OVERLOAD);
0 0 PUTMARK(is_weak ? SX_WEAKOVERLOAD : SX_OVERLOAD);
2 2 PUTMARK(is_weak ? SX_WEAKOVERLOAD : SX_OVERLOAD);
0 4 PUTMARK(is_weak ? SX_WEAKOVERLOAD : SX_OVERLOAD);
2240 122 13 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
122 0 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
0 122 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
0 0 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
0 13 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
0 13 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
2242 1385 56 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
1385 0 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
6 1379 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
0 0 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
6 50 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
0 56 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
2246 1609 0 if (cxt->entry && cxt->recur_sv == sv) {
43 1566 if (cxt->entry && cxt->recur_sv == sv) {
2247 0 43 if (++cxt->recur_depth > MAX_DEPTH) {
2257 1606 0 if (cxt->entry && cxt->recur_sv == sv && cxt->recur_depth > 0) {
1038 568 if (cxt->entry && cxt->recur_sv == sv && cxt->recur_depth > 0) {
574 464 if (cxt->entry && cxt->recur_sv == sv && cxt->recur_depth > 0) {
2297 5144 23291 if (!(flags & SVf_OK)) { /* !SvOK(sv) */
2298 5125 19 if (sv == &PL_sv_undef) {
2300 5125 0 PUTMARK(SX_SV_UNDEF);
5125 0 PUTMARK(SX_SV_UNDEF);
0 0 PUTMARK(SX_SV_UNDEF);
2303 14 5 PUTMARK(SX_UNDEF);
14 0 PUTMARK(SX_UNDEF);
0 5 PUTMARK(SX_UNDEF);
2339 6 23285 if ((flags & SV_MAYBE_IMMORTAL) == SV_MAYBE_IMMORTAL) {
2340 3 3 if (sv == &PL_sv_yes) {
2342 3 0 PUTMARK(SX_SV_YES);
3 0 PUTMARK(SX_SV_YES);
0 0 PUTMARK(SX_SV_YES);
2343 3 0 } else if (sv == &PL_sv_no) {
2345 3 0 PUTMARK(SX_SV_NO);
3 0 PUTMARK(SX_SV_NO);
0 0 PUTMARK(SX_SV_NO);
2347 0 0 pv = SvPV(sv, len); /* We know it's SvPOK */
2350 22749 536 } else if (flags & SVf_POK) {
2353 506 30 } else if (
2364 506 0 iv = SvIV(sv);
2376 20 491 if ((flags & SVf_IVisUV) && SvUV(sv) > IV_MAX) {
20 0 if ((flags & SVf_IVisUV) && SvUV(sv) > IV_MAX) {
20 0 if ((flags & SVf_IVisUV) && SvUV(sv) > IV_MAX) {
2387 461 30 if (iv >= -128 && iv <= 127) {
355 106 if (iv >= -128 && iv <= 127) {
2389 320 35 PUTMARK(SX_BYTE);
320 0 PUTMARK(SX_BYTE);
0 35 PUTMARK(SX_BYTE);
2390 320 35 PUTMARK(siv);
320 0 PUTMARK(siv);
0 35 PUTMARK(siv);
2392 49 87 } else if (cxt->netorder) {
2401 0 49 if (
0 0 if (
2404 0 0 ((flags & SVf_IVisUV) && SvUV(sv) > (UV)0x7FFFFFFF) ||
0 0 ((flags & SVf_IVisUV) && SvUV(sv) > (UV)0x7FFFFFFF) ||
33 16 ((flags & SVf_IVisUV) && SvUV(sv) > (UV)0x7FFFFFFF) ||
2406 27 6 (iv > (IV)0x7FFFFFFF) || (iv < -(IV)0x80000000)) {
2415 14 13 PUTMARK(SX_NETINT);
14 0 PUTMARK(SX_NETINT);
0 13 PUTMARK(SX_NETINT);
2416 14 13 WRITE_I32(niv);
0 14 WRITE_I32(niv);
0 14 WRITE_I32(niv);
0 13 WRITE_I32(niv);
2419 60 27 PUTMARK(SX_INTEGER);
60 0 PUTMARK(SX_INTEGER);
0 27 PUTMARK(SX_INTEGER);
2420 60 27 WRITE(&iv, sizeof(iv));
0 60 WRITE(&iv, sizeof(iv));
0 27 WRITE(&iv, sizeof(iv));
2424 30 0 } else if (flags & SVf_NOK) {
2437 26 4 SvIV_please(sv);
26 0 SvIV_please(sv);
0 26 SvIV_please(sv);
2438 5 25 if (SvIOK_notUV(sv)) {
2439 5 0 iv = SvIV(sv);
2442 25 0 nv = SvNV(sv);
2445 5 20 if (cxt->netorder) {
2450 12 8 PUTMARK(SX_DOUBLE);
12 0 PUTMARK(SX_DOUBLE);
0 8 PUTMARK(SX_DOUBLE);
2451 12 8 WRITE(&nv, sizeof(nv));
0 12 WRITE(&nv, sizeof(nv));
0 8 WRITE(&nv, sizeof(nv));
2455 0 0 } else if (flags & (SVp_POK | SVp_NOK | SVp_IOK)) {
2462 22749 47 pv = SvPV(sv, len);
2471 2 22794 if (SvMAGICAL(sv) && (mg = mg_find(sv, 'V'))) {
2 0 if (SvMAGICAL(sv) && (mg = mg_find(sv, 'V'))) {
2475 1 1 STORE_PV_LEN((const char *)mg->mg_ptr,
1 0 STORE_PV_LEN((const char *)mg->mg_ptr,
1 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
1 0 STORE_PV_LEN((const char *)mg->mg_ptr,
1 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
1 0 STORE_PV_LEN((const char *)mg->mg_ptr,
1 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 1 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 1 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
1 0 STORE_PV_LEN((const char *)mg->mg_ptr,
1 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 1 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
1 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 1 STORE_PV_LEN((const char *)mg->mg_ptr,
0 1 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
1 0 STORE_PV_LEN((const char *)mg->mg_ptr,
0 1 STORE_PV_LEN((const char *)mg->mg_ptr,
0 0 STORE_PV_LEN((const char *)mg->mg_ptr,
2481 12 22784 if (SvUTF8 (sv))
2482 11 1 STORE_UTF8STR(pv, wlen);
11 0 STORE_UTF8STR(pv, wlen);
11 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
11 0 STORE_UTF8STR(pv, wlen);
11 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
11 0 STORE_UTF8STR(pv, wlen);
11 0 STORE_UTF8STR(pv, wlen);
0 11 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 1 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
1 0 STORE_UTF8STR(pv, wlen);
1 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 1 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
1 0 STORE_UTF8STR(pv, wlen);
0 1 STORE_UTF8STR(pv, wlen);
1 0 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
1 0 STORE_UTF8STR(pv, wlen);
0 1 STORE_UTF8STR(pv, wlen);
0 0 STORE_UTF8STR(pv, wlen);
2484 22784 0 STORE_SCALAR(pv, wlen);
22710 74 STORE_SCALAR(pv, wlen);
22710 0 STORE_SCALAR(pv, wlen);
0 74 STORE_SCALAR(pv, wlen);
22710 74 STORE_SCALAR(pv, wlen);
22710 0 STORE_SCALAR(pv, wlen);
0 74 STORE_SCALAR(pv, wlen);
22781 3 STORE_SCALAR(pv, wlen);
22709 72 STORE_SCALAR(pv, wlen);
2 22707 STORE_SCALAR(pv, wlen);
0 72 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
0 0 STORE_SCALAR(pv, wlen);
2514 0 415 if (len > 0x7fffffffu) {
2518 0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
2519 0 0 PUTMARK(SX_ARRAY);
0 0 PUTMARK(SX_ARRAY);
0 0 PUTMARK(SX_ARRAY);
2520 0 0 W64LEN(len);
0 0 W64LEN(len);
0 0 W64LEN(len);
0 0 W64LEN(len);
0 0 W64LEN(len);
0 0 W64LEN(len);
0 0 W64LEN(len);
2529 396 19 PUTMARK(SX_ARRAY);
396 0 PUTMARK(SX_ARRAY);
0 19 PUTMARK(SX_ARRAY);
2530 29 386 WLEN(l);
22 7 WLEN(l);
0 22 WLEN(l);
2 20 WLEN(l);
0 7 WLEN(l);
374 12 WLEN(l);
0 374 WLEN(l);
137 237 WLEN(l);
0 12 WLEN(l);
2536 415 0 if (cxt->entry && cxt->recur_sv == (SV*)av) {
352 63 if (cxt->entry && cxt->recur_sv == (SV*)av) {
2537 0 352 if (++cxt->recur_depth > MAX_DEPTH) {
2551 12934 413 for (i = 0; i < len; i++) {
2553 3 12931 if (!sav) {
2555 3 0 STORE_SV_UNDEF();
3 0 STORE_SV_UNDEF();
0 0 STORE_SV_UNDEF();
2564 0 12931 if (*sav == &PL_sv_undef) {
2567 0 0 PUTMARK(SX_SVUNDEF_ELEM);
0 0 PUTMARK(SX_SVUNDEF_ELEM);
0 0 PUTMARK(SX_SVUNDEF_ELEM);
2572 0 12929 if ((ret = store(aTHX_ cxt, *sav))) /* Extra () for -Wall */
2576 413 0 if (cxt->entry && cxt->recur_sv == (SV*)av && cxt->recur_depth > 0) {
340 73 if (cxt->entry && cxt->recur_sv == (SV*)av && cxt->recur_depth > 0) {
331 9 if (cxt->entry && cxt->recur_sv == (SV*)av && cxt->recur_depth > 0) {
2639 1025 112 ) ? 1 : 0);
23 1002 ) ? 1 : 0);
2651 0 1137 if (len > 0x7fffffffu) { /* keys > I32_MAX */
2663 0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
2664 0 0 if (flagged_hash) {
2665 0 0 PUTMARK(SX_FLAG_HASH);
0 0 PUTMARK(SX_FLAG_HASH);
0 0 PUTMARK(SX_FLAG_HASH);
2666 0 0 PUTMARK(hash_flags);
0 0 PUTMARK(hash_flags);
0 0 PUTMARK(hash_flags);
2668 0 0 PUTMARK(SX_HASH);
0 0 PUTMARK(SX_HASH);
0 0 PUTMARK(SX_HASH);
2670 0 0 W64LEN(len);
0 0 W64LEN(len);
0 0 W64LEN(len);
0 0 W64LEN(len);
0 0 W64LEN(len);
0 0 W64LEN(len);
0 0 W64LEN(len);
2679 135 1002 if (flagged_hash) {
2682 129 6 PUTMARK(SX_FLAG_HASH);
129 0 PUTMARK(SX_FLAG_HASH);
0 6 PUTMARK(SX_FLAG_HASH);
2683 129 6 PUTMARK(hash_flags);
129 0 PUTMARK(hash_flags);
0 6 PUTMARK(hash_flags);
2686 978 24 PUTMARK(SX_HASH);
978 0 PUTMARK(SX_HASH);
0 24 PUTMARK(SX_HASH);
2688 25 1112 WLEN(l);
11 14 WLEN(l);
0 11 WLEN(l);
5 6 WLEN(l);
0 14 WLEN(l);
1096 16 WLEN(l);
0 1096 WLEN(l);
267 829 WLEN(l);
0 16 WLEN(l);
2694 1137 0 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
981 156 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
2695 0 981 if (++cxt->recur_depth > MAX_DEPTH_HASH) {
2712 722 415 riter = HvRITER_get(hv);
2713 722 415 eiter = HvEITER_get(hv);
2727 888 249 if (
2729 493 395 && (cxt->canonical == 1
2730 79 414 || (cxt->canonical < 0
2731 19 60 && (cxt->canonical =
2732 43 0 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
0 43 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
6 0 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
6 0 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
6 0 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
3 3 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
3 3 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
30 0 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
14 16 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
0 14 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
0 0 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
16 14 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
0 0 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
2746 4993 414 for (i = 0; i < len; i++) {
2757 4993 414 for (i = 0; i < len; i++) {
2759 21 4972 int placeholders = (int)HvPLACEHOLDERS_get(hv);
2772 4975 18 if (he) {
2773 0 4975 if (!(val = HeVAL(he))) {
2780 0 18 if (placeholders-- < 0) {
2803 0 4993 if ((ret = store(aTHX_ cxt, val))) /* Extra () for -Wall, grr... */
2816 22 4971 if ((hash_flags & SHV_RESTRICTED)
2817 20 2 && SvTRULYREADONLY(val)) {
2821 4993 0 keyval = SvPV(key, keylen_tmp);
2829 14 4979 if (SvUTF8(key)) {
2844 5 9 if (keyval != keysave) {
2855 48 4945 if (flagged_hash) {
2856 40 8 PUTMARK(flags);
40 0 PUTMARK(flags);
0 8 PUTMARK(flags);
2868 18 4975 WLEN(keylen);
14 4 WLEN(keylen);
0 14 WLEN(keylen);
2 12 WLEN(keylen);
0 4 WLEN(keylen);
4971 4 WLEN(keylen);
0 4971 WLEN(keylen);
1302 3669 WLEN(keylen);
0 4 WLEN(keylen);
2869 4993 0 if (keylen)
2870 4985 8 WRITE(keyval, keylen);
0 4985 WRITE(keyval, keylen);
0 8 WRITE(keyval, keylen);
2871 5 4988 if (flags & SHV_K_WASUTF8)
2889 11837 722 for (i = 0; i < len; i++) {
2895 11837 0 SV *val = (he ? hv_iterval(hv, he) : 0);
2897 0 11837 if (val == 0)
2900 0 11836 if ((ret = store_hentry(aTHX_ cxt, hv, i, he, hash_flags)))
2982 1136 0 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
601 535 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
470 131 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
3001 6721 5116 ) ? 1 : 0);
31 6690 ) ? 1 : 0);
3002 5116 6721 unsigned char flags = (((hash_flags & SHV_RESTRICTED)
3003 5110 6 && SvTRULYREADONLY(val))
3008 5104 6733 if (val == &PL_sv_placeholder) {
3025 0 11836 if ((ret = store(aTHX_ cxt, val)))
3027 0 11836 if (len == HEf_SVKEY) {
3033 9 11827 if (HEK_UTF8(hek))
3035 6 11830 if (HEK_WASUTF8(hek))
3048 5147 6689 if (flagged_hash) {
3049 5137 10 PUTMARK(flags);
5137 0 PUTMARK(flags);
0 10 PUTMARK(flags);
3061 0 11836 if (flags & SHV_K_ISSV) {
3062 0 0 if ((ret = store(aTHX_ cxt, key_sv)))
3065 28 11808 WLEN(len);
7 21 WLEN(len);
0 7 WLEN(len);
2 5 WLEN(len);
0 21 WLEN(len);
11782 26 WLEN(len);
0 11782 WLEN(len);
2898 8884 WLEN(len);
0 26 WLEN(len);
3066 11832 4 if (len)
3067 11785 47 WRITE(key, len);
6 11779 WRITE(key, len);
0 47 WRITE(key, len);
3106 0 0 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
0 0 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
3107 0 0 if (++cxt->recur_depth > MAX_DEPTH_HASH) {
3117 0 0 for (i = 0; i <= (Size_t)HvMAX(hv); i++) {
3119 0 0 if (!entry) continue;
3120 0 0 if ((ret = store_hentry(aTHX_ cxt, hv, ix++, entry, hash_flags)))
3122 0 0 while ((entry = HeNEXT(entry))) {
3123 0 0 if ((ret = store_hentry(aTHX_ cxt, hv, ix++, entry, hash_flags)))
3127 0 0 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
0 0 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
0 0 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
3159 73 0 if (
3160 41 32 cxt->deparse == 0 ||
3161 3 38 (cxt->deparse < 0 &&
3163 41 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 41 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 41 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 41 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
41 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
41 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
3 38 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 3 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
38 3 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
0 0 SvTRUE(get_sv("Storable::Deparse", GV_ADD)) ? 1 : 0))
3183 0 70 PUSHMARK(sp);
3184 0 70 XPUSHs(newSVpvs_flags("B::Deparse", SVs_TEMP));
3188 0 70 if (count != 1)
3196 0 70 PUSHMARK(sp);
3197 0 70 XPUSHs(bdeparse); /* XXX is this already mortal? */
3198 0 70 XPUSHs(sv_2mortal(newRV_inc((SV*)cv)));
3202 0 70 if (count != 1)
3207 70 0 reallen = strlen(SvPV_nolen(text));
3214 70 0 if (len == 0 || *(SvPV_nolen(text)+reallen-1) == ';') {
70 0 if (len == 0 || *(SvPV_nolen(text)+reallen-1) == ';') {
1 69 if (len == 0 || *(SvPV_nolen(text)+reallen-1) == ';') {
3222 55 14 PUTMARK(SX_CODE);
55 0 PUTMARK(SX_CODE);
0 14 PUTMARK(SX_CODE);
3231 8 61 if(SvUTF8 (text))
3232 2 6 STORE_UTF8STR(SvPV_nolen(text), len);
2 0 STORE_UTF8STR(SvPV_nolen(text), len);
2 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
2 0 STORE_UTF8STR(SvPV_nolen(text), len);
2 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
2 0 STORE_UTF8STR(SvPV_nolen(text), len);
2 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 2 STORE_UTF8STR(SvPV_nolen(text), len);
2 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 6 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
4 2 STORE_UTF8STR(SvPV_nolen(text), len);
4 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 2 STORE_UTF8STR(SvPV_nolen(text), len);
1 5 STORE_UTF8STR(SvPV_nolen(text), len);
0 1 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 1 STORE_UTF8STR(SvPV_nolen(text), len);
4 1 STORE_UTF8STR(SvPV_nolen(text), len);
0 4 STORE_UTF8STR(SvPV_nolen(text), len);
0 4 STORE_UTF8STR(SvPV_nolen(text), len);
0 1 STORE_UTF8STR(SvPV_nolen(text), len);
4 2 STORE_UTF8STR(SvPV_nolen(text), len);
0 4 STORE_UTF8STR(SvPV_nolen(text), len);
4 0 STORE_UTF8STR(SvPV_nolen(text), len);
2 0 STORE_UTF8STR(SvPV_nolen(text), len);
0 2 STORE_UTF8STR(SvPV_nolen(text), len);
3234 58 3 STORE_SCALAR(SvPV_nolen(text), len);
46 12 STORE_SCALAR(SvPV_nolen(text), len);
46 0 STORE_SCALAR(SvPV_nolen(text), len);
0 12 STORE_SCALAR(SvPV_nolen(text), len);
46 12 STORE_SCALAR(SvPV_nolen(text), len);
46 0 STORE_SCALAR(SvPV_nolen(text), len);
0 12 STORE_SCALAR(SvPV_nolen(text), len);
58 0 STORE_SCALAR(SvPV_nolen(text), len);
46 12 STORE_SCALAR(SvPV_nolen(text), len);
0 46 STORE_SCALAR(SvPV_nolen(text), len);
46 0 STORE_SCALAR(SvPV_nolen(text), len);
12 0 STORE_SCALAR(SvPV_nolen(text), len);
0 12 STORE_SCALAR(SvPV_nolen(text), len);
0 3 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
3 0 STORE_SCALAR(SvPV_nolen(text), len);
3 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 3 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
3 0 STORE_SCALAR(SvPV_nolen(text), len);
0 3 STORE_SCALAR(SvPV_nolen(text), len);
0 3 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
3 0 STORE_SCALAR(SvPV_nolen(text), len);
0 3 STORE_SCALAR(SvPV_nolen(text), len);
3 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
0 0 STORE_SCALAR(SvPV_nolen(text), len);
3236 69 0 FREETMPS;
3273 7 12 if (svt == SVt_PVHV) {
3275 7 0 PUTMARK(SX_TIED_HASH); /* Introduces tied hash */
7 0 PUTMARK(SX_TIED_HASH); /* Introduces tied hash */
0 0 PUTMARK(SX_TIED_HASH); /* Introduces tied hash */
3276 6 6 } else if (svt == SVt_PVAV) {
3278 6 0 PUTMARK(SX_TIED_ARRAY); /* Introduces tied array */
6 0 PUTMARK(SX_TIED_ARRAY); /* Introduces tied array */
0 0 PUTMARK(SX_TIED_ARRAY); /* Introduces tied array */
3281 6 0 PUTMARK(SX_TIED_SCALAR); /* Introduces tied scalar */
6 0 PUTMARK(SX_TIED_SCALAR); /* Introduces tied scalar */
0 0 PUTMARK(SX_TIED_SCALAR); /* Introduces tied scalar */
3285 0 19 if (!(mg = mg_find(sv, mtype)))
3286 0 0 CROAK(("No magic '%c' found while storing tied %s", mtype,
0 0 CROAK(("No magic '%c' found while storing tied %s", mtype,
3303 18 1 obj = mg->mg_obj ? mg->mg_obj : newSV(0);
3304 0 19 if ((ret = store(aTHX_ cxt, obj)))
3331 0 2 if (!(mg = mg_find(sv, 'p')))
3338 1 1 if (mg->mg_ptr) {
3340 1 0 PUTMARK(SX_TIED_KEY);
1 0 PUTMARK(SX_TIED_KEY);
0 0 PUTMARK(SX_TIED_KEY);
3343 0 1 if ((ret = store(aTHX_ cxt, mg->mg_obj))) /* Extra () for -Wall, grr... */
3348 0 1 if ((ret = store(aTHX_ cxt, (SV *) mg->mg_ptr))) /* Idem, for -Wall */
3354 1 0 PUTMARK(SX_TIED_IDX);
1 0 PUTMARK(SX_TIED_IDX);
0 0 PUTMARK(SX_TIED_IDX);
3357 0 1 if ((ret = store(aTHX_ cxt, mg->mg_obj))) /* Idem, for -Wall */
3362 0 1 WLEN(idx);
0 0 WLEN(idx);
0 0 WLEN(idx);
0 0 WLEN(idx);
0 0 WLEN(idx);
1 0 WLEN(idx);
0 1 WLEN(idx);
0 1 WLEN(idx);
0 0 WLEN(idx);
3493 57 0 classname = HvNAME_get(pkg);
57 0 classname = HvNAME_get(pkg);
0 57 classname = HvNAME_get(pkg);
0 0 classname = HvNAME_get(pkg);
57 0 classname = HvNAME_get(pkg);
0 57 classname = HvNAME_get(pkg);
3527 4 53 if (!count) {
3536 0 4 if (hv_fetch(cxt->hclass, classname, len, FALSE))
3537 0 0 CROAK(("Too late to ignore hooks for %s class \"%s\"",
3555 52 1 pv = SvPV(ary[0], len2);
3560 8 45 if (gv && isGV(gv)) {
8 0 if (gv && isGV(gv)) {
3561 1 7 if (count > 1)
3580 41 45 for (i = 1; i < count; i++) {
3591 0 41 if (!SvROK(rsv))
3606 30 11 if ((fake_tag = (char *)ptr_table_fetch(cxt->pseen, xsv)))
3628 11 0 if (!recursed++) {
3629 11 0 PUTMARK(SX_HOOK);
11 0 PUTMARK(SX_HOOK);
0 0 PUTMARK(SX_HOOK);
3630 11 0 PUTMARK(flags);
11 0 PUTMARK(flags);
0 0 PUTMARK(flags);
3631 0 11 if (obj_type == SHT_EXTRA)
3632 0 0 PUTMARK(eflags);
0 0 PUTMARK(eflags);
0 0 PUTMARK(eflags);
3634 0 0 PUTMARK(flags);
0 0 PUTMARK(flags);
0 0 PUTMARK(flags);
3636 0 11 if ((ret = store(aTHX_ cxt, xsv))) /* Given by hook for us to store */
3641 0 11 if (!fake_tag)
3699 34 18 if (!known_class(aTHX_ cxt, classname, len, &classnum)) {
3711 34 18 if (((classnum == -1) ? len : classnum) > LG_SCALAR)
0 52 if (((classnum == -1) ? len : classnum) > LG_SCALAR)
3713 18 34 if (classnum != -1)
3715 0 52 if (len2 > LG_SCALAR)
3717 32 20 if (count > 1)
3719 0 52 if (count > (LG_SCALAR + 1))
3736 41 11 if (!recursed) {
3737 40 1 PUTMARK(SX_HOOK);
40 0 PUTMARK(SX_HOOK);
0 1 PUTMARK(SX_HOOK);
3738 40 1 PUTMARK(flags);
40 0 PUTMARK(flags);
0 1 PUTMARK(flags);
3739 1 40 if (obj_type == SHT_EXTRA)
3740 1 0 PUTMARK(eflags);
1 0 PUTMARK(eflags);
0 0 PUTMARK(eflags);
3742 11 0 PUTMARK(flags);
11 0 PUTMARK(flags);
0 0 PUTMARK(flags);
3745 18 34 if (flags & SHF_IDX_CLASSNAME) {
3746 0 18 if (flags & SHF_LARGE_CLASSLEN)
3747 0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
3750 18 0 PUTMARK(cnum);
18 0 PUTMARK(cnum);
0 0 PUTMARK(cnum);
3753 0 34 if (flags & SHF_LARGE_CLASSLEN)
3754 0 0 WLEN(len);
0 0 WLEN(len);
0 0 WLEN(len);
0 0 WLEN(len);
0 0 WLEN(len);
0 0 WLEN(len);
0 0 WLEN(len);
0 0 WLEN(len);
0 0 WLEN(len);
3757 33 1 PUTMARK(clen);
33 0 PUTMARK(clen);
0 1 PUTMARK(clen);
3759 33 1 WRITE(classname, len); /* Final \0 is omitted */
0 33 WRITE(classname, len); /* Final \0 is omitted */
0 1 WRITE(classname, len); /* Final \0 is omitted */
3763 0 52 if (flags & SHF_LARGE_STRLEN) {
3765 0 0 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
0 0 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
0 0 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
0 0 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
0 0 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
0 0 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
0 0 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
0 0 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
0 0 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
3768 51 1 PUTMARK(clen);
51 0 PUTMARK(clen);
0 1 PUTMARK(clen);
3770 24 28 if (len2)
3771 24 0 WRITE(pv, (SSize_t)len2); /* Final \0 is omitted */
0 24 WRITE(pv, (SSize_t)len2); /* Final \0 is omitted */
0 0 WRITE(pv, (SSize_t)len2); /* Final \0 is omitted */
3774 32 20 if (flags & SHF_HAS_LIST) {
3776 0 32 if (flags & SHF_LARGE_LISTLEN)
3777 0 0 WLEN(len3);
0 0 WLEN(len3);
0 0 WLEN(len3);
0 0 WLEN(len3);
0 0 WLEN(len3);
0 0 WLEN(len3);
0 0 WLEN(len3);
0 0 WLEN(len3);
0 0 WLEN(len3);
3780 32 0 PUTMARK(clen);
32 0 PUTMARK(clen);
0 0 PUTMARK(clen);
3788 41 32 for (i = 1; i < count; i++) {
3790 41 0 WRITE_I32(tagval);
0 41 WRITE_I32(tagval);
11 30 WRITE_I32(tagval);
0 0 WRITE_I32(tagval);
3800 32 20 if (count > 1)
3809 1 51 if (obj_type == SHT_EXTRA) {
3812 0 1 if (!(mg = mg_find(sv, mtype))) {
3814 0 0 CROAK(("No magic '%c' found while storing ref to tied %s with hook",
0 0 CROAK(("No magic '%c' found while storing ref to tied %s with hook",
3825 0 1 if ((ret = store(aTHX_ cxt, mg->mg_obj)))
3876 57 108 if (hook)
3883 108 0 classname = HvNAME_get(pkg);
108 0 classname = HvNAME_get(pkg);
0 108 classname = HvNAME_get(pkg);
0 0 classname = HvNAME_get(pkg);
108 0 classname = HvNAME_get(pkg);
0 108 classname = HvNAME_get(pkg);
3896 26 82 if (known_class(aTHX_ cxt, classname, len, &classnum)) {
3898 26 0 PUTMARK(SX_IX_BLESS);
26 0 PUTMARK(SX_IX_BLESS);
0 0 PUTMARK(SX_IX_BLESS);
3899 26 0 if (classnum <= LG_BLESS) {
3901 26 0 PUTMARK(cnum);
26 0 PUTMARK(cnum);
0 0 PUTMARK(cnum);
3904 0 0 PUTMARK(flag);
0 0 PUTMARK(flag);
0 0 PUTMARK(flag);
3905 0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
0 0 WLEN(classnum);
3910 69 13 PUTMARK(SX_BLESS);
69 0 PUTMARK(SX_BLESS);
0 13 PUTMARK(SX_BLESS);
3911 81 1 if (len <= LG_BLESS) {
3913 68 13 PUTMARK(clen);
68 0 PUTMARK(clen);
0 13 PUTMARK(clen);
3916 1 0 PUTMARK(flag);
1 0 PUTMARK(flag);
0 0 PUTMARK(flag);
3917 0 1 WLEN(len); /* Don't BER-encode, this should be rare */
0 0 WLEN(len); /* Don't BER-encode, this should be rare */
0 0 WLEN(len); /* Don't BER-encode, this should be rare */
0 0 WLEN(len); /* Don't BER-encode, this should be rare */
0 0 WLEN(len); /* Don't BER-encode, this should be rare */
1 0 WLEN(len); /* Don't BER-encode, this should be rare */
0 1 WLEN(len); /* Don't BER-encode, this should be rare */
0 1 WLEN(len); /* Don't BER-encode, this should be rare */
0 0 WLEN(len); /* Don't BER-encode, this should be rare */
3919 69 13 WRITE(classname, len); /* Final \0 is omitted */
0 69 WRITE(classname, len); /* Final \0 is omitted */
0 13 WRITE(classname, len); /* Final \0 is omitted */
3950 5 0 if (
3951 5 0 cxt->forgive_me == 0 ||
3952 3 2 (cxt->forgive_me < 0 &&
3953 3 0 !(cxt->forgive_me = SvTRUE
0 3 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
2 0 !(cxt->forgive_me = SvTRUE
0 2 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
2 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
3969 2 0 if (len < 80)
3970 2 0 STORE_SCALAR(buf, len);
1 1 STORE_SCALAR(buf, len);
1 0 STORE_SCALAR(buf, len);
0 1 STORE_SCALAR(buf, len);
1 1 STORE_SCALAR(buf, len);
1 0 STORE_SCALAR(buf, len);
0 1 STORE_SCALAR(buf, len);
2 0 STORE_SCALAR(buf, len);
1 1 STORE_SCALAR(buf, len);
0 1 STORE_SCALAR(buf, len);
0 1 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
0 0 STORE_SCALAR(buf, len);
4021 8 13 if ((SvFLAGS(sv) & (SVs_GMG|SVs_SMG|SVs_RMG)) ==
4022 2 6 (SVs_GMG|SVs_SMG|SVs_RMG) &&
4029 6 13 if ((SvFLAGS(sv) & (SVs_GMG|SVs_SMG|SVs_RMG)) ==
4030 6 0 (SVs_GMG|SVs_SMG|SVs_RMG) &&
4035 11 444 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
6 5 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
4039 116 1045 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
8 108 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
4093 5139 26731 if (svh) {
4096 5014 125 if (sv == &PL_sv_undef) {
4135 103 22 PUTMARK(SX_OBJECT);
103 0 PUTMARK(SX_OBJECT);
0 22 PUTMARK(SX_OBJECT);
4136 103 22 WRITE_I32(tagval);
0 103 WRITE_I32(tagval);
32 71 WRITE_I32(tagval);
0 22 WRITE_I32(tagval);
4171 161 31584 if (SvOBJECT(sv)) {
4247 92 374 if (cxt->netorder) {
4263 367 99 if (!cxt->fio) {
4269 367 99 WRITE( (unsigned char*) header, length);
0 367 WRITE( (unsigned char*) header, length);
0 99 WRITE( (unsigned char*) header, length);
4315 15 451 if (cxt->s_dirty)
4323 0 466 if (cxt->entry)
4338 0 466 if (!SvROK(sv))
4346 367 99 if (!f)
4347 22 345 MBUF_INIT(0);
4355 0 466 if (-1 == magic_write(aTHX_ cxt)) /* Emit magic and ILP info */
4375 363 98 if (!cxt->fio && res)
208 155 if (!cxt->fio && res)
4395 0 461 if (cxt->prev && !(cxt->optype & ST_CLONE))
0 0 if (cxt->prev && !(cxt->optype & ST_CLONE))
4433 2 8 if (
4434 2 0 cxt->ver_major != STORABLE_BIN_MAJOR &&
4437 2 0 CROAK(("Corrupted storable %s (binary v%d.%d), current is v%d.%d",
4442 4 4 CROAK(("Corrupted storable %s (binary v%d.%d)",
4467 18 0 GETMARK(idx); /* Index coded on a single char? */
18 0 GETMARK(idx); /* Index coded on a single char? */
0 0 GETMARK(idx); /* Index coded on a single char? */
4468 0 18 if (idx & 0x80)
4469 0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
4476 0 18 if (!sva)
4519 61 13 GETMARK(len); /* Length coded on a single char? */
61 0 GETMARK(len); /* Length coded on a single char? */
0 13 GETMARK(len); /* Length coded on a single char? */
4520 2 72 if (len & 0x80) {
4521 2 0 RLEN(len);
2 0 RLEN(len);
0 2 RLEN(len);
0 0 RLEN(len);
0 2 RLEN(len);
4523 1 1 if (len > I32_MAX)
4528 0 1 if (!classname)
4533 60 13 SAFEPVREAD(classname, (I32)len, malloced_classname);
60 0 SAFEPVREAD(classname, (I32)len, malloced_classname);
0 13 SAFEPVREAD(classname, (I32)len, malloced_classname);
4543 0 73 if (!av_store(cxt->aclass, cxt->classnum++, newSVpvn(classname, len))) {
4553 1 72 if (malloced_classname)
4608 55 1 GETMARK(flags);
55 0 GETMARK(flags);
0 1 GETMARK(flags);
4634 1 0 GETMARK(extra_type);
1 0 GETMARK(extra_type);
0 0 GETMARK(extra_type);
4655 0 56 SEEN0_NN(sv, 0); /* Don't bless yet */
4669 11 56 while (flags & SHF_NEED_RECURSE) {
4672 0 11 if (!rv)
4677 11 0 GETMARK(flags);
11 0 GETMARK(flags);
0 0 GETMARK(flags);
4680 18 38 if (flags & SHF_IDX_CLASSNAME) {
4688 0 18 if (flags & SHF_LARGE_CLASSLEN)
4689 0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
4691 18 0 GETMARK(idx);
18 0 GETMARK(idx);
0 0 GETMARK(idx);
4694 0 18 if (!sva)
4711 2 36 if (flags & SHF_LARGE_CLASSLEN)
4712 2 0 RLEN(len);
2 0 RLEN(len);
0 2 RLEN(len);
0 0 RLEN(len);
0 2 RLEN(len);
4714 35 1 GETMARK(len);
35 0 GETMARK(len);
0 1 GETMARK(len);
4717 1 37 if (len > I32_MAX) /* security */
4719 2 35 else if (len > LG_BLESS) { /* security: signed len */
4723 0 2 if (!classname)
4728 36 1 SAFEPVREAD(classname, (I32)len, malloced_classname);
35 1 SAFEPVREAD(classname, (I32)len, malloced_classname);
0 1 SAFEPVREAD(classname, (I32)len, malloced_classname);
4735 0 36 if (!av_store(cxt->aclass, cxt->classnum++,
4751 0 54 if (flags & SHF_LARGE_STRLEN)
4752 0 0 RLEN(len2);
0 0 RLEN(len2);
0 0 RLEN(len2);
0 0 RLEN(len2);
0 0 RLEN(len2);
4754 53 1 GETMARK(len2);
53 0 GETMARK(len2);
0 1 GETMARK(len2);
4757 20 34 if (len2) {
4758 20 0 SAFEREAD(SvPVX(frozen), len2, frozen);
20 0 SAFEREAD(SvPVX(frozen), len2, frozen);
0 0 SAFEREAD(SvPVX(frozen), len2, frozen);
4763 1 53 if (cxt->s_tainted) /* Is input source tainted? */
4764 0 1 SvTAINT(frozen);
0 0 SvTAINT(frozen);
4772 32 22 if (flags & SHF_HAS_LIST) {
4773 0 32 if (flags & SHF_LARGE_LISTLEN)
4774 0 0 RLEN(len3);
0 0 RLEN(len3);
0 0 RLEN(len3);
0 0 RLEN(len3);
0 0 RLEN(len3);
4776 32 0 GETMARK(len3);
32 0 GETMARK(len3);
0 0 GETMARK(len3);
4777 32 0 if (len3) {
4796 32 22 if (av) {
4799 41 32 for (i = 1; i <= len3; i++) { /* We leave [0] alone */
4804 41 0 READ_I32(tag);
41 0 READ_I32(tag);
11 30 READ_I32(tag);
0 0 READ_I32(tag);
4807 0 41 if (!svh) {
4808 0 0 if (tag == cxt->where_is_undef) {
4828 0 54 if (!(cxt->flags & FLAG_BLESS_OK)) {
4841 13 41 if (attach && isGV(attach)) {
13 0 if (attach && isGV(attach)) {
4845 1 12 if (av)
4859 12 0 if (attached &&
9 3 if (attached &&
4860 5 4 SvROK(attached) &&
4870 0 5 SEEN0_NN(sv, 0);
4873 5 0 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
0 5 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
4884 41 0 BLESS(sv, stash);
0 41 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
4887 2 39 if (!hook) {
4909 0 2 if (!hook)
4919 10 31 if (!av) {
4955 23 18 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
1 22 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
4963 40 1 if (!extra_type)
5041 2 485 if (cname)
5045 0 487 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
2 485 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
2 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 2 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
5047 0 485 if (!sv)
5067 483 2 if (cname) {
5098 12 0 if (sv) {
5127 1 33 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5128 0 34 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
1 33 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
1 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 1 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
5132 0 34 if (!sv)
5139 33 1 SvUPGRADE(rv, SVt_RV);
5147 34 0 stash = SvTYPE(sv) ? (HV *) SvSTASH (sv) : 0;
5148 0 34 if (!stash) {
5154 34 0 if (!Gv_AMG(stash)) {
34 0 if (!Gv_AMG(stash)) {
0 34 if (!Gv_AMG(stash)) {
0 0 if (!Gv_AMG(stash)) {
34 0 if (!Gv_AMG(stash)) {
0 34 if (!Gv_AMG(stash)) {
34 0 if (!Gv_AMG(stash)) {
0 34 if (!Gv_AMG(stash)) {
0 34 if (!Gv_AMG(stash)) {
5155 0 0 const char *package = HvNAME_get(stash);
0 0 const char *package = HvNAME_get(stash);
0 0 const char *package = HvNAME_get(stash);
0 0 const char *package = HvNAME_get(stash);
0 0 const char *package = HvNAME_get(stash);
0 0 const char *package = HvNAME_get(stash);
5159 0 0 if (!Gv_AMG(stash)) {
0 0 if (!Gv_AMG(stash)) {
0 0 if (!Gv_AMG(stash)) {
0 0 if (!Gv_AMG(stash)) {
0 0 if (!Gv_AMG(stash)) {
0 0 if (!Gv_AMG(stash)) {
0 0 if (!Gv_AMG(stash)) {
0 0 if (!Gv_AMG(stash)) {
0 0 if (!Gv_AMG(stash)) {
5188 4 0 if (sv) {
5212 0 4 if (!(cxt->flags & FLAG_TIE_OK)) {
5217 1 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5218 0 4 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
1 3 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
1 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 1 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
5220 0 4 if (!sv)
5246 0 4 if (!(cxt->flags & FLAG_TIE_OK)) {
5251 1 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5252 0 4 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
1 3 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
1 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 1 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
5254 0 4 if (!sv)
5280 0 4 if (!(cxt->flags & FLAG_TIE_OK)) {
5285 1 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5286 0 4 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
1 3 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
1 0 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
0 1 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if rv is null */
5288 0 4 if (!sv) {
5291 3 1 else if (SvTYPE(sv) != SVt_NULL) {
5298 3 1 if (obj) {
5323 0 1 if (!(cxt->flags & FLAG_TIE_OK)) {
5328 0 1 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5329 0 1 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 1 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
5331 0 1 if (!sv)
5335 0 1 if (!key)
5361 0 1 if (!(cxt->flags & FLAG_TIE_OK)) {
5366 0 1 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5367 0 1 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 1 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
0 0 SEEN_NN(tv, stash, 0); /* Will return if tv is null */
5369 0 1 if (!sv)
5372 1 0 RLEN(idx); /* Retrieve */
1 0 RLEN(idx); /* Retrieve */
0 1 RLEN(idx); /* Retrieve */
0 0 RLEN(idx); /* Retrieve */
0 1 RLEN(idx); /* Retrieve */
5398 11 3546 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5399 0 3557 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
11 3546 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
11 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
1 10 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
1 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
1 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 1 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
1 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 1 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
1 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 1 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
1 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
5401 4 3553 if (len == 0) {
5415 3434 119 SAFEREAD(SvPVX(sv), len, sv);
3424 10 SAFEREAD(SvPVX(sv), len, sv);
11 108 SAFEREAD(SvPVX(sv), len, sv);
5419 108 3424 if (cxt->s_tainted) /* Is input source tainted? */
5420 0 108 SvTAINT(sv); /* External data cannot be trusted */
0 0 SvTAINT(sv); /* External data cannot be trusted */
5423 10 3522 if (cname && len == 13 && strEQc(cname, "CGITempFile")
0 10 if (cname && len == 13 && strEQc(cname, "CGITempFile")
0 0 if (cname && len == 13 && strEQc(cname, "CGITempFile")
5424 0 0 && strEQc(SvPVX(sv), "mt-config.cgi")) {
5434 28 3504 if (isutf8) {
5469 3 1 RLEN(len);
3 0 RLEN(len);
0 3 RLEN(len);
0 1 RLEN(len);
1 3 RLEN(len);
5488 3408 121 GETMARK(len);
3406 2 GETMARK(len);
2 119 GETMARK(len);
5505 20 0 GETMARK(len);
20 0 GETMARK(len);
0 0 GETMARK(len);
5521 6 2 RLEN(len);
6 0 RLEN(len);
1 5 RLEN(len);
0 2 RLEN(len);
3 5 RLEN(len);
5542 1 0 GETMARK(len);
1 0 GETMARK(len);
0 0 GETMARK(len);
5545 1 0 READ(s, len);
1 0 READ(s, len);
0 0 READ(s, len);
5547 0 1 if (!sv)
5573 1 0 RLEN(len);
1 0 RLEN(len);
0 1 RLEN(len);
0 0 RLEN(len);
0 1 RLEN(len);
5578 1 0 SAFEPVREAD(s, len, s);
1 0 SAFEPVREAD(s, len, s);
0 0 SAFEPVREAD(s, len, s);
5581 0 1 if (!sv) {
5613 58 27 READ(&iv, sizeof(iv));
58 0 READ(&iv, sizeof(iv));
0 27 READ(&iv, sizeof(iv));
5615 0 85 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5616 0 85 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 85 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
5638 0 0 GETMARK(type);
0 0 GETMARK(type);
0 0 GETMARK(type);
5641 0 0 READ(&len, 8);
0 0 READ(&len, 8);
0 0 READ(&len, 8);
5700 13 13 READ_I32(iv);
13 0 READ_I32(iv);
0 13 READ_I32(iv);
0 13 READ_I32(iv);
5708 0 26 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5709 0 26 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 26 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
5730 8 8 READ(&nv, sizeof(nv));
8 0 READ(&nv, sizeof(nv));
0 8 READ(&nv, sizeof(nv));
5732 0 16 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5733 0 16 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 16 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
5756 124 35 GETMARK(siv);
124 0 GETMARK(siv);
0 35 GETMARK(siv);
5760 0 159 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5761 0 159 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 159 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 0 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
5782 2 17 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5783 0 19 SEEN_NN(sv, stash, 0);
2 17 SEEN_NN(sv, stash, 0);
2 0 SEEN_NN(sv, stash, 0);
0 2 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
5803 120 5015 if (cxt->where_is_undef == -1) {
5806 0 5135 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5807 0 5135 SEEN_NN(sv, stash, 1);
0 5135 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
5823 0 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5824 0 3 SEEN_NN(sv, stash, 1);
0 3 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
5840 0 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5841 0 3 SEEN_NN(sv, stash, 1);
0 3 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
0 0 SEEN_NN(sv, stash, 1);
5858 0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
0 0 SEEN_NN(&PL_sv_undef, cname, 1);
5886 147 18 RLEN(len);
147 0 RLEN(len);
63 84 RLEN(len);
0 18 RLEN(len);
16 149 RLEN(len);
5889 42 123 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5890 0 165 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
42 123 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
42 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
17 25 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
17 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
17 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 17 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
17 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 17 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
17 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 17 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
17 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
5891 132 33 if (len)
5900 2139 131 for (i = 0; i < len; i++) {
5903 0 2138 if (!sv)
5905 2 2136 if (sv == &PL_sv_undef) {
5909 0 2136 if (sv == &PL_sv_placeholder)
5911 0 2136 if (av_store(av, i, sv) == 0)
5914 1 130 if (seen_null) av_fill(av, len-1);
5938 0 0 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5939 0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
0 0 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
5947 0 0 for (i = 0; i < len; i++) {
5950 0 0 if (!sv)
5952 0 0 if (sv == &PL_sv_undef) {
5956 0 0 if (sv == &PL_sv_placeholder)
5958 0 0 if (av_store(av, i, sv) == 0)
5961 0 0 if (seen_null) av_fill(av, len-1);
6004 0 0 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6005 0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
6006 0 0 if (len == 0)
6015 0 0 for (i = 0; i < len; i++) {
6022 0 0 if (!sv)
6032 0 0 RLEN(size); /* Get key size */
0 0 RLEN(size); /* Get key size */
0 0 RLEN(size); /* Get key size */
0 0 RLEN(size); /* Get key size */
0 0 RLEN(size); /* Get key size */
6033 0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
6034 0 0 if (size)
6035 0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
6043 0 0 if (hv_store(hv, kbuf, (U32) size, sv, 0) == 0)
6078 177 23 RLEN(len);
177 0 RLEN(len);
49 128 RLEN(len);
0 23 RLEN(len);
16 184 RLEN(len);
6081 24 176 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6082 0 200 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
24 176 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
24 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 24 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
6083 13 187 if (len == 0)
6092 1756 186 for (i = 0; i < len; i++) {
6099 0 1755 if (!sv)
6109 1717 38 RLEN(size); /* Get key size */
1717 0 RLEN(size); /* Get key size */
426 1291 RLEN(size); /* Get key size */
0 38 RLEN(size); /* Get key size */
30 1725 RLEN(size); /* Get key size */
6110 0 1755 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
6111 1751 4 if (size)
6112 1713 38 READ(kbuf, size);
1713 0 READ(kbuf, size);
0 38 READ(kbuf, size);
6120 0 1755 if (hv_store(hv, kbuf, (U32) size, sv, 0) == 0)
6151 191 53 GETMARK(hash_flags);
189 2 GETMARK(hash_flags);
2 51 GETMARK(hash_flags);
6168 189 51 RLEN(len);
181 8 RLEN(len);
37 144 RLEN(len);
8 43 RLEN(len);
59 165 RLEN(len);
6171 6 218 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6172 0 224 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
6 218 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
6 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 6 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
6173 0 224 if (len == 0)
6182 5298 159 for (i = 0; i < len; i++) {
6191 28 5269 if (!sv)
6194 5229 40 GETMARK(flags);
5227 2 GETMARK(flags);
2 38 GETMARK(flags);
6196 5166 99 if ((hash_flags & SHV_RESTRICTED) && (flags & SHV_K_LOCKED))
5150 16 if ((hash_flags & SHV_RESTRICTED) && (flags & SHV_K_LOCKED))
6200 0 5265 if (flags & SHV_K_ISSV) {
6208 0 0 if (!keysv)
6211 0 0 if (!hv_store_ent(hv, keysv, sv, 0))
6221 5130 135 if (flags & SHV_K_PLACEHOLDER) {
6226 20 5245 if (flags & SHV_K_UTF8) {
6239 12 5253 if (flags & SHV_K_WASUTF8)
6243 5227 38 RLEN(size); /* Get key size */
5219 8 RLEN(size); /* Get key size */
1294 3925 RLEN(size); /* Get key size */
8 30 RLEN(size); /* Get key size */
54 5195 RLEN(size); /* Get key size */
6244 0 5249 KBUFCHK((STRLEN)size);/* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size);/* Grow hash key read pool if needed */
6245 5249 0 if (size)
6246 5219 30 READ(kbuf, size);
5211 8 READ(kbuf, size);
8 22 READ(kbuf, size);
6256 0 5233 if (hv_store_flags(hv, kbuf, size, sv, 0, store_flags) == 0)
6266 129 30 if (hash_flags & SHV_RESTRICTED)
6303 5 58 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6304 0 63 SEEN_NN(sv, stash, 0);
5 58 SEEN_NN(sv, stash, 0);
5 0 SEEN_NN(sv, stash, 0);
0 5 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
0 0 SEEN_NN(sv, stash, 0);
6311 48 15 GETMARK(type);
48 0 GETMARK(type);
0 15 GETMARK(type);
6329 1 62 if (!text) {
6338 7 55 if (SvUTF8(text))
6340 62 0 sv_catpv(sub, SvPV_nolen(text)); /* XXX no sv_catsv! */
6347 37 25 if (cxt->eval == NULL) {
6351 62 0 if (!SvTRUE(cxt->eval)) {
0 62 if (!SvTRUE(cxt->eval)) {
0 0 if (!SvTRUE(cxt->eval)) {
0 62 if (!SvTRUE(cxt->eval)) {
0 0 if (!SvTRUE(cxt->eval)) {
0 0 if (!SvTRUE(cxt->eval)) {
0 62 if (!SvTRUE(cxt->eval)) {
0 0 if (!SvTRUE(cxt->eval)) {
0 0 if (!SvTRUE(cxt->eval)) {
0 0 if (!SvTRUE(cxt->eval)) {
0 0 if (!SvTRUE(cxt->eval)) {
0 0 if (!SvTRUE(cxt->eval)) {
51 11 if (!SvTRUE(cxt->eval)) {
51 0 if (!SvTRUE(cxt->eval)) {
7 44 if (!SvTRUE(cxt->eval)) {
0 7 if (!SvTRUE(cxt->eval)) {
0 0 if (!SvTRUE(cxt->eval)) {
7 44 if (!SvTRUE(cxt->eval)) {
0 11 if (!SvTRUE(cxt->eval)) {
6352 7 0 if (cxt->forgive_me == 0 ||
7 0 if (cxt->forgive_me == 0 ||
6353 2 5 (cxt->forgive_me < 0 &&
6354 2 0 !(cxt->forgive_me = SvTRUE
0 2 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
5 0 !(cxt->forgive_me = SvTRUE
0 5 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
5 0 !(cxt->forgive_me = SvTRUE
0 0 !(cxt->forgive_me = SvTRUE
6371 11 44 if (SvROK(cxt->eval) && SvTYPE(SvRV(cxt->eval)) == SVt_PVCV) {
11 0 if (SvROK(cxt->eval) && SvTYPE(SvRV(cxt->eval)) == SVt_PVCV) {
6372 0 11 PUSHMARK(sp);
6373 0 11 XPUSHs(sv_2mortal(newSVsv(sub)));
6376 0 11 if (count != 1)
6385 55 0 if (SvTRUE(errsv)) {
0 55 if (SvTRUE(errsv)) {
0 55 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
55 0 if (SvTRUE(errsv)) {
55 0 if (SvTRUE(errsv)) {
53 2 if (SvTRUE(errsv)) {
0 53 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
2 53 if (SvTRUE(errsv)) {
6386 2 0 CROAK(("code %s caused an error: %s",
2 0 CROAK(("code %s caused an error: %s",
6390 53 0 if (cv && SvROK(cv) && SvTYPE(SvRV(cv)) == SVt_PVCV) {
53 0 if (cv && SvROK(cv) && SvTYPE(SvRV(cv)) == SVt_PVCV) {
53 0 if (cv && SvROK(cv) && SvTYPE(SvRV(cv)) == SVt_PVCV) {
6393 0 0 CROAK(("code %s did not evaluate to a subroutine reference\n",
6400 53 0 FREETMPS;
6434 0 1 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 1 RLEN(len);
1 0 RLEN(len);
6437 0 1 SEEN0_NN(av, 0); /* Will return if array not allocated nicely */
6438 1 0 if (len)
6447 1 0 for (i = 0; i < len; i++) {
6448 0 1 GETMARK(c);
0 0 GETMARK(c);
0 1 GETMARK(c);
6449 0 1 if (c == SX_IT_UNDEF) {
6453 1 0 if (c != SX_ITEM)
6457 0 0 if (!sv)
6459 0 0 if (av_store(av, i, sv) == 0)
6497 0 1 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 1 RLEN(len);
1 0 RLEN(len);
6500 0 1 SEEN0_NN(hv, 0); /* Will return if table not allocated properly */
6501 0 1 if (len == 0)
6510 1 0 for (i = 0; i < len; i++) {
6515 0 1 GETMARK(c);
0 0 GETMARK(c);
0 1 GETMARK(c);
6516 0 1 if (c == SX_VL_UNDEF) {
6523 0 0 if (!sv_h_undef)
6526 0 1 } else if (c == SX_VALUE) {
6529 0 0 if (!sv)
6541 0 0 GETMARK(c);
0 0 GETMARK(c);
0 0 GETMARK(c);
6542 0 0 if (c != SX_KEY)
6544 0 0 RLEN(size); /* Get key size */
0 0 RLEN(size); /* Get key size */
0 0 RLEN(size); /* Get key size */
0 0 RLEN(size); /* Get key size */
0 0 RLEN(size); /* Get key size */
6545 0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
6546 0 0 if (size)
6547 0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
6555 0 0 if (hv_store(hv, kbuf, (U32) size, sv, 0) == 0)
6605 195 466 if (cxt->fio) {
6611 0 195 READ(buf, (SSize_t)(len)); /* Not null-terminated */
0 0 READ(buf, (SSize_t)(len)); /* Not null-terminated */
11 184 READ(buf, (SSize_t)(len)); /* Not null-terminated */
6616 2 182 if (memNE(buf, magicstr, len)) {
6625 0 2 READ(current + 1, (SSize_t)(old_len - len));
0 0 READ(current + 1, (SSize_t)(old_len - len));
0 2 READ(current + 1, (SSize_t)(old_len - len));
6627 2 0 if (memNE(buf, old_magicstr, old_len))
6634 466 0 GETMARK(use_network_order);
464 2 GETMARK(use_network_order);
0 0 GETMARK(use_network_order);
6642 0 646 if (old_magic && use_network_order > 1) {
0 0 if (old_magic && use_network_order > 1) {
6649 644 2 cxt->retrieve_vtbl = (SV*(**)(pTHX_ stcxt_t *cxt, const char *cname)) (version_major > 0 ? sv_retrieve : sv_old_retrieve);
6659 643 3 if (version_major > 1)
6660 463 180 GETMARK(version_minor);
461 2 GETMARK(version_minor);
2 178 GETMARK(version_minor);
6674 632 10 if (
6675 629 3 version_major > STORABLE_BIN_MAJOR ||
6676 16 613 (version_major == STORABLE_BIN_MAJOR &&
6683 16 10 if (version_major == STORABLE_BIN_MAJOR) {
6686 16 0 if (cxt->accept_future_minor < 0)
6688 0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
16 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
8 8 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 8 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
8 8 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
6691 8 8 if (cxt->accept_future_minor == 1)
6694 18 8 if (croak_now) {
6706 167 457 if ((cxt->netorder = (use_network_order & 0x1))) /* Extra () for -Wall */
6710 457 0 use_NV_size = version_major >= 2 && version_minor >= 2;
457 0 use_NV_size = version_major >= 2 && version_minor >= 2;
6712 457 0 if (version_major >= 0) {
6713 358 99 GETMARK(c);
357 1 GETMARK(c);
1 98 GETMARK(c);
6719 357 98 READ(buf, length); /* Not null-terminated */
345 12 READ(buf, length); /* Not null-terminated */
12 86 READ(buf, length); /* Not null-terminated */
6733 431 0 if ((c != (sizeof (byteorderstr) - 1))
6734 2 429 || memNE(buf, byteorderstr, c))
6741 2 427 if ((int) *current++ != sizeof(int))
6745 2 425 if ((int) *current++ != sizeof(long))
6749 2 423 if ((int) *current != sizeof(char *))
6752 423 0 if (use_NV_size) {
6754 2 421 if ((int) *++current != sizeof(NV))
6786 2 10420 if (cxt->hseen) { /* Retrieving old binary */
6788 2 0 if (cxt->netorder) {
6790 0 2 READ(&nettag, sizeof(I32)); /* Ordered sequence of I32 */
0 0 READ(&nettag, sizeof(I32)); /* Ordered sequence of I32 */
0 2 READ(&nettag, sizeof(I32)); /* Ordered sequence of I32 */
6793 0 0 READ(&tag, sizeof(stag_t)); /* Original address of the SV */
0 0 READ(&tag, sizeof(stag_t)); /* Original address of the SV */
0 0 READ(&tag, sizeof(stag_t)); /* Original address of the SV */
6795 0 2 GETMARK(type);
0 0 GETMARK(type);
0 2 GETMARK(type);
6796 0 2 if (type == SX_OBJECT) {
6799 0 0 if (!svh)
6802 0 0 tagn = SvIV(*svh); /* Mapped tag number computed earlier below */
6809 0 0 if (!svh)
6826 0 2 if (!hv_store(cxt->hseen, (char *) &tag, sizeof(tag),
6837 9996 424 GETMARK(type);
9992 4 GETMARK(type);
4 420 GETMARK(type);
6845 99 10313 if (type == SX_OBJECT) {
6847 77 22 READ_I32(tag);
77 0 READ_I32(tag);
27 50 READ_I32(tag);
0 22 READ_I32(tag);
6850 0 99 if (!svh)
6857 12 10301 } else if (type >= SX_ERROR && cxt->ver_minor > STORABLE_BIN_MINOR) {
4 8 } else if (type >= SX_ERROR && cxt->ver_minor > STORABLE_BIN_MINOR) {
6858 4 0 if (cxt->accept_future_minor < 0)
6860 0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
4 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 4 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
4 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
0 0 = (SvTRUE(get_sv("Storable::accept_future_minor",
6863 4 0 if (cxt->accept_future_minor == 1) {
6877 10303 8 sv = RETRIEVE(cxt, type)(aTHX_ cxt, cname);
6878 109 10172 if (!sv)
6893 38 10134 if (cxt->ver_major < 2) {
6894 0 45 while ((type = GETCHAR()) != SX_STORED) {
45 0 while ((type = GETCHAR()) != SX_STORED) {
7 38 while ((type = GETCHAR()) != SX_STORED) {
6899 7 0 GETMARK(len); /* Length coded on a single char */
7 0 GETMARK(len); /* Length coded on a single char */
0 0 GETMARK(len); /* Length coded on a single char */
6902 0 0 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
6908 0 7 KBUFCHK((STRLEN)len); /* Grow buffer as necessary */
0 0 KBUFCHK((STRLEN)len); /* Grow buffer as necessary */
6909 7 0 if (len)
6910 7 0 READ(kbuf, len);
7 0 READ(kbuf, len);
0 0 READ(kbuf, len);
6913 7 0 BLESS(sv, stash);
0 7 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
0 0 BLESS(sv, stash);
6964 89 573 if (cxt->s_dirty)
6972 0 662 if (cxt->entry) {
6990 27 635 KBUFINIT(); /* Allocate hash key reading pool once */
6992 467 195 if (!f && in) {
312 155 if (!f && in) {
6994 2 310 if (SvUTF8(in)) {
6996 2 0 const char *orig = SvPV(in, length);
7012 1 1 if (is_utf8) {
7015 1 0 if (asbytes != orig) {
7022 1 0 SvUPGRADE(in, SVt_PV);
7030 0 311 MBUF_SAVE_AND_LOAD(in);
311 0 MBUF_SAVE_AND_LOAD(in);
7043 43 588 if (!magic_check(aTHX_ cxt))
7044 26 17 CROAK(("Magic number checking on storable %s failed",
7060 434 154 is_tainted = f ? 1 : (in ? SvTAINTED(in) : cxt->s_tainted);
279 155 is_tainted = f ? 1 : (in ? SvTAINTED(in) : cxt->s_tainted);
0 279 is_tainted = f ? 1 : (in ? SvTAINTED(in) : cxt->s_tainted);
0 0 is_tainted = f ? 1 : (in ? SvTAINTED(in) : cxt->s_tainted);
7072 414 145 if (!f && in)
259 155 if (!f && in)
7082 0 559 if (cxt->prev) /* This context was stacked */
7089 89 470 if (!sv) {
7121 0 470 if (pre_06_fmt) { /* Was not handling overloading by then */
7124 0 0 if (sv_type(aTHX_ sv) == svis_REF && (rv = SvRV(sv)) && SvOBJECT(rv)) {
0 0 if (sv_type(aTHX_ sv) == svis_REF && (rv = SvRV(sv)) && SvOBJECT(rv)) {
0 0 if (sv_type(aTHX_ sv) == svis_REF && (rv = SvRV(sv)) && SvOBJECT(rv)) {
7147 35 435 if (SvOBJECT(sv)) {
7150 35 0 if (stash && Gv_AMG(stash)) {
35 0 if (stash && Gv_AMG(stash)) {
35 0 if (stash && Gv_AMG(stash)) {
0 35 if (stash && Gv_AMG(stash)) {
0 0 if (stash && Gv_AMG(stash)) {
35 0 if (stash && Gv_AMG(stash)) {
0 35 if (stash && Gv_AMG(stash)) {
35 0 if (stash && Gv_AMG(stash)) {
33 2 if (stash && Gv_AMG(stash)) {
2 33 if (stash && Gv_AMG(stash)) {
7213 1 154 if (cxt->s_dirty)
7220 2 153 if ((SvTYPE(sv) == SVt_PVLV
7224 2 0 ) && (SvFLAGS(sv) & (SVs_GMG|SVs_SMG|SVs_RMG)) ==
7225 2 0 (SVs_GMG|SVs_SMG|SVs_RMG) &&
7235 0 155 if (!do_store(aTHX_ (PerlIO*) 0, sv, ST_CLONE, FALSE, (SV**) 0))
7256 0 155 MBUF_INIT(size);
155 0 MBUF_INIT(size);
7266 2 153 cxt->s_tainted = SvTAINTED(sv);
0 2 cxt->s_tainted = SvTAINTED(sv);
7298 0 0 if (kbuf)
7300 0 0 if (!cxt->membuf_ro && mbase)
0 0 if (!cxt->membuf_ro && mbase)
7302 0 0 if (cxt->membuf_ro && (cxt->msaved).arena)
0 0 if (cxt->membuf_ro && (cxt->msaved).arena)
7351 98 0 RETVAL = do_store(aTHX_ f, obj, 0, ix, (SV **)0) ? &PL_sv_yes : &PL_sv_undef;
7374 0 208 if (!do_store(aTHX_ (PerlIO*) 0, obj, 0, ix, &RETVAL))
7413 0 5 if (ix) {
7416 0 0 result = cxt->entry && (cxt->optype & ix) ? TRUE : FALSE;
0 0 result = cxt->entry && (cxt->optype & ix) ? TRUE : FALSE;
7420 3 2 ST(0) = boolSV(result);