Branch Coverage

Storable.xs
Criterion Covered Total %
branch 1547 3754 41.2


line true false branch
1589 518 0 if (cxt->hclass) {
1591 169 518 while ((he = hv_iternext(cxt->hclass))) /* Extra () for -Wall */
1606 518 0 if (cxt->pseen) {
1621 518 0 if (cxt->hclass) {
1628 518 0 if (cxt->hook) {
1635 518 0 if (cxt->hook_seen) {
1644 0 518 if (cxt->eval) {
1686 2 637 ? newHV() : 0);
1717 637 0 if (cxt->aseen) {
1725 637 0 if (cxt->aclass) {
1732 637 0 if (cxt->hook) {
1739 2 635 if (cxt->hseen) {
1769 51 55 if (cxt->membuf_ro)
1774 27 79 if (cxt->optype & ST_RETRIEVE)
1776 6 73 else if (cxt->optype & ST_STORE)
1816 79 0 stcxt_t *prev = (stcxt_t *)(cxt->prev ? SvPVX(SvRV(cxt->prev)) : 0);
1896 242 0 const char *hvname = HvNAME_get(pkg);
242 0 const char *hvname = HvNAME_get(pkg);
0 242 const char *hvname = HvNAME_get(pkg);
0 0 const char *hvname = HvNAME_get(pkg);
242 0 const char *hvname = HvNAME_get(pkg);
0 242 const char *hvname = HvNAME_get(pkg);
1905 157 85 if (gv && isGV(gv)) {
157 0 if (gv && isGV(gv)) {
1920 85 157 return SvOK(sv) ? sv : (SV *) 0;
85 0 return SvOK(sv) ? sv : (SV *) 0;
0 85 return SvOK(sv) ? sv : (SV *) 0;
1933 5 0 const char *hvname = HvNAME_get(pkg);
5 0 const char *hvname = HvNAME_get(pkg);
0 5 const char *hvname = HvNAME_get(pkg);
0 0 const char *hvname = HvNAME_get(pkg);
5 0 const char *hvname = HvNAME_get(pkg);
0 5 const char *hvname = HvNAME_get(pkg);
1949 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);
1969 312 0 const char *hvname = HvNAME_get(pkg);
312 0 const char *hvname = HvNAME_get(pkg);
0 312 const char *hvname = HvNAME_get(pkg);
0 0 const char *hvname = HvNAME_get(pkg);
312 0 const char *hvname = HvNAME_get(pkg);
0 312 const char *hvname = HvNAME_get(pkg);
1982 70 242 if (svh) {
1984 32 38 if (!SvOK(sv)) {
32 0 if (!SvOK(sv)) {
32 0 if (!SvOK(sv)) {
2020 0 101 PUSHMARK(sp);
2021 0 101 XPUSHs(obj);
2022 0 101 XPUSHs(sv_2mortal(newSViv(cloning))); /* Cloning flag */
2023 101 0 if (av) {
2027 0 101 XPUSHs(ary[0]); /* Frozen string */
2028 97 101 for (i = 1; i < cnt; i++) {
2031 0 97 XPUSHs(sv_2mortal(newRV_inc(ary[i])));
2042 12 89 if (count) {
2048 101 0 FREETMPS;
2075 0 106 PUSHMARK(sp);
2076 0 106 XPUSHs(obj); /* Target object */
2077 0 106 XPUSHs(sv_2mortal(newSViv(cloning))); /* Cloning flag */
2085 200 106 for (i = count - 1; i >= 0; i--) {
2091 106 0 FREETMPS;
2187 46 169 if (svh) {
2197 0 169 if (!hv_store(hclass, name, len, INT2PTR(SV*, cxt->classnum), 0))
2225 16 13033 if (SvWEAKREF(sv))
2232 174 12875 if (SvOBJECT(sv)) {
2234 174 0 if (stash && Gv_AMG(stash)) {
174 0 if (stash && Gv_AMG(stash)) {
174 0 if (stash && Gv_AMG(stash)) {
0 174 if (stash && Gv_AMG(stash)) {
0 0 if (stash && Gv_AMG(stash)) {
174 0 if (stash && Gv_AMG(stash)) {
0 174 if (stash && Gv_AMG(stash)) {
174 0 if (stash && Gv_AMG(stash)) {
141 33 if (stash && Gv_AMG(stash)) {
2236 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);
2238 128 13 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
128 0 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
0 128 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);
2240 12819 56 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
12816 3 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
6 12810 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
0 3 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);
2244 13049 0 if (cxt->entry && cxt->recur_sv == sv) {
42 13007 if (cxt->entry && cxt->recur_sv == sv) {
2245 0 42 if (++cxt->recur_depth > MAX_DEPTH) {
2255 12306 0 if (cxt->entry && cxt->recur_sv == sv && cxt->recur_depth > 0) {
6046 6260 if (cxt->entry && cxt->recur_sv == sv && cxt->recur_depth > 0) {
5540 506 if (cxt->entry && cxt->recur_sv == sv && cxt->recur_depth > 0) {
2295 5146 20621 if (!(flags & SVf_OK)) { /* !SvOK(sv) */
2296 5125 21 if (sv == &PL_sv_undef) {
2298 5125 0 PUTMARK(SX_SV_UNDEF);
5125 0 PUTMARK(SX_SV_UNDEF);
0 0 PUTMARK(SX_SV_UNDEF);
2301 16 5 PUTMARK(SX_UNDEF);
16 0 PUTMARK(SX_UNDEF);
0 5 PUTMARK(SX_UNDEF);
2337 6 20615 if ((flags & SV_MAYBE_IMMORTAL) == SV_MAYBE_IMMORTAL) {
2338 3 3 if (sv == &PL_sv_yes) {
2340 3 0 PUTMARK(SX_SV_YES);
3 0 PUTMARK(SX_SV_YES);
0 0 PUTMARK(SX_SV_YES);
2341 3 0 } else if (sv == &PL_sv_no) {
2343 3 0 PUTMARK(SX_SV_NO);
3 0 PUTMARK(SX_SV_NO);
0 0 PUTMARK(SX_SV_NO);
2345 0 0 pv = SvPV(sv, len); /* We know it's SvPOK */
2348 20037 578 } else if (flags & SVf_POK) {
2351 548 30 } else if (
2362 548 0 iv = SvIV(sv);
2374 20 533 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) {
2385 503 30 if (iv >= -128 && iv <= 127) {
397 106 if (iv >= -128 && iv <= 127) {
2387 362 35 PUTMARK(SX_BYTE);
362 0 PUTMARK(SX_BYTE);
0 35 PUTMARK(SX_BYTE);
2388 362 35 PUTMARK(siv);
362 0 PUTMARK(siv);
0 35 PUTMARK(siv);
2390 49 87 } else if (cxt->netorder) {
2399 0 49 if (
0 0 if (
2402 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) ||
2404 27 6 (iv > (IV)0x7FFFFFFF) || (iv < -(IV)0x80000000)) {
2413 14 13 PUTMARK(SX_NETINT);
14 0 PUTMARK(SX_NETINT);
0 13 PUTMARK(SX_NETINT);
2414 14 13 WRITE_I32(niv);
0 14 WRITE_I32(niv);
0 14 WRITE_I32(niv);
0 13 WRITE_I32(niv);
2417 60 27 PUTMARK(SX_INTEGER);
60 0 PUTMARK(SX_INTEGER);
0 27 PUTMARK(SX_INTEGER);
2418 60 27 WRITE(&iv, sizeof(iv));
0 60 WRITE(&iv, sizeof(iv));
0 27 WRITE(&iv, sizeof(iv));
2422 30 0 } else if (flags & SVf_NOK) {
2435 26 4 SvIV_please(sv);
26 0 SvIV_please(sv);
0 26 SvIV_please(sv);
2436 5 25 if (SvIOK_notUV(sv)) {
2437 5 0 iv = SvIV(sv);
2440 25 0 nv = SvNV(sv);
2443 5 20 if (cxt->netorder) {
2448 12 8 PUTMARK(SX_DOUBLE);
12 0 PUTMARK(SX_DOUBLE);
0 8 PUTMARK(SX_DOUBLE);
2449 12 8 WRITE(&nv, sizeof(nv));
0 12 WRITE(&nv, sizeof(nv));
0 8 WRITE(&nv, sizeof(nv));
2453 0 0 } else if (flags & (SVp_POK | SVp_NOK | SVp_IOK)) {
2460 20037 47 pv = SvPV(sv, len);
2469 2 20082 if (SvMAGICAL(sv) && (mg = mg_find(sv, 'V'))) {
2 0 if (SvMAGICAL(sv) && (mg = mg_find(sv, 'V'))) {
2473 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,
2479 12 20072 if (SvUTF8 (sv))
2480 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);
2482 20072 0 STORE_SCALAR(pv, wlen);
19998 74 STORE_SCALAR(pv, wlen);
19998 0 STORE_SCALAR(pv, wlen);
0 74 STORE_SCALAR(pv, wlen);
19998 74 STORE_SCALAR(pv, wlen);
19998 0 STORE_SCALAR(pv, wlen);
0 74 STORE_SCALAR(pv, wlen);
20069 3 STORE_SCALAR(pv, wlen);
19997 72 STORE_SCALAR(pv, wlen);
1 19996 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);
2512 0 6363 if (len > 0x7fffffffu) {
2516 0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
2517 0 0 PUTMARK(SX_ARRAY);
0 0 PUTMARK(SX_ARRAY);
0 0 PUTMARK(SX_ARRAY);
2518 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);
2527 6344 19 PUTMARK(SX_ARRAY);
6344 0 PUTMARK(SX_ARRAY);
0 19 PUTMARK(SX_ARRAY);
2528 29 6334 WLEN(l);
22 7 WLEN(l);
0 22 WLEN(l);
2 20 WLEN(l);
0 7 WLEN(l);
6322 12 WLEN(l);
2 6320 WLEN(l);
623 5699 WLEN(l);
0 12 WLEN(l);
2534 6363 0 if (cxt->entry && cxt->recur_sv == (SV*)av) {
6291 72 if (cxt->entry && cxt->recur_sv == (SV*)av) {
2535 1 6290 if (++cxt->recur_depth > MAX_DEPTH) {
2549 21717 5862 for (i = 0; i < len; i++) {
2551 3 21714 if (!sav) {
2553 3 0 STORE_SV_UNDEF();
3 0 STORE_SV_UNDEF();
0 0 STORE_SV_UNDEF();
2562 0 21714 if (*sav == &PL_sv_undef) {
2565 0 0 PUTMARK(SX_SVUNDEF_ELEM);
0 0 PUTMARK(SX_SVUNDEF_ELEM);
0 0 PUTMARK(SX_SVUNDEF_ELEM);
2570 0 21214 if ((ret = store(aTHX_ cxt, *sav))) /* Extra () for -Wall */
2574 5862 0 if (cxt->entry && cxt->recur_sv == (SV*)av && cxt->recur_depth > 0) {
289 5573 if (cxt->entry && cxt->recur_sv == (SV*)av && cxt->recur_depth > 0) {
277 12 if (cxt->entry && cxt->recur_sv == (SV*)av && cxt->recur_depth > 0) {
2637 6528 112 ) ? 1 : 0);
23 6505 ) ? 1 : 0);
2649 0 6640 if (len > 0x7fffffffu) { /* keys > I32_MAX */
2661 0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
2662 0 0 if (flagged_hash) {
2663 0 0 PUTMARK(SX_FLAG_HASH);
0 0 PUTMARK(SX_FLAG_HASH);
0 0 PUTMARK(SX_FLAG_HASH);
2664 0 0 PUTMARK(hash_flags);
0 0 PUTMARK(hash_flags);
0 0 PUTMARK(hash_flags);
2666 0 0 PUTMARK(SX_HASH);
0 0 PUTMARK(SX_HASH);
0 0 PUTMARK(SX_HASH);
2668 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);
2677 135 6505 if (flagged_hash) {
2680 129 6 PUTMARK(SX_FLAG_HASH);
129 0 PUTMARK(SX_FLAG_HASH);
0 6 PUTMARK(SX_FLAG_HASH);
2681 129 6 PUTMARK(hash_flags);
129 0 PUTMARK(hash_flags);
0 6 PUTMARK(hash_flags);
2684 6481 24 PUTMARK(SX_HASH);
6481 0 PUTMARK(SX_HASH);
0 24 PUTMARK(SX_HASH);
2686 25 6615 WLEN(l);
11 14 WLEN(l);
0 11 WLEN(l);
4 7 WLEN(l);
0 14 WLEN(l);
6599 16 WLEN(l);
2 6597 WLEN(l);
5502 1097 WLEN(l);
0 16 WLEN(l);
2692 6640 0 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
6476 164 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
2693 1 6475 if (++cxt->recur_depth > MAX_DEPTH_HASH) {
2710 737 5902 riter = HvRITER_get(hv);
2711 737 5902 eiter = HvEITER_get(hv);
2725 913 5726 if (
2727 509 404 && (cxt->canonical == 1
2728 83 426 || (cxt->canonical < 0
2729 19 64 && (cxt->canonical =
2730 47 0 (SvTRUE(get_sv("Storable::canonical", GV_ADD))
0 47 (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))
2744 4783 423 for (i = 0; i < len; i++) {
2755 4783 423 for (i = 0; i < len; i++) {
2757 21 4762 int placeholders = (int)HvPLACEHOLDERS_get(hv);
2770 4765 18 if (he) {
2771 0 4765 if (!(val = HeVAL(he))) {
2778 0 18 if (placeholders-- < 0) {
2801 0 4783 if ((ret = store(aTHX_ cxt, val))) /* Extra () for -Wall, grr... */
2814 22 4761 if ((hash_flags & SHV_RESTRICTED)
2815 20 2 && SvTRULYREADONLY(val)) {
2819 4783 0 keyval = SvPV(key, keylen_tmp);
2827 14 4769 if (SvUTF8(key)) {
2842 5 9 if (keyval != keysave) {
2853 48 4735 if (flagged_hash) {
2854 40 8 PUTMARK(flags);
40 0 PUTMARK(flags);
0 8 PUTMARK(flags);
2866 18 4765 WLEN(keylen);
14 4 WLEN(keylen);
0 14 WLEN(keylen);
2 12 WLEN(keylen);
0 4 WLEN(keylen);
4761 4 WLEN(keylen);
0 4761 WLEN(keylen);
1170 3591 WLEN(keylen);
0 4 WLEN(keylen);
2867 4783 0 if (keylen)
2868 4775 8 WRITE(keyval, keylen);
0 4775 WRITE(keyval, keylen);
0 8 WRITE(keyval, keylen);
2869 5 4778 if (flags & SHV_K_WASUTF8)
2887 12036 5973 for (i = 0; i < len; i++) {
2893 12036 0 SV *val = (he ? hv_iterval(hv, he) : 0);
2895 0 12036 if (val == 0)
2898 0 11793 if ((ret = store_hentry(aTHX_ cxt, hv, i, he, hash_flags)))
2980 6396 0 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
5664 732 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
5529 135 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
2999 6920 5116 ) ? 1 : 0);
31 6889 ) ? 1 : 0);
3000 5116 6920 unsigned char flags = (((hash_flags & SHV_RESTRICTED)
3001 5110 6 && SvTRULYREADONLY(val))
3006 5104 6932 if (val == &PL_sv_placeholder) {
3023 0 11793 if ((ret = store(aTHX_ cxt, val)))
3025 0 11793 if (len == HEf_SVKEY) {
3031 9 11784 if (HEK_UTF8(hek))
3033 6 11787 if (HEK_WASUTF8(hek))
3046 5147 6646 if (flagged_hash) {
3047 5137 10 PUTMARK(flags);
5137 0 PUTMARK(flags);
0 10 PUTMARK(flags);
3059 0 11793 if (flags & SHV_K_ISSV) {
3060 0 0 if ((ret = store(aTHX_ cxt, key_sv)))
3063 28 11765 WLEN(len);
7 21 WLEN(len);
0 7 WLEN(len);
3 4 WLEN(len);
0 21 WLEN(len);
11739 26 WLEN(len);
1 11738 WLEN(len);
2896 8843 WLEN(len);
0 26 WLEN(len);
3064 11789 4 if (len)
3065 11742 47 WRITE(key, len);
5 11737 WRITE(key, len);
0 47 WRITE(key, len);
3104 0 0 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
0 0 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
3105 0 0 if (++cxt->recur_depth > MAX_DEPTH_HASH) {
3115 0 0 for (i = 0; i <= (Size_t)HvMAX(hv); i++) {
3117 0 0 if (!entry) continue;
3118 0 0 if ((ret = store_hentry(aTHX_ cxt, hv, ix++, entry, hash_flags)))
3120 0 0 while ((entry = HeNEXT(entry))) {
3121 0 0 if ((ret = store_hentry(aTHX_ cxt, hv, ix++, entry, hash_flags)))
3125 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) {
3157 73 0 if (
3158 41 32 cxt->deparse == 0 ||
3159 3 38 (cxt->deparse < 0 &&
3161 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))
3181 0 70 PUSHMARK(sp);
3182 0 70 XPUSHs(newSVpvs_flags("B::Deparse", SVs_TEMP));
3186 0 70 if (count != 1)
3194 0 70 PUSHMARK(sp);
3195 0 70 XPUSHs(bdeparse); /* XXX is this already mortal? */
3196 0 70 XPUSHs(sv_2mortal(newRV_inc((SV*)cv)));
3200 0 70 if (count != 1)
3205 70 0 reallen = strlen(SvPV_nolen(text));
3212 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) == ';') {
3220 55 14 PUTMARK(SX_CODE);
55 0 PUTMARK(SX_CODE);
0 14 PUTMARK(SX_CODE);
3229 8 61 if(SvUTF8 (text))
3230 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);
3232 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);
3234 69 0 FREETMPS;
3271 7 12 if (svt == SVt_PVHV) {
3273 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 */
3274 6 6 } else if (svt == SVt_PVAV) {
3276 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 */
3279 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 */
3283 0 19 if (!(mg = mg_find(sv, mtype)))
3284 0 0 CROAK(("No magic '%c' found while storing tied %s", mtype,
0 0 CROAK(("No magic '%c' found while storing tied %s", mtype,
3301 18 1 obj = mg->mg_obj ? mg->mg_obj : newSV(0);
3302 0 19 if ((ret = store(aTHX_ cxt, obj)))
3329 0 2 if (!(mg = mg_find(sv, 'p')))
3336 1 1 if (mg->mg_ptr) {
3338 1 0 PUTMARK(SX_TIED_KEY);
1 0 PUTMARK(SX_TIED_KEY);
0 0 PUTMARK(SX_TIED_KEY);
3341 0 1 if ((ret = store(aTHX_ cxt, mg->mg_obj))) /* Extra () for -Wall, grr... */
3346 0 1 if ((ret = store(aTHX_ cxt, (SV *) mg->mg_ptr))) /* Idem, for -Wall */
3352 1 0 PUTMARK(SX_TIED_IDX);
1 0 PUTMARK(SX_TIED_IDX);
0 0 PUTMARK(SX_TIED_IDX);
3355 0 1 if ((ret = store(aTHX_ cxt, mg->mg_obj))) /* Idem, for -Wall */
3360 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);
3491 106 0 classname = HvNAME_get(pkg);
106 0 classname = HvNAME_get(pkg);
0 106 classname = HvNAME_get(pkg);
0 0 classname = HvNAME_get(pkg);
106 0 classname = HvNAME_get(pkg);
0 106 classname = HvNAME_get(pkg);
3525 5 101 if (!count) {
3534 0 5 if (hv_fetch(cxt->hclass, classname, len, FALSE))
3535 0 0 CROAK(("Too late to ignore hooks for %s class \"%s\"",
3553 100 1 pv = SvPV(ary[0], len2);
3558 8 93 if (gv && isGV(gv)) {
8 0 if (gv && isGV(gv)) {
3559 1 7 if (count > 1)
3578 98 93 for (i = 1; i < count; i++) {
3589 0 98 if (!SvROK(rsv))
3604 79 19 if ((fake_tag = (char *)ptr_table_fetch(cxt->pseen, xsv)))
3626 17 2 if (!recursed++) {
3627 17 0 PUTMARK(SX_HOOK);
17 0 PUTMARK(SX_HOOK);
0 0 PUTMARK(SX_HOOK);
3628 17 0 PUTMARK(flags);
17 0 PUTMARK(flags);
0 0 PUTMARK(flags);
3629 0 17 if (obj_type == SHT_EXTRA)
3630 0 0 PUTMARK(eflags);
0 0 PUTMARK(eflags);
0 0 PUTMARK(eflags);
3632 2 0 PUTMARK(flags);
2 0 PUTMARK(flags);
0 0 PUTMARK(flags);
3634 0 19 if ((ret = store(aTHX_ cxt, xsv))) /* Given by hook for us to store */
3639 0 19 if (!fake_tag)
3697 81 19 if (!known_class(aTHX_ cxt, classname, len, &classnum)) {
3709 81 19 if (((classnum == -1) ? len : classnum) > LG_SCALAR)
0 100 if (((classnum == -1) ? len : classnum) > LG_SCALAR)
3711 19 81 if (classnum != -1)
3713 24 76 if (len2 > LG_SCALAR)
3715 80 20 if (count > 1)
3717 0 100 if (count > (LG_SCALAR + 1))
3734 83 17 if (!recursed) {
3735 82 1 PUTMARK(SX_HOOK);
82 0 PUTMARK(SX_HOOK);
0 1 PUTMARK(SX_HOOK);
3736 82 1 PUTMARK(flags);
82 0 PUTMARK(flags);
0 1 PUTMARK(flags);
3737 1 82 if (obj_type == SHT_EXTRA)
3738 1 0 PUTMARK(eflags);
1 0 PUTMARK(eflags);
0 0 PUTMARK(eflags);
3740 17 0 PUTMARK(flags);
17 0 PUTMARK(flags);
0 0 PUTMARK(flags);
3743 19 81 if (flags & SHF_IDX_CLASSNAME) {
3744 0 19 if (flags & SHF_LARGE_CLASSLEN)
3745 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);
3748 19 0 PUTMARK(cnum);
19 0 PUTMARK(cnum);
0 0 PUTMARK(cnum);
3751 0 81 if (flags & SHF_LARGE_CLASSLEN)
3752 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);
3755 80 1 PUTMARK(clen);
80 0 PUTMARK(clen);
0 1 PUTMARK(clen);
3757 80 1 WRITE(classname, len); /* Final \0 is omitted */
0 80 WRITE(classname, len); /* Final \0 is omitted */
0 1 WRITE(classname, len); /* Final \0 is omitted */
3761 24 76 if (flags & SHF_LARGE_STRLEN) {
3763 0 24 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 */
24 0 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
0 24 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
0 24 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
0 0 WLEN(wlen2); /* Must write an I32 for 64-bit machines */
3766 75 1 PUTMARK(clen);
75 0 PUTMARK(clen);
0 1 PUTMARK(clen);
3768 66 34 if (len2)
3769 66 0 WRITE(pv, (SSize_t)len2); /* Final \0 is omitted */
0 66 WRITE(pv, (SSize_t)len2); /* Final \0 is omitted */
0 0 WRITE(pv, (SSize_t)len2); /* Final \0 is omitted */
3772 80 20 if (flags & SHF_HAS_LIST) {
3774 0 80 if (flags & SHF_LARGE_LISTLEN)
3775 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);
3778 80 0 PUTMARK(clen);
80 0 PUTMARK(clen);
0 0 PUTMARK(clen);
3786 98 80 for (i = 1; i < count; i++) {
3788 98 0 WRITE_I32(tagval);
0 98 WRITE_I32(tagval);
20 78 WRITE_I32(tagval);
0 0 WRITE_I32(tagval);
3798 80 20 if (count > 1)
3807 1 99 if (obj_type == SHT_EXTRA) {
3810 0 1 if (!(mg = mg_find(sv, mtype))) {
3812 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",
3823 0 1 if ((ret = store(aTHX_ cxt, mg->mg_obj)))
3874 106 115 if (hook)
3881 115 0 classname = HvNAME_get(pkg);
115 0 classname = HvNAME_get(pkg);
0 115 classname = HvNAME_get(pkg);
0 0 classname = HvNAME_get(pkg);
115 0 classname = HvNAME_get(pkg);
0 115 classname = HvNAME_get(pkg);
3894 27 88 if (known_class(aTHX_ cxt, classname, len, &classnum)) {
3896 27 0 PUTMARK(SX_IX_BLESS);
27 0 PUTMARK(SX_IX_BLESS);
0 0 PUTMARK(SX_IX_BLESS);
3897 27 0 if (classnum <= LG_BLESS) {
3899 27 0 PUTMARK(cnum);
27 0 PUTMARK(cnum);
0 0 PUTMARK(cnum);
3902 0 0 PUTMARK(flag);
0 0 PUTMARK(flag);
0 0 PUTMARK(flag);
3903 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);
3908 75 13 PUTMARK(SX_BLESS);
75 0 PUTMARK(SX_BLESS);
0 13 PUTMARK(SX_BLESS);
3909 87 1 if (len <= LG_BLESS) {
3911 74 13 PUTMARK(clen);
74 0 PUTMARK(clen);
0 13 PUTMARK(clen);
3914 1 0 PUTMARK(flag);
1 0 PUTMARK(flag);
0 0 PUTMARK(flag);
3915 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 */
3917 75 13 WRITE(classname, len); /* Final \0 is omitted */
0 75 WRITE(classname, len); /* Final \0 is omitted */
0 13 WRITE(classname, len); /* Final \0 is omitted */
3948 5 0 if (
3949 5 0 cxt->forgive_me == 0 ||
3950 3 2 (cxt->forgive_me < 0 &&
3951 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
3967 2 0 if (len < 80)
3968 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);
4019 8 13 if ((SvFLAGS(sv) & (SVs_GMG|SVs_SMG|SVs_RMG)) ==
4020 2 6 (SVs_GMG|SVs_SMG|SVs_RMG) &&
4027 6 13 if ((SvFLAGS(sv) & (SVs_GMG|SVs_SMG|SVs_RMG)) ==
4028 6 0 (SVs_GMG|SVs_SMG|SVs_RMG) &&
4033 11 6433 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
6 5 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
4037 116 6555 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
8 108 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
4091 5141 47002 if (svh) {
4094 5014 127 if (sv == &PL_sv_undef) {
4133 105 22 PUTMARK(SX_OBJECT);
105 0 PUTMARK(SX_OBJECT);
0 22 PUTMARK(SX_OBJECT);
4134 105 22 WRITE_I32(tagval);
0 105 WRITE_I32(tagval);
30 75 WRITE_I32(tagval);
0 22 WRITE_I32(tagval);
4169 216 51800 if (SvOBJECT(sv)) {
4245 92 427 if (cxt->netorder) {
4261 420 99 if (!cxt->fio) {
4267 420 99 WRITE( (unsigned char*) header, length);
0 420 WRITE( (unsigned char*) header, length);
0 99 WRITE( (unsigned char*) header, length);
4313 15 504 if (cxt->s_dirty)
4321 40 479 if (cxt->entry)
4336 0 519 if (!SvROK(sv))
4344 420 99 if (!f)
4345 63 357 MBUF_INIT(0);
4353 0 519 if (-1 == magic_write(aTHX_ cxt)) /* Emit magic and ILP info */
4373 414 98 if (!cxt->fio && res)
254 160 if (!cxt->fio && res)
4393 40 472 if (cxt->prev && !(cxt->optype & ST_CLONE))
39 1 if (cxt->prev && !(cxt->optype & ST_CLONE))
4431 2 8 if (
4432 2 0 cxt->ver_major != STORABLE_BIN_MAJOR &&
4435 2 0 CROAK(("Corrupted storable %s (binary v%d.%d), current is v%d.%d",
4440 4 4 CROAK(("Corrupted storable %s (binary v%d.%d)",
4465 19 0 GETMARK(idx); /* Index coded on a single char? */
19 0 GETMARK(idx); /* Index coded on a single char? */
0 0 GETMARK(idx); /* Index coded on a single char? */
4466 0 19 if (idx & 0x80)
4467 0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
4474 0 19 if (!sva)
4517 67 13 GETMARK(len); /* Length coded on a single char? */
67 0 GETMARK(len); /* Length coded on a single char? */
0 13 GETMARK(len); /* Length coded on a single char? */
4518 2 78 if (len & 0x80) {
4519 2 0 RLEN(len);
2 0 RLEN(len);
0 2 RLEN(len);
0 0 RLEN(len);
0 2 RLEN(len);
4521 1 1 if (len > I32_MAX)
4526 0 1 if (!classname)
4531 66 13 SAFEPVREAD(classname, (I32)len, malloced_classname);
66 0 SAFEPVREAD(classname, (I32)len, malloced_classname);
0 13 SAFEPVREAD(classname, (I32)len, malloced_classname);
4541 0 79 if (!av_store(cxt->aclass, cxt->classnum++, newSVpvn(classname, len))) {
4551 1 78 if (malloced_classname)
4606 103 1 GETMARK(flags);
103 0 GETMARK(flags);
0 1 GETMARK(flags);
4632 1 0 GETMARK(extra_type);
1 0 GETMARK(extra_type);
0 0 GETMARK(extra_type);
4653 0 104 SEEN0_NN(sv, 0); /* Don't bless yet */
4667 19 104 while (flags & SHF_NEED_RECURSE) {
4670 0 19 if (!rv)
4675 19 0 GETMARK(flags);
19 0 GETMARK(flags);
0 0 GETMARK(flags);
4678 19 85 if (flags & SHF_IDX_CLASSNAME) {
4686 0 19 if (flags & SHF_LARGE_CLASSLEN)
4687 0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
4689 19 0 GETMARK(idx);
19 0 GETMARK(idx);
0 0 GETMARK(idx);
4692 0 19 if (!sva)
4709 2 83 if (flags & SHF_LARGE_CLASSLEN)
4710 2 0 RLEN(len);
2 0 RLEN(len);
0 2 RLEN(len);
0 0 RLEN(len);
0 2 RLEN(len);
4712 82 1 GETMARK(len);
82 0 GETMARK(len);
0 1 GETMARK(len);
4715 1 84 if (len > I32_MAX) /* security */
4717 2 82 else if (len > LG_BLESS) { /* security: signed len */
4721 0 2 if (!classname)
4726 83 1 SAFEPVREAD(classname, (I32)len, malloced_classname);
82 1 SAFEPVREAD(classname, (I32)len, malloced_classname);
0 1 SAFEPVREAD(classname, (I32)len, malloced_classname);
4733 0 83 if (!av_store(cxt->aclass, cxt->classnum++,
4749 24 78 if (flags & SHF_LARGE_STRLEN)
4750 24 0 RLEN(len2);
24 0 RLEN(len2);
0 24 RLEN(len2);
0 0 RLEN(len2);
0 24 RLEN(len2);
4752 77 1 GETMARK(len2);
77 0 GETMARK(len2);
0 1 GETMARK(len2);
4755 62 40 if (len2) {
4756 62 0 SAFEREAD(SvPVX(frozen), len2, frozen);
62 0 SAFEREAD(SvPVX(frozen), len2, frozen);
0 0 SAFEREAD(SvPVX(frozen), len2, frozen);
4761 1 101 if (cxt->s_tainted) /* Is input source tainted? */
4762 0 1 SvTAINT(frozen);
0 0 SvTAINT(frozen);
4770 80 22 if (flags & SHF_HAS_LIST) {
4771 0 80 if (flags & SHF_LARGE_LISTLEN)
4772 0 0 RLEN(len3);
0 0 RLEN(len3);
0 0 RLEN(len3);
0 0 RLEN(len3);
0 0 RLEN(len3);
4774 80 0 GETMARK(len3);
80 0 GETMARK(len3);
0 0 GETMARK(len3);
4775 80 0 if (len3) {
4794 80 22 if (av) {
4797 98 80 for (i = 1; i <= len3; i++) { /* We leave [0] alone */
4802 98 0 READ_I32(tag);
98 0 READ_I32(tag);
20 78 READ_I32(tag);
0 0 READ_I32(tag);
4805 0 98 if (!svh) {
4806 0 0 if (tag == cxt->where_is_undef) {
4826 0 102 if (!(cxt->flags & FLAG_BLESS_OK)) {
4839 13 89 if (attach && isGV(attach)) {
13 0 if (attach && isGV(attach)) {
4843 1 12 if (av)
4857 12 0 if (attached &&
9 3 if (attached &&
4858 5 4 SvROK(attached) &&
4868 0 5 SEEN0_NN(sv, 0);
4871 5 0 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
0 5 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
4882 89 0 BLESS(sv, stash);
0 89 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);
4885 2 87 if (!hook) {
4907 0 2 if (!hook)
4917 10 79 if (!av) {
4953 70 19 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
1 69 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
4961 88 1 if (!extra_type)
5039 2 11215 if (cname)
5043 0 11217 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
2 11215 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 */
5045 0 11215 if (!sv)
5065 11213 2 if (cname) {
5096 12 0 if (sv) {
5125 1 33 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5126 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 */
5130 0 34 if (!sv)
5137 33 1 SvUPGRADE(rv, SVt_RV);
5145 34 0 stash = SvTYPE(sv) ? (HV *) SvSTASH (sv) : 0;
5146 0 34 if (!stash) {
5152 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)) {
5153 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);
5157 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)) {
5186 4 0 if (sv) {
5210 0 4 if (!(cxt->flags & FLAG_TIE_OK)) {
5215 1 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5216 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 */
5218 0 4 if (!sv)
5244 0 4 if (!(cxt->flags & FLAG_TIE_OK)) {
5249 1 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5250 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 */
5252 0 4 if (!sv)
5278 0 4 if (!(cxt->flags & FLAG_TIE_OK)) {
5283 1 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5284 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 */
5286 0 4 if (!sv) {
5289 3 1 else if (SvTYPE(sv) != SVt_NULL) {
5296 3 1 if (obj) {
5321 0 1 if (!(cxt->flags & FLAG_TIE_OK)) {
5326 0 1 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5327 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 */
5329 0 1 if (!sv)
5333 0 1 if (!key)
5359 0 1 if (!(cxt->flags & FLAG_TIE_OK)) {
5364 0 1 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5365 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 */
5367 0 1 if (!sv)
5370 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 */
5396 11 3162 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5397 0 3173 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
11 3162 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" */
5399 4 3169 if (len == 0) {
5413 3050 119 SAFEREAD(SvPVX(sv), len, sv);
3040 10 SAFEREAD(SvPVX(sv), len, sv);
11 108 SAFEREAD(SvPVX(sv), len, sv);
5417 108 3040 if (cxt->s_tainted) /* Is input source tainted? */
5418 0 108 SvTAINT(sv); /* External data cannot be trusted */
0 0 SvTAINT(sv); /* External data cannot be trusted */
5421 10 3138 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")
5422 0 0 && strEQc(SvPVX(sv), "mt-config.cgi")) {
5432 28 3120 if (isutf8) {
5467 3 1 RLEN(len);
3 0 RLEN(len);
0 3 RLEN(len);
0 1 RLEN(len);
1 3 RLEN(len);
5486 3024 121 GETMARK(len);
3022 2 GETMARK(len);
2 119 GETMARK(len);
5503 20 0 GETMARK(len);
20 0 GETMARK(len);
0 0 GETMARK(len);
5519 6 2 RLEN(len);
6 0 RLEN(len);
1 5 RLEN(len);
0 2 RLEN(len);
3 5 RLEN(len);
5540 1 0 GETMARK(len);
1 0 GETMARK(len);
0 0 GETMARK(len);
5543 1 0 READ(s, len);
1 0 READ(s, len);
0 0 READ(s, len);
5545 0 1 if (!sv)
5571 1 0 RLEN(len);
1 0 RLEN(len);
0 1 RLEN(len);
0 0 RLEN(len);
0 1 RLEN(len);
5576 1 0 SAFEPVREAD(s, len, s);
1 0 SAFEPVREAD(s, len, s);
0 0 SAFEPVREAD(s, len, s);
5579 0 1 if (!sv) {
5611 58 27 READ(&iv, sizeof(iv));
58 0 READ(&iv, sizeof(iv));
0 27 READ(&iv, sizeof(iv));
5613 0 85 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5614 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" */
5636 0 0 GETMARK(type);
0 0 GETMARK(type);
0 0 GETMARK(type);
5639 0 0 READ(&len, 8);
0 0 READ(&len, 8);
0 0 READ(&len, 8);
5698 13 13 READ_I32(iv);
13 0 READ_I32(iv);
0 13 READ_I32(iv);
0 13 READ_I32(iv);
5706 0 26 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5707 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" */
5728 8 8 READ(&nv, sizeof(nv));
8 0 READ(&nv, sizeof(nv));
0 8 READ(&nv, sizeof(nv));
5730 0 16 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5731 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" */
5754 136 35 GETMARK(siv);
136 0 GETMARK(siv);
0 35 GETMARK(siv);
5758 0 171 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5759 0 171 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 171 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" */
5780 2 19 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5781 0 21 SEEN_NN(sv, stash, 0);
2 19 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);
5801 120 5015 if (cxt->where_is_undef == -1) {
5804 0 5135 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5805 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);
5821 0 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5822 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);
5838 0 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5839 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);
5856 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);
5884 5644 18 RLEN(len);
5644 0 RLEN(len);
322 5322 RLEN(len);
0 18 RLEN(len);
16 5646 RLEN(len);
5887 42 5620 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5888 0 5662 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
42 5620 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 */
5889 5629 33 if (len)
5898 12332 5628 for (i = 0; i < len; i++) {
5901 0 12331 if (!sv)
5903 2 12329 if (sv == &PL_sv_undef) {
5907 0 12329 if (sv == &PL_sv_placeholder)
5909 0 12329 if (av_store(av, i, sv) == 0)
5912 1 5627 if (seen_null) av_fill(av, len-1);
5936 0 0 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5937 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 */
5945 0 0 for (i = 0; i < len; i++) {
5948 0 0 if (!sv)
5950 0 0 if (sv == &PL_sv_undef) {
5954 0 0 if (sv == &PL_sv_placeholder)
5956 0 0 if (av_store(av, i, sv) == 0)
5959 0 0 if (seen_null) av_fill(av, len-1);
6002 0 0 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6003 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 */
6004 0 0 if (len == 0)
6013 0 0 for (i = 0; i < len; i++) {
6020 0 0 if (!sv)
6030 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 */
6031 0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
6032 0 0 if (size)
6033 0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
6041 0 0 if (hv_store(hv, kbuf, (U32) size, sv, 0) == 0)
6076 5419 23 RLEN(len);
5419 0 RLEN(len);
5167 252 RLEN(len);
0 23 RLEN(len);
16 5426 RLEN(len);
6079 31 5411 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6080 0 5442 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
31 5411 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
31 0 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
0 31 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 */
6081 5016 426 if (len == 0)
6090 1923 425 for (i = 0; i < len; i++) {
6097 0 1922 if (!sv)
6107 1884 38 RLEN(size); /* Get key size */
1884 0 RLEN(size); /* Get key size */
472 1412 RLEN(size); /* Get key size */
0 38 RLEN(size); /* Get key size */
30 1892 RLEN(size); /* Get key size */
6108 0 1922 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
6109 1918 4 if (size)
6110 1880 38 READ(kbuf, size);
1880 0 READ(kbuf, size);
0 38 READ(kbuf, size);
6118 0 1922 if (hv_store(hv, kbuf, (U32) size, sv, 0) == 0)
6149 191 53 GETMARK(hash_flags);
189 2 GETMARK(hash_flags);
2 51 GETMARK(hash_flags);
6166 189 51 RLEN(len);
181 8 RLEN(len);
37 144 RLEN(len);
8 43 RLEN(len);
59 165 RLEN(len);
6169 6 218 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6170 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 */
6171 0 224 if (len == 0)
6180 5298 159 for (i = 0; i < len; i++) {
6189 28 5269 if (!sv)
6192 5229 40 GETMARK(flags);
5227 2 GETMARK(flags);
2 38 GETMARK(flags);
6194 5166 99 if ((hash_flags & SHV_RESTRICTED) && (flags & SHV_K_LOCKED))
5150 16 if ((hash_flags & SHV_RESTRICTED) && (flags & SHV_K_LOCKED))
6198 0 5265 if (flags & SHV_K_ISSV) {
6206 0 0 if (!keysv)
6209 0 0 if (!hv_store_ent(hv, keysv, sv, 0))
6219 5130 135 if (flags & SHV_K_PLACEHOLDER) {
6224 20 5245 if (flags & SHV_K_UTF8) {
6237 12 5253 if (flags & SHV_K_WASUTF8)
6241 5227 38 RLEN(size); /* Get key size */
5219 8 RLEN(size); /* Get key size */
1279 3940 RLEN(size); /* Get key size */
8 30 RLEN(size); /* Get key size */
54 5195 RLEN(size); /* Get key size */
6242 0 5249 KBUFCHK((STRLEN)size);/* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size);/* Grow hash key read pool if needed */
6243 5249 0 if (size)
6244 5219 30 READ(kbuf, size);
5211 8 READ(kbuf, size);
8 22 READ(kbuf, size);
6254 0 5233 if (hv_store_flags(hv, kbuf, size, sv, 0, store_flags) == 0)
6264 129 30 if (hash_flags & SHV_RESTRICTED)
6301 5 58 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6302 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);
6309 48 15 GETMARK(type);
48 0 GETMARK(type);
0 15 GETMARK(type);
6327 1 62 if (!text) {
6336 7 55 if (SvUTF8(text))
6338 62 0 sv_catpv(sub, SvPV_nolen(text)); /* XXX no sv_catsv! */
6345 37 25 if (cxt->eval == NULL) {
6349 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)) {
6350 7 0 if (cxt->forgive_me == 0 ||
7 0 if (cxt->forgive_me == 0 ||
6351 2 5 (cxt->forgive_me < 0 &&
6352 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
6369 11 44 if (SvROK(cxt->eval) && SvTYPE(SvRV(cxt->eval)) == SVt_PVCV) {
11 0 if (SvROK(cxt->eval) && SvTYPE(SvRV(cxt->eval)) == SVt_PVCV) {
6370 0 11 PUSHMARK(sp);
6371 0 11 XPUSHs(sv_2mortal(newSVsv(sub)));
6374 0 11 if (count != 1)
6383 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)) {
6384 2 0 CROAK(("code %s caused an error: %s",
2 0 CROAK(("code %s caused an error: %s",
6388 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) {
6391 0 0 CROAK(("code %s did not evaluate to a subroutine reference\n",
6398 53 0 FREETMPS;
6432 0 1 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 1 RLEN(len);
1 0 RLEN(len);
6435 0 1 SEEN0_NN(av, 0); /* Will return if array not allocated nicely */
6436 1 0 if (len)
6445 1 0 for (i = 0; i < len; i++) {
6446 0 1 GETMARK(c);
0 0 GETMARK(c);
0 1 GETMARK(c);
6447 0 1 if (c == SX_IT_UNDEF) {
6451 1 0 if (c != SX_ITEM)
6455 0 0 if (!sv)
6457 0 0 if (av_store(av, i, sv) == 0)
6495 0 1 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 1 RLEN(len);
1 0 RLEN(len);
6498 0 1 SEEN0_NN(hv, 0); /* Will return if table not allocated properly */
6499 0 1 if (len == 0)
6508 1 0 for (i = 0; i < len; i++) {
6513 0 1 GETMARK(c);
0 0 GETMARK(c);
0 1 GETMARK(c);
6514 0 1 if (c == SX_VL_UNDEF) {
6521 0 0 if (!sv_h_undef)
6524 0 1 } else if (c == SX_VALUE) {
6527 0 0 if (!sv)
6539 0 0 GETMARK(c);
0 0 GETMARK(c);
0 0 GETMARK(c);
6540 0 0 if (c != SX_KEY)
6542 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 */
6543 0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
6544 0 0 if (size)
6545 0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
6553 0 0 if (hv_store(hv, kbuf, (U32) size, sv, 0) == 0)
6603 195 517 if (cxt->fio) {
6609 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 */
6614 2 182 if (memNE(buf, magicstr, len)) {
6623 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));
6625 2 0 if (memNE(buf, old_magicstr, old_len))
6632 517 0 GETMARK(use_network_order);
515 2 GETMARK(use_network_order);
0 0 GETMARK(use_network_order);
6640 0 697 if (old_magic && use_network_order > 1) {
0 0 if (old_magic && use_network_order > 1) {
6647 695 2 cxt->retrieve_vtbl = (SV*(**)(pTHX_ stcxt_t *cxt, const char *cname)) (version_major > 0 ? sv_retrieve : sv_old_retrieve);
6657 694 3 if (version_major > 1)
6658 514 180 GETMARK(version_minor);
512 2 GETMARK(version_minor);
2 178 GETMARK(version_minor);
6672 683 10 if (
6673 680 3 version_major > STORABLE_BIN_MAJOR ||
6674 16 664 (version_major == STORABLE_BIN_MAJOR &&
6681 16 10 if (version_major == STORABLE_BIN_MAJOR) {
6684 16 0 if (cxt->accept_future_minor < 0)
6686 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",
6689 8 8 if (cxt->accept_future_minor == 1)
6692 18 8 if (croak_now) {
6704 167 508 if ((cxt->netorder = (use_network_order & 0x1))) /* Extra () for -Wall */
6708 508 0 use_NV_size = version_major >= 2 && version_minor >= 2;
508 0 use_NV_size = version_major >= 2 && version_minor >= 2;
6710 508 0 if (version_major >= 0) {
6711 409 99 GETMARK(c);
408 1 GETMARK(c);
1 98 GETMARK(c);
6717 408 98 READ(buf, length); /* Not null-terminated */
396 12 READ(buf, length); /* Not null-terminated */
12 86 READ(buf, length); /* Not null-terminated */
6731 482 0 if ((c != (sizeof (byteorderstr) - 1))
6732 2 480 || memNE(buf, byteorderstr, c))
6739 2 478 if ((int) *current++ != sizeof(int))
6743 2 476 if ((int) *current++ != sizeof(long))
6747 2 474 if ((int) *current != sizeof(char *))
6750 474 0 if (use_NV_size) {
6752 2 472 if ((int) *++current != sizeof(NV))
6784 2 31576 if (cxt->hseen) { /* Retrieving old binary */
6786 2 0 if (cxt->netorder) {
6788 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 */
6791 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 */
6793 0 2 GETMARK(type);
0 0 GETMARK(type);
0 2 GETMARK(type);
6794 0 2 if (type == SX_OBJECT) {
6797 0 0 if (!svh)
6800 0 0 tagn = SvIV(*svh); /* Mapped tag number computed earlier below */
6807 0 0 if (!svh)
6824 0 2 if (!hv_store(cxt->hseen, (char *) &tag, sizeof(tag),
6835 31152 424 GETMARK(type);
31148 4 GETMARK(type);
4 420 GETMARK(type);
6843 101 31467 if (type == SX_OBJECT) {
6845 79 22 READ_I32(tag);
79 0 READ_I32(tag);
26 53 READ_I32(tag);
0 22 READ_I32(tag);
6848 0 101 if (!svh)
6855 12 31455 } else if (type >= SX_ERROR && cxt->ver_minor > STORABLE_BIN_MINOR) {
4 8 } else if (type >= SX_ERROR && cxt->ver_minor > STORABLE_BIN_MINOR) {
6856 4 0 if (cxt->accept_future_minor < 0)
6858 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",
6861 4 0 if (cxt->accept_future_minor == 1) {
6875 31457 8 sv = RETRIEVE(cxt, type)(aTHX_ cxt, cname);
6876 109 31326 if (!sv)
6891 38 31288 if (cxt->ver_major < 2) {
6892 0 45 while ((type = GETCHAR()) != SX_STORED) {
45 0 while ((type = GETCHAR()) != SX_STORED) {
7 38 while ((type = GETCHAR()) != SX_STORED) {
6897 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 */
6900 0 0 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
6906 0 7 KBUFCHK((STRLEN)len); /* Grow buffer as necessary */
0 0 KBUFCHK((STRLEN)len); /* Grow buffer as necessary */
6907 7 0 if (len)
6908 7 0 READ(kbuf, len);
7 0 READ(kbuf, len);
0 0 READ(kbuf, len);
6911 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);
6962 89 624 if (cxt->s_dirty)
6970 39 674 if (cxt->entry) {
6988 68 645 KBUFINIT(); /* Allocate hash key reading pool once */
6990 518 195 if (!f && in) {
358 160 if (!f && in) {
6992 2 356 if (SvUTF8(in)) {
6994 2 0 const char *orig = SvPV(in, length);
7010 1 1 if (is_utf8) {
7013 1 0 if (asbytes != orig) {
7020 1 0 SvUPGRADE(in, SVt_PV);
7028 0 357 MBUF_SAVE_AND_LOAD(in);
357 0 MBUF_SAVE_AND_LOAD(in);
7041 43 639 if (!magic_check(aTHX_ cxt))
7042 26 17 CROAK(("Magic number checking on storable %s failed",
7058 485 154 is_tainted = f ? 1 : (in ? SvTAINTED(in) : cxt->s_tainted);
325 160 is_tainted = f ? 1 : (in ? SvTAINTED(in) : cxt->s_tainted);
0 325 is_tainted = f ? 1 : (in ? SvTAINTED(in) : cxt->s_tainted);
0 0 is_tainted = f ? 1 : (in ? SvTAINTED(in) : cxt->s_tainted);
7070 465 145 if (!f && in)
305 160 if (!f && in)
7080 40 570 if (cxt->prev) /* This context was stacked */
7087 89 521 if (!sv) {
7119 0 521 if (pre_06_fmt) { /* Was not handling overloading by then */
7122 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)) {
7145 81 440 if (SvOBJECT(sv)) {
7148 81 0 if (stash && Gv_AMG(stash)) {
81 0 if (stash && Gv_AMG(stash)) {
81 0 if (stash && Gv_AMG(stash)) {
0 81 if (stash && Gv_AMG(stash)) {
0 0 if (stash && Gv_AMG(stash)) {
81 0 if (stash && Gv_AMG(stash)) {
0 81 if (stash && Gv_AMG(stash)) {
81 0 if (stash && Gv_AMG(stash)) {
79 2 if (stash && Gv_AMG(stash)) {
2 79 if (stash && Gv_AMG(stash)) {
7211 2 160 if (cxt->s_dirty)
7218 2 160 if ((SvTYPE(sv) == SVt_PVLV
7222 2 0 ) && (SvFLAGS(sv) & (SVs_GMG|SVs_SMG|SVs_RMG)) ==
7223 2 0 (SVs_GMG|SVs_SMG|SVs_RMG) &&
7233 0 160 if (!do_store(aTHX_ (PerlIO*) 0, sv, ST_CLONE, FALSE, (SV**) 0))
7254 0 160 MBUF_INIT(size);
160 0 MBUF_INIT(size);
7264 2 158 cxt->s_tainted = SvTAINTED(sv);
0 2 cxt->s_tainted = SvTAINTED(sv);
7296 40 39 if (kbuf)
7298 79 0 if (!cxt->membuf_ro && mbase)
40 39 if (!cxt->membuf_ro && mbase)
7300 0 79 if (cxt->membuf_ro && (cxt->msaved).arena)
0 0 if (cxt->membuf_ro && (cxt->msaved).arena)
7349 98 0 RETVAL = do_store(aTHX_ f, obj, 0, ix, (SV **)0) ? &PL_sv_yes : &PL_sv_undef;
7372 0 254 if (!do_store(aTHX_ (PerlIO*) 0, obj, 0, ix, &RETVAL))
7411 4 5 if (ix) {
7414 2 2 result = cxt->entry && (cxt->optype & ix) ? TRUE : FALSE;
2 0 result = cxt->entry && (cxt->optype & ix) ? TRUE : FALSE;
7418 5 4 ST(0) = boolSV(result);