Branch Coverage

Storable.xs
Criterion Covered Total %
branch 1510 3754 40.2


line true false branch
1595 466 0 if (cxt->hclass) {
1597 116 466 while ((he = hv_iternext(cxt->hclass))) /* Extra () for -Wall */
1612 466 0 if (cxt->pseen) {
1627 466 0 if (cxt->hclass) {
1634 466 0 if (cxt->hook) {
1641 466 0 if (cxt->hook_seen) {
1650 0 466 if (cxt->eval) {
1692 2 586 ? newHV() : 0);
1723 586 0 if (cxt->aseen) {
1731 586 0 if (cxt->aclass) {
1738 586 0 if (cxt->hook) {
1745 2 584 if (cxt->hseen) {
1775 51 54 if (cxt->membuf_ro)
1780 27 78 if (cxt->optype & ST_RETRIEVE)
1782 5 73 else if (cxt->optype & ST_STORE)
1822 0 0 stcxt_t *prev = (stcxt_t *)(cxt->prev ? SvPVX(SvRV(cxt->prev)) : 0);
1902 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);
1911 62 80 if (gv && isGV(gv)) {
62 0 if (gv && isGV(gv)) {
1926 80 62 return SvOK(sv) ? sv : (SV *) 0;
80 0 return SvOK(sv) ? sv : (SV *) 0;
0 80 return SvOK(sv) ? sv : (SV *) 0;
1939 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);
1955 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);
1975 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);
1988 66 142 if (svh) {
1990 30 36 if (!SvOK(sv)) {
30 0 if (!SvOK(sv)) {
30 0 if (!SvOK(sv)) {
2026 0 53 PUSHMARK(sp);
2027 0 53 XPUSHs(obj);
2028 0 53 XPUSHs(sv_2mortal(newSViv(cloning))); /* Cloning flag */
2029 53 0 if (av) {
2033 0 53 XPUSHs(ary[0]); /* Frozen string */
2034 40 53 for (i = 1; i < cnt; i++) {
2037 0 40 XPUSHs(sv_2mortal(newRV_inc(ary[i])));
2048 12 41 if (count) {
2054 53 0 FREETMPS;
2081 0 57 PUSHMARK(sp);
2082 0 57 XPUSHs(obj); /* Target object */
2083 0 57 XPUSHs(sv_2mortal(newSViv(cloning))); /* Cloning flag */
2091 95 57 for (i = count - 1; i >= 0; i--) {
2097 57 0 FREETMPS;
2193 44 116 if (svh) {
2203 0 116 if (!hv_store(hclass, name, len, INT2PTR(SV*, cxt->classnum), 0))
2231 16 1537 if (SvWEAKREF(sv))
2238 168 1385 if (SvOBJECT(sv)) {
2240 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)) {
2242 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);
2244 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);
2246 1329 56 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
1329 0 PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
6 1323 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);
2250 1553 0 if (cxt->entry && cxt->recur_sv == sv) {
42 1511 if (cxt->entry && cxt->recur_sv == sv) {
2251 0 42 if (++cxt->recur_depth > MAX_DEPTH) {
2261 1550 0 if (cxt->entry && cxt->recur_sv == sv && cxt->recur_depth > 0) {
1038 512 if (cxt->entry && cxt->recur_sv == sv && cxt->recur_depth > 0) {
517 521 if (cxt->entry && cxt->recur_sv == sv && cxt->recur_depth > 0) {
2301 5144 20995 if (!(flags & SVf_OK)) { /* !SvOK(sv) */
2302 5125 19 if (sv == &PL_sv_undef) {
2304 5125 0 PUTMARK(SX_SV_UNDEF);
5125 0 PUTMARK(SX_SV_UNDEF);
0 0 PUTMARK(SX_SV_UNDEF);
2307 14 5 PUTMARK(SX_UNDEF);
14 0 PUTMARK(SX_UNDEF);
0 5 PUTMARK(SX_UNDEF);
2343 6 20989 if ((flags & SV_MAYBE_IMMORTAL) == SV_MAYBE_IMMORTAL) {
2344 3 3 if (sv == &PL_sv_yes) {
2346 3 0 PUTMARK(SX_SV_YES);
3 0 PUTMARK(SX_SV_YES);
0 0 PUTMARK(SX_SV_YES);
2347 3 0 } else if (sv == &PL_sv_no) {
2349 3 0 PUTMARK(SX_SV_NO);
3 0 PUTMARK(SX_SV_NO);
0 0 PUTMARK(SX_SV_NO);
2351 0 0 pv = SvPV(sv, len); /* We know it's SvPOK */
2354 20397 592 } else if (flags & SVf_POK) {
2357 562 30 } else if (
2368 562 0 iv = SvIV(sv);
2380 20 547 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) {
2391 517 30 if (iv >= -128 && iv <= 127) {
411 106 if (iv >= -128 && iv <= 127) {
2393 376 35 PUTMARK(SX_BYTE);
376 0 PUTMARK(SX_BYTE);
0 35 PUTMARK(SX_BYTE);
2394 376 35 PUTMARK(siv);
376 0 PUTMARK(siv);
0 35 PUTMARK(siv);
2396 49 87 } else if (cxt->netorder) {
2405 0 49 if (
0 0 if (
2408 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) ||
2410 27 6 (iv > (IV)0x7FFFFFFF) || (iv < -(IV)0x80000000)) {
2419 14 13 PUTMARK(SX_NETINT);
14 0 PUTMARK(SX_NETINT);
0 13 PUTMARK(SX_NETINT);
2420 14 13 WRITE_I32(niv);
0 14 WRITE_I32(niv);
0 14 WRITE_I32(niv);
0 13 WRITE_I32(niv);
2423 60 27 PUTMARK(SX_INTEGER);
60 0 PUTMARK(SX_INTEGER);
0 27 PUTMARK(SX_INTEGER);
2424 60 27 WRITE(&iv, sizeof(iv));
0 60 WRITE(&iv, sizeof(iv));
0 27 WRITE(&iv, sizeof(iv));
2428 30 0 } else if (flags & SVf_NOK) {
2441 26 4 SvIV_please(sv);
26 0 SvIV_please(sv);
0 26 SvIV_please(sv);
2442 5 25 if (SvIOK_notUV(sv)) {
2443 5 0 iv = SvIV(sv);
2446 25 0 nv = SvNV(sv);
2449 5 20 if (cxt->netorder) {
2454 12 8 PUTMARK(SX_DOUBLE);
12 0 PUTMARK(SX_DOUBLE);
0 8 PUTMARK(SX_DOUBLE);
2455 12 8 WRITE(&nv, sizeof(nv));
0 12 WRITE(&nv, sizeof(nv));
0 8 WRITE(&nv, sizeof(nv));
2459 0 0 } else if (flags & (SVp_POK | SVp_NOK | SVp_IOK)) {
2466 20397 47 pv = SvPV(sv, len);
2475 2 20442 if (SvMAGICAL(sv) && (mg = mg_find(sv, 'V'))) {
2 0 if (SvMAGICAL(sv) && (mg = mg_find(sv, 'V'))) {
2479 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,
2485 12 20432 if (SvUTF8 (sv))
2486 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);
2488 20432 0 STORE_SCALAR(pv, wlen);
20358 74 STORE_SCALAR(pv, wlen);
20358 0 STORE_SCALAR(pv, wlen);
0 74 STORE_SCALAR(pv, wlen);
20358 74 STORE_SCALAR(pv, wlen);
20356 2 STORE_SCALAR(pv, wlen);
0 74 STORE_SCALAR(pv, wlen);
20429 3 STORE_SCALAR(pv, wlen);
20357 72 STORE_SCALAR(pv, wlen);
2 20355 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);
2518 0 401 if (len > 0x7fffffffu) {
2522 0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
2523 0 0 PUTMARK(SX_ARRAY);
0 0 PUTMARK(SX_ARRAY);
0 0 PUTMARK(SX_ARRAY);
2524 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);
2533 382 19 PUTMARK(SX_ARRAY);
382 0 PUTMARK(SX_ARRAY);
0 19 PUTMARK(SX_ARRAY);
2534 29 372 WLEN(l);
22 7 WLEN(l);
0 22 WLEN(l);
2 20 WLEN(l);
0 7 WLEN(l);
360 12 WLEN(l);
0 360 WLEN(l);
127 233 WLEN(l);
0 12 WLEN(l);
2540 401 0 if (cxt->entry && cxt->recur_sv == (SV*)av) {
338 63 if (cxt->entry && cxt->recur_sv == (SV*)av) {
2541 0 338 if (++cxt->recur_depth > MAX_DEPTH) {
2555 14383 399 for (i = 0; i < len; i++) {
2557 3 14380 if (!sav) {
2559 3 0 STORE_SV_UNDEF();
3 0 STORE_SV_UNDEF();
0 0 STORE_SV_UNDEF();
2568 0 14380 if (*sav == &PL_sv_undef) {
2571 0 0 PUTMARK(SX_SVUNDEF_ELEM);
0 0 PUTMARK(SX_SVUNDEF_ELEM);
0 0 PUTMARK(SX_SVUNDEF_ELEM);
2576 0 14378 if ((ret = store(aTHX_ cxt, *sav))) /* Extra () for -Wall */
2580 399 0 if (cxt->entry && cxt->recur_sv == (SV*)av && cxt->recur_depth > 0) {
326 73 if (cxt->entry && cxt->recur_sv == (SV*)av && cxt->recur_depth > 0) {
317 9 if (cxt->entry && cxt->recur_sv == (SV*)av && cxt->recur_depth > 0) {
2643 983 112 ) ? 1 : 0);
23 960 ) ? 1 : 0);
2655 0 1095 if (len > 0x7fffffffu) { /* keys > I32_MAX */
2667 0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
0 0 PUTMARK(SX_LOBJECT);
2668 0 0 if (flagged_hash) {
2669 0 0 PUTMARK(SX_FLAG_HASH);
0 0 PUTMARK(SX_FLAG_HASH);
0 0 PUTMARK(SX_FLAG_HASH);
2670 0 0 PUTMARK(hash_flags);
0 0 PUTMARK(hash_flags);
0 0 PUTMARK(hash_flags);
2672 0 0 PUTMARK(SX_HASH);
0 0 PUTMARK(SX_HASH);
0 0 PUTMARK(SX_HASH);
2674 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);
2683 135 960 if (flagged_hash) {
2686 129 6 PUTMARK(SX_FLAG_HASH);
129 0 PUTMARK(SX_FLAG_HASH);
0 6 PUTMARK(SX_FLAG_HASH);
2687 129 6 PUTMARK(hash_flags);
129 0 PUTMARK(hash_flags);
0 6 PUTMARK(hash_flags);
2690 936 24 PUTMARK(SX_HASH);
936 0 PUTMARK(SX_HASH);
0 24 PUTMARK(SX_HASH);
2692 25 1070 WLEN(l);
11 14 WLEN(l);
0 11 WLEN(l);
4 7 WLEN(l);
0 14 WLEN(l);
1054 16 WLEN(l);
0 1054 WLEN(l);
239 815 WLEN(l);
0 16 WLEN(l);
2698 1095 0 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
939 156 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
2699 0 939 if (++cxt->recur_depth > MAX_DEPTH_HASH) {
2716 692 403 riter = HvRITER_get(hv);
2717 692 403 eiter = HvEITER_get(hv);
2731 852 243 if (
2733 475 377 && (cxt->canonical == 1
2734 79 396 || (cxt->canonical < 0
2735 19 60 && (cxt->canonical =
2736 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))
2750 3364 396 for (i = 0; i < len; i++) {
2761 3364 396 for (i = 0; i < len; i++) {
2763 21 3343 int placeholders = (int)HvPLACEHOLDERS_get(hv);
2776 3346 18 if (he) {
2777 0 3346 if (!(val = HeVAL(he))) {
2784 0 18 if (placeholders-- < 0) {
2807 0 3364 if ((ret = store(aTHX_ cxt, val))) /* Extra () for -Wall, grr... */
2820 22 3342 if ((hash_flags & SHV_RESTRICTED)
2821 20 2 && SvTRULYREADONLY(val)) {
2825 3364 0 keyval = SvPV(key, keylen_tmp);
2833 14 3350 if (SvUTF8(key)) {
2848 5 9 if (keyval != keysave) {
2859 48 3316 if (flagged_hash) {
2860 40 8 PUTMARK(flags);
40 0 PUTMARK(flags);
0 8 PUTMARK(flags);
2872 18 3346 WLEN(keylen);
14 4 WLEN(keylen);
0 14 WLEN(keylen);
2 12 WLEN(keylen);
0 4 WLEN(keylen);
3342 4 WLEN(keylen);
0 3342 WLEN(keylen);
798 2544 WLEN(keylen);
0 4 WLEN(keylen);
2873 3364 0 if (keylen)
2874 3356 8 WRITE(keyval, keylen);
0 3356 WRITE(keyval, keylen);
0 8 WRITE(keyval, keylen);
2875 5 3359 if (flags & SHV_K_WASUTF8)
2893 9665 698 for (i = 0; i < len; i++) {
2899 9665 0 SV *val = (he ? hv_iterval(hv, he) : 0);
2901 0 9665 if (val == 0)
2904 0 9664 if ((ret = store_hentry(aTHX_ cxt, hv, i, he, hash_flags)))
2986 1094 0 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
615 479 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
484 131 if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
3005 4549 5116 ) ? 1 : 0);
31 4518 ) ? 1 : 0);
3006 5116 4549 unsigned char flags = (((hash_flags & SHV_RESTRICTED)
3007 5110 6 && SvTRULYREADONLY(val))
3012 5104 4561 if (val == &PL_sv_placeholder) {
3029 0 9664 if ((ret = store(aTHX_ cxt, val)))
3031 0 9664 if (len == HEf_SVKEY) {
3037 9 9655 if (HEK_UTF8(hek))
3039 6 9658 if (HEK_WASUTF8(hek))
3052 5147 4517 if (flagged_hash) {
3053 5137 10 PUTMARK(flags);
5137 0 PUTMARK(flags);
0 10 PUTMARK(flags);
3065 0 9664 if (flags & SHV_K_ISSV) {
3066 0 0 if ((ret = store(aTHX_ cxt, key_sv)))
3069 28 9636 WLEN(len);
7 21 WLEN(len);
0 7 WLEN(len);
3 4 WLEN(len);
0 21 WLEN(len);
9610 26 WLEN(len);
0 9610 WLEN(len);
2375 7235 WLEN(len);
0 26 WLEN(len);
3070 9660 4 if (len)
3071 9613 47 WRITE(key, len);
2 9611 WRITE(key, len);
0 47 WRITE(key, len);
3110 0 0 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
0 0 if (cxt->entry && cxt->recur_sv == (SV*)hv) {
3111 0 0 if (++cxt->recur_depth > MAX_DEPTH_HASH) {
3121 0 0 for (i = 0; i <= (Size_t)HvMAX(hv); i++) {
3123 0 0 if (!entry) continue;
3124 0 0 if ((ret = store_hentry(aTHX_ cxt, hv, ix++, entry, hash_flags)))
3126 0 0 while ((entry = HeNEXT(entry))) {
3127 0 0 if ((ret = store_hentry(aTHX_ cxt, hv, ix++, entry, hash_flags)))
3131 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) {
3163 73 0 if (
3164 41 32 cxt->deparse == 0 ||
3165 3 38 (cxt->deparse < 0 &&
3167 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))
3187 0 70 PUSHMARK(sp);
3188 0 70 XPUSHs(newSVpvs_flags("B::Deparse", SVs_TEMP));
3192 0 70 if (count != 1)
3200 0 70 PUSHMARK(sp);
3201 0 70 XPUSHs(bdeparse); /* XXX is this already mortal? */
3202 0 70 XPUSHs(sv_2mortal(newRV_inc((SV*)cv)));
3206 0 70 if (count != 1)
3211 70 0 reallen = strlen(SvPV_nolen(text));
3218 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) == ';') {
3226 55 14 PUTMARK(SX_CODE);
55 0 PUTMARK(SX_CODE);
0 14 PUTMARK(SX_CODE);
3235 8 61 if(SvUTF8 (text))
3236 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);
3238 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);
3240 69 0 FREETMPS;
3277 7 12 if (svt == SVt_PVHV) {
3279 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 */
3280 6 6 } else if (svt == SVt_PVAV) {
3282 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 */
3285 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 */
3289 0 19 if (!(mg = mg_find(sv, mtype)))
3290 0 0 CROAK(("No magic '%c' found while storing tied %s", mtype,
0 0 CROAK(("No magic '%c' found while storing tied %s", mtype,
3307 18 1 obj = mg->mg_obj ? mg->mg_obj : newSV(0);
3308 0 19 if ((ret = store(aTHX_ cxt, obj)))
3335 0 2 if (!(mg = mg_find(sv, 'p')))
3342 1 1 if (mg->mg_ptr) {
3344 1 0 PUTMARK(SX_TIED_KEY);
1 0 PUTMARK(SX_TIED_KEY);
0 0 PUTMARK(SX_TIED_KEY);
3347 0 1 if ((ret = store(aTHX_ cxt, mg->mg_obj))) /* Extra () for -Wall, grr... */
3352 0 1 if ((ret = store(aTHX_ cxt, (SV *) mg->mg_ptr))) /* Idem, for -Wall */
3358 1 0 PUTMARK(SX_TIED_IDX);
1 0 PUTMARK(SX_TIED_IDX);
0 0 PUTMARK(SX_TIED_IDX);
3361 0 1 if ((ret = store(aTHX_ cxt, mg->mg_obj))) /* Idem, for -Wall */
3366 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);
3497 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);
3531 4 53 if (!count) {
3540 0 4 if (hv_fetch(cxt->hclass, classname, len, FALSE))
3541 0 0 CROAK(("Too late to ignore hooks for %s class \"%s\"",
3559 52 1 pv = SvPV(ary[0], len2);
3564 8 45 if (gv && isGV(gv)) {
8 0 if (gv && isGV(gv)) {
3565 1 7 if (count > 1)
3584 41 45 for (i = 1; i < count; i++) {
3595 0 41 if (!SvROK(rsv))
3610 30 11 if ((fake_tag = (char *)ptr_table_fetch(cxt->pseen, xsv)))
3632 11 0 if (!recursed++) {
3633 11 0 PUTMARK(SX_HOOK);
11 0 PUTMARK(SX_HOOK);
0 0 PUTMARK(SX_HOOK);
3634 11 0 PUTMARK(flags);
11 0 PUTMARK(flags);
0 0 PUTMARK(flags);
3635 0 11 if (obj_type == SHT_EXTRA)
3636 0 0 PUTMARK(eflags);
0 0 PUTMARK(eflags);
0 0 PUTMARK(eflags);
3638 0 0 PUTMARK(flags);
0 0 PUTMARK(flags);
0 0 PUTMARK(flags);
3640 0 11 if ((ret = store(aTHX_ cxt, xsv))) /* Given by hook for us to store */
3645 0 11 if (!fake_tag)
3703 34 18 if (!known_class(aTHX_ cxt, classname, len, &classnum)) {
3715 34 18 if (((classnum == -1) ? len : classnum) > LG_SCALAR)
0 52 if (((classnum == -1) ? len : classnum) > LG_SCALAR)
3717 18 34 if (classnum != -1)
3719 0 52 if (len2 > LG_SCALAR)
3721 32 20 if (count > 1)
3723 0 52 if (count > (LG_SCALAR + 1))
3740 41 11 if (!recursed) {
3741 40 1 PUTMARK(SX_HOOK);
40 0 PUTMARK(SX_HOOK);
0 1 PUTMARK(SX_HOOK);
3742 40 1 PUTMARK(flags);
40 0 PUTMARK(flags);
0 1 PUTMARK(flags);
3743 1 40 if (obj_type == SHT_EXTRA)
3744 1 0 PUTMARK(eflags);
1 0 PUTMARK(eflags);
0 0 PUTMARK(eflags);
3746 11 0 PUTMARK(flags);
11 0 PUTMARK(flags);
0 0 PUTMARK(flags);
3749 18 34 if (flags & SHF_IDX_CLASSNAME) {
3750 0 18 if (flags & SHF_LARGE_CLASSLEN)
3751 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);
3754 18 0 PUTMARK(cnum);
18 0 PUTMARK(cnum);
0 0 PUTMARK(cnum);
3757 0 34 if (flags & SHF_LARGE_CLASSLEN)
3758 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);
3761 33 1 PUTMARK(clen);
33 0 PUTMARK(clen);
0 1 PUTMARK(clen);
3763 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 */
3767 0 52 if (flags & SHF_LARGE_STRLEN) {
3769 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 */
3772 51 1 PUTMARK(clen);
51 0 PUTMARK(clen);
0 1 PUTMARK(clen);
3774 24 28 if (len2)
3775 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 */
3778 32 20 if (flags & SHF_HAS_LIST) {
3780 0 32 if (flags & SHF_LARGE_LISTLEN)
3781 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);
3784 32 0 PUTMARK(clen);
32 0 PUTMARK(clen);
0 0 PUTMARK(clen);
3792 41 32 for (i = 1; i < count; i++) {
3794 41 0 WRITE_I32(tagval);
0 41 WRITE_I32(tagval);
11 30 WRITE_I32(tagval);
0 0 WRITE_I32(tagval);
3804 32 20 if (count > 1)
3813 1 51 if (obj_type == SHT_EXTRA) {
3816 0 1 if (!(mg = mg_find(sv, mtype))) {
3818 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",
3829 0 1 if ((ret = store(aTHX_ cxt, mg->mg_obj)))
3880 57 108 if (hook)
3887 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);
3900 26 82 if (known_class(aTHX_ cxt, classname, len, &classnum)) {
3902 26 0 PUTMARK(SX_IX_BLESS);
26 0 PUTMARK(SX_IX_BLESS);
0 0 PUTMARK(SX_IX_BLESS);
3903 26 0 if (classnum <= LG_BLESS) {
3905 26 0 PUTMARK(cnum);
26 0 PUTMARK(cnum);
0 0 PUTMARK(cnum);
3908 0 0 PUTMARK(flag);
0 0 PUTMARK(flag);
0 0 PUTMARK(flag);
3909 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);
3914 69 13 PUTMARK(SX_BLESS);
69 0 PUTMARK(SX_BLESS);
0 13 PUTMARK(SX_BLESS);
3915 81 1 if (len <= LG_BLESS) {
3917 68 13 PUTMARK(clen);
68 0 PUTMARK(clen);
0 13 PUTMARK(clen);
3920 1 0 PUTMARK(flag);
1 0 PUTMARK(flag);
0 0 PUTMARK(flag);
3921 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 */
3923 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 */
3954 5 0 if (
3955 5 0 cxt->forgive_me == 0 ||
3956 3 2 (cxt->forgive_me < 0 &&
3957 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
3973 2 0 if (len < 80)
3974 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);
4025 8 13 if ((SvFLAGS(sv) & (SVs_GMG|SVs_SMG|SVs_RMG)) ==
4026 2 6 (SVs_GMG|SVs_SMG|SVs_RMG) &&
4033 6 13 if ((SvFLAGS(sv) & (SVs_GMG|SVs_SMG|SVs_RMG)) ==
4034 6 0 (SVs_GMG|SVs_SMG|SVs_RMG) &&
4039 11 430 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
6 5 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
4043 116 1003 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
8 108 if (SvRMAGICAL(sv) && (mg_find(sv, 'P')))
4097 5139 24323 if (svh) {
4100 5014 125 if (sv == &PL_sv_undef) {
4139 103 22 PUTMARK(SX_OBJECT);
103 0 PUTMARK(SX_OBJECT);
0 22 PUTMARK(SX_OBJECT);
4140 103 22 WRITE_I32(tagval);
0 103 WRITE_I32(tagval);
32 71 WRITE_I32(tagval);
0 22 WRITE_I32(tagval);
4175 161 29176 if (SvOBJECT(sv)) {
4251 92 374 if (cxt->netorder) {
4267 367 99 if (!cxt->fio) {
4273 367 99 WRITE( (unsigned char*) header, length);
0 367 WRITE( (unsigned char*) header, length);
0 99 WRITE( (unsigned char*) header, length);
4319 15 451 if (cxt->s_dirty)
4327 0 466 if (cxt->entry)
4342 0 466 if (!SvROK(sv))
4350 367 99 if (!f)
4351 22 345 MBUF_INIT(0);
4359 0 466 if (-1 == magic_write(aTHX_ cxt)) /* Emit magic and ILP info */
4379 363 98 if (!cxt->fio && res)
208 155 if (!cxt->fio && res)
4399 0 461 if (cxt->prev && !(cxt->optype & ST_CLONE))
0 0 if (cxt->prev && !(cxt->optype & ST_CLONE))
4437 2 8 if (
4438 2 0 cxt->ver_major != STORABLE_BIN_MAJOR &&
4441 2 0 CROAK(("Corrupted storable %s (binary v%d.%d), current is v%d.%d",
4446 4 4 CROAK(("Corrupted storable %s (binary v%d.%d)",
4471 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? */
4472 0 18 if (idx & 0x80)
4473 0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
4480 0 18 if (!sva)
4523 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? */
4524 2 72 if (len & 0x80) {
4525 2 0 RLEN(len);
2 0 RLEN(len);
0 2 RLEN(len);
0 0 RLEN(len);
0 2 RLEN(len);
4527 1 1 if (len > I32_MAX)
4532 0 1 if (!classname)
4537 60 13 SAFEPVREAD(classname, (I32)len, malloced_classname);
60 0 SAFEPVREAD(classname, (I32)len, malloced_classname);
0 13 SAFEPVREAD(classname, (I32)len, malloced_classname);
4547 0 73 if (!av_store(cxt->aclass, cxt->classnum++, newSVpvn(classname, len))) {
4557 1 72 if (malloced_classname)
4612 55 1 GETMARK(flags);
55 0 GETMARK(flags);
0 1 GETMARK(flags);
4638 1 0 GETMARK(extra_type);
1 0 GETMARK(extra_type);
0 0 GETMARK(extra_type);
4659 0 56 SEEN0_NN(sv, 0); /* Don't bless yet */
4673 11 56 while (flags & SHF_NEED_RECURSE) {
4676 0 11 if (!rv)
4681 11 0 GETMARK(flags);
11 0 GETMARK(flags);
0 0 GETMARK(flags);
4684 18 38 if (flags & SHF_IDX_CLASSNAME) {
4692 0 18 if (flags & SHF_LARGE_CLASSLEN)
4693 0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
0 0 RLEN(idx);
4695 18 0 GETMARK(idx);
18 0 GETMARK(idx);
0 0 GETMARK(idx);
4698 0 18 if (!sva)
4715 2 36 if (flags & SHF_LARGE_CLASSLEN)
4716 2 0 RLEN(len);
2 0 RLEN(len);
0 2 RLEN(len);
0 0 RLEN(len);
0 2 RLEN(len);
4718 35 1 GETMARK(len);
35 0 GETMARK(len);
0 1 GETMARK(len);
4721 1 37 if (len > I32_MAX) /* security */
4723 2 35 else if (len > LG_BLESS) { /* security: signed len */
4727 0 2 if (!classname)
4732 36 1 SAFEPVREAD(classname, (I32)len, malloced_classname);
35 1 SAFEPVREAD(classname, (I32)len, malloced_classname);
0 1 SAFEPVREAD(classname, (I32)len, malloced_classname);
4739 0 36 if (!av_store(cxt->aclass, cxt->classnum++,
4755 0 54 if (flags & SHF_LARGE_STRLEN)
4756 0 0 RLEN(len2);
0 0 RLEN(len2);
0 0 RLEN(len2);
0 0 RLEN(len2);
0 0 RLEN(len2);
4758 53 1 GETMARK(len2);
53 0 GETMARK(len2);
0 1 GETMARK(len2);
4761 20 34 if (len2) {
4762 20 0 SAFEREAD(SvPVX(frozen), len2, frozen);
20 0 SAFEREAD(SvPVX(frozen), len2, frozen);
0 0 SAFEREAD(SvPVX(frozen), len2, frozen);
4767 1 53 if (cxt->s_tainted) /* Is input source tainted? */
4768 0 1 SvTAINT(frozen);
0 0 SvTAINT(frozen);
4776 32 22 if (flags & SHF_HAS_LIST) {
4777 0 32 if (flags & SHF_LARGE_LISTLEN)
4778 0 0 RLEN(len3);
0 0 RLEN(len3);
0 0 RLEN(len3);
0 0 RLEN(len3);
0 0 RLEN(len3);
4780 32 0 GETMARK(len3);
32 0 GETMARK(len3);
0 0 GETMARK(len3);
4781 32 0 if (len3) {
4800 32 22 if (av) {
4803 41 32 for (i = 1; i <= len3; i++) { /* We leave [0] alone */
4808 41 0 READ_I32(tag);
41 0 READ_I32(tag);
11 30 READ_I32(tag);
0 0 READ_I32(tag);
4811 0 41 if (!svh) {
4812 0 0 if (tag == cxt->where_is_undef) {
4832 0 54 if (!(cxt->flags & FLAG_BLESS_OK)) {
4845 13 41 if (attach && isGV(attach)) {
13 0 if (attach && isGV(attach)) {
4849 1 12 if (av)
4863 12 0 if (attached &&
9 3 if (attached &&
4864 5 4 SvROK(attached) &&
4874 0 5 SEEN0_NN(sv, 0);
4877 5 0 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
0 5 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
4888 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);
4891 2 39 if (!hook) {
4913 0 2 if (!hook)
4923 10 31 if (!av) {
4959 23 18 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
1 22 if (!(flags & SHF_IDX_CLASSNAME) && classname != buf)
4967 40 1 if (!extra_type)
5045 2 477 if (cname)
5049 0 479 SEEN_NN(rv, stash, 0); /* Will return if rv is null */
2 477 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 */
5051 0 477 if (!sv)
5071 475 2 if (cname) {
5102 12 0 if (sv) {
5131 1 33 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5132 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 */
5136 0 34 if (!sv)
5143 33 1 SvUPGRADE(rv, SVt_RV);
5151 34 0 stash = SvTYPE(sv) ? (HV *) SvSTASH (sv) : 0;
5152 0 34 if (!stash) {
5158 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)) {
5159 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);
5163 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)) {
5192 4 0 if (sv) {
5216 0 4 if (!(cxt->flags & FLAG_TIE_OK)) {
5221 1 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5222 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 */
5224 0 4 if (!sv)
5250 0 4 if (!(cxt->flags & FLAG_TIE_OK)) {
5255 1 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5256 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 */
5258 0 4 if (!sv)
5284 0 4 if (!(cxt->flags & FLAG_TIE_OK)) {
5289 1 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5290 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 */
5292 0 4 if (!sv) {
5295 3 1 else if (SvTYPE(sv) != SVt_NULL) {
5302 3 1 if (obj) {
5327 0 1 if (!(cxt->flags & FLAG_TIE_OK)) {
5332 0 1 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5333 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 */
5335 0 1 if (!sv)
5339 0 1 if (!key)
5365 0 1 if (!(cxt->flags & FLAG_TIE_OK)) {
5370 0 1 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5371 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 */
5373 0 1 if (!sv)
5376 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 */
5402 11 3210 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5403 0 3221 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
11 3210 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" */
5405 4 3217 if (len == 0) {
5419 3098 119 SAFEREAD(SvPVX(sv), len, sv);
3088 10 SAFEREAD(SvPVX(sv), len, sv);
11 108 SAFEREAD(SvPVX(sv), len, sv);
5423 108 3088 if (cxt->s_tainted) /* Is input source tainted? */
5424 0 108 SvTAINT(sv); /* External data cannot be trusted */
0 0 SvTAINT(sv); /* External data cannot be trusted */
5427 10 3186 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")
5428 0 0 && strEQc(SvPVX(sv), "mt-config.cgi")) {
5438 28 3168 if (isutf8) {
5473 3 1 RLEN(len);
3 0 RLEN(len);
0 3 RLEN(len);
0 1 RLEN(len);
1 3 RLEN(len);
5492 3072 121 GETMARK(len);
3070 2 GETMARK(len);
2 119 GETMARK(len);
5509 20 0 GETMARK(len);
20 0 GETMARK(len);
0 0 GETMARK(len);
5525 6 2 RLEN(len);
6 0 RLEN(len);
1 5 RLEN(len);
0 2 RLEN(len);
3 5 RLEN(len);
5546 1 0 GETMARK(len);
1 0 GETMARK(len);
0 0 GETMARK(len);
5549 1 0 READ(s, len);
1 0 READ(s, len);
0 0 READ(s, len);
5551 0 1 if (!sv)
5577 1 0 RLEN(len);
1 0 RLEN(len);
0 1 RLEN(len);
0 0 RLEN(len);
0 1 RLEN(len);
5582 1 0 SAFEPVREAD(s, len, s);
1 0 SAFEPVREAD(s, len, s);
0 0 SAFEPVREAD(s, len, s);
5585 0 1 if (!sv) {
5617 58 27 READ(&iv, sizeof(iv));
58 0 READ(&iv, sizeof(iv));
0 27 READ(&iv, sizeof(iv));
5619 0 85 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5620 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" */
5642 0 0 GETMARK(type);
0 0 GETMARK(type);
0 0 GETMARK(type);
5645 0 0 READ(&len, 8);
0 0 READ(&len, 8);
0 0 READ(&len, 8);
5704 13 13 READ_I32(iv);
13 0 READ_I32(iv);
0 13 READ_I32(iv);
0 13 READ_I32(iv);
5712 0 26 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5713 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" */
5734 8 8 READ(&nv, sizeof(nv));
8 0 READ(&nv, sizeof(nv));
0 8 READ(&nv, sizeof(nv));
5736 0 16 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5737 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" */
5760 132 35 GETMARK(siv);
132 0 GETMARK(siv);
0 35 GETMARK(siv);
5764 0 167 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5765 0 167 SEEN_NN(sv, stash, 0); /* Associate this new scalar with tag "tagnum" */
0 167 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" */
5786 2 17 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5787 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);
5807 120 5015 if (cxt->where_is_undef == -1) {
5810 0 5135 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5811 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);
5827 0 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5828 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);
5844 0 3 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5845 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);
5862 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);
5890 145 18 RLEN(len);
145 0 RLEN(len);
64 81 RLEN(len);
0 18 RLEN(len);
16 147 RLEN(len);
5893 42 121 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5894 0 163 SEEN_NN(av, stash, 0); /* Will return if array not allocated nicely */
42 121 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 */
5895 130 33 if (len)
5904 2346 129 for (i = 0; i < len; i++) {
5907 0 2345 if (!sv)
5909 2 2343 if (sv == &PL_sv_undef) {
5913 0 2343 if (sv == &PL_sv_placeholder)
5915 0 2343 if (av_store(av, i, sv) == 0)
5918 1 128 if (seen_null) av_fill(av, len-1);
5942 0 0 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
5943 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 */
5951 0 0 for (i = 0; i < len; i++) {
5954 0 0 if (!sv)
5956 0 0 if (sv == &PL_sv_undef) {
5960 0 0 if (sv == &PL_sv_placeholder)
5962 0 0 if (av_store(av, i, sv) == 0)
5965 0 0 if (seen_null) av_fill(av, len-1);
6008 0 0 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6009 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 */
6010 0 0 if (len == 0)
6019 0 0 for (i = 0; i < len; i++) {
6026 0 0 if (!sv)
6036 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 */
6037 0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
6038 0 0 if (size)
6039 0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
6047 0 0 if (hv_store(hv, kbuf, (U32) size, sv, 0) == 0)
6082 171 23 RLEN(len);
171 0 RLEN(len);
47 124 RLEN(len);
0 23 RLEN(len);
16 178 RLEN(len);
6085 24 170 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6086 0 194 SEEN_NN(hv, stash, 0); /* Will return if table not allocated properly */
24 170 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 */
6087 14 180 if (len == 0)
6096 1213 179 for (i = 0; i < len; i++) {
6103 0 1212 if (!sv)
6113 1174 38 RLEN(size); /* Get key size */
1174 0 RLEN(size); /* Get key size */
310 864 RLEN(size); /* Get key size */
0 38 RLEN(size); /* Get key size */
30 1182 RLEN(size); /* Get key size */
6114 0 1212 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
6115 1208 4 if (size)
6116 1170 38 READ(kbuf, size);
1170 0 READ(kbuf, size);
0 38 READ(kbuf, size);
6124 0 1212 if (hv_store(hv, kbuf, (U32) size, sv, 0) == 0)
6155 191 53 GETMARK(hash_flags);
189 2 GETMARK(hash_flags);
2 51 GETMARK(hash_flags);
6172 189 51 RLEN(len);
181 8 RLEN(len);
37 144 RLEN(len);
8 43 RLEN(len);
59 165 RLEN(len);
6175 6 218 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6176 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 */
6177 0 224 if (len == 0)
6186 5298 159 for (i = 0; i < len; i++) {
6195 28 5269 if (!sv)
6198 5229 40 GETMARK(flags);
5227 2 GETMARK(flags);
2 38 GETMARK(flags);
6200 5166 99 if ((hash_flags & SHV_RESTRICTED) && (flags & SHV_K_LOCKED))
5150 16 if ((hash_flags & SHV_RESTRICTED) && (flags & SHV_K_LOCKED))
6204 0 5265 if (flags & SHV_K_ISSV) {
6212 0 0 if (!keysv)
6215 0 0 if (!hv_store_ent(hv, keysv, sv, 0))
6225 5130 135 if (flags & SHV_K_PLACEHOLDER) {
6230 20 5245 if (flags & SHV_K_UTF8) {
6243 12 5253 if (flags & SHV_K_WASUTF8)
6247 5227 38 RLEN(size); /* Get key size */
5219 8 RLEN(size); /* Get key size */
1252 3967 RLEN(size); /* Get key size */
8 30 RLEN(size); /* Get key size */
54 5195 RLEN(size); /* Get key size */
6248 0 5249 KBUFCHK((STRLEN)size);/* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size);/* Grow hash key read pool if needed */
6249 5249 0 if (size)
6250 5219 30 READ(kbuf, size);
5211 8 READ(kbuf, size);
8 22 READ(kbuf, size);
6260 0 5233 if (hv_store_flags(hv, kbuf, size, sv, 0, store_flags) == 0)
6270 129 30 if (hash_flags & SHV_RESTRICTED)
6307 5 58 stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
6308 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);
6315 48 15 GETMARK(type);
48 0 GETMARK(type);
0 15 GETMARK(type);
6333 1 62 if (!text) {
6342 7 55 if (SvUTF8(text))
6344 62 0 sv_catpv(sub, SvPV_nolen(text)); /* XXX no sv_catsv! */
6351 37 25 if (cxt->eval == NULL) {
6355 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)) {
6356 7 0 if (cxt->forgive_me == 0 ||
7 0 if (cxt->forgive_me == 0 ||
6357 2 5 (cxt->forgive_me < 0 &&
6358 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
6375 11 44 if (SvROK(cxt->eval) && SvTYPE(SvRV(cxt->eval)) == SVt_PVCV) {
11 0 if (SvROK(cxt->eval) && SvTYPE(SvRV(cxt->eval)) == SVt_PVCV) {
6376 0 11 PUSHMARK(sp);
6377 0 11 XPUSHs(sv_2mortal(newSVsv(sub)));
6380 0 11 if (count != 1)
6389 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)) {
6390 2 0 CROAK(("code %s caused an error: %s",
2 0 CROAK(("code %s caused an error: %s",
6394 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) {
6397 0 0 CROAK(("code %s did not evaluate to a subroutine reference\n",
6404 53 0 FREETMPS;
6438 0 1 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 1 RLEN(len);
1 0 RLEN(len);
6441 0 1 SEEN0_NN(av, 0); /* Will return if array not allocated nicely */
6442 1 0 if (len)
6451 1 0 for (i = 0; i < len; i++) {
6452 0 1 GETMARK(c);
0 0 GETMARK(c);
0 1 GETMARK(c);
6453 0 1 if (c == SX_IT_UNDEF) {
6457 1 0 if (c != SX_ITEM)
6461 0 0 if (!sv)
6463 0 0 if (av_store(av, i, sv) == 0)
6501 0 1 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 1 RLEN(len);
1 0 RLEN(len);
6504 0 1 SEEN0_NN(hv, 0); /* Will return if table not allocated properly */
6505 0 1 if (len == 0)
6514 1 0 for (i = 0; i < len; i++) {
6519 0 1 GETMARK(c);
0 0 GETMARK(c);
0 1 GETMARK(c);
6520 0 1 if (c == SX_VL_UNDEF) {
6527 0 0 if (!sv_h_undef)
6530 0 1 } else if (c == SX_VALUE) {
6533 0 0 if (!sv)
6545 0 0 GETMARK(c);
0 0 GETMARK(c);
0 0 GETMARK(c);
6546 0 0 if (c != SX_KEY)
6548 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 */
6549 0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
0 0 KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */
6550 0 0 if (size)
6551 0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
0 0 READ(kbuf, size);
6559 0 0 if (hv_store(hv, kbuf, (U32) size, sv, 0) == 0)
6609 195 466 if (cxt->fio) {
6615 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 */
6620 2 182 if (memNE(buf, magicstr, len)) {
6629 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));
6631 2 0 if (memNE(buf, old_magicstr, old_len))
6638 466 0 GETMARK(use_network_order);
464 2 GETMARK(use_network_order);
0 0 GETMARK(use_network_order);
6646 0 646 if (old_magic && use_network_order > 1) {
0 0 if (old_magic && use_network_order > 1) {
6653 644 2 cxt->retrieve_vtbl = (SV*(**)(pTHX_ stcxt_t *cxt, const char *cname)) (version_major > 0 ? sv_retrieve : sv_old_retrieve);
6663 643 3 if (version_major > 1)
6664 463 180 GETMARK(version_minor);
461 2 GETMARK(version_minor);
2 178 GETMARK(version_minor);
6678 632 10 if (
6679 629 3 version_major > STORABLE_BIN_MAJOR ||
6680 16 613 (version_major == STORABLE_BIN_MAJOR &&
6687 16 10 if (version_major == STORABLE_BIN_MAJOR) {
6690 16 0 if (cxt->accept_future_minor < 0)
6692 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",
6695 8 8 if (cxt->accept_future_minor == 1)
6698 18 8 if (croak_now) {
6710 167 457 if ((cxt->netorder = (use_network_order & 0x1))) /* Extra () for -Wall */
6714 457 0 use_NV_size = version_major >= 2 && version_minor >= 2;
457 0 use_NV_size = version_major >= 2 && version_minor >= 2;
6716 457 0 if (version_major >= 0) {
6717 358 99 GETMARK(c);
357 1 GETMARK(c);
1 98 GETMARK(c);
6723 357 98 READ(buf, length); /* Not null-terminated */
345 12 READ(buf, length); /* Not null-terminated */
12 86 READ(buf, length); /* Not null-terminated */
6737 431 0 if ((c != (sizeof (byteorderstr) - 1))
6738 2 429 || memNE(buf, byteorderstr, c))
6745 2 427 if ((int) *current++ != sizeof(int))
6749 2 425 if ((int) *current++ != sizeof(long))
6753 2 423 if ((int) *current != sizeof(char *))
6756 423 0 if (use_NV_size) {
6758 2 421 if ((int) *++current != sizeof(NV))
6790 2 10076 if (cxt->hseen) { /* Retrieving old binary */
6792 2 0 if (cxt->netorder) {
6794 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 */
6797 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 */
6799 0 2 GETMARK(type);
0 0 GETMARK(type);
0 2 GETMARK(type);
6800 0 2 if (type == SX_OBJECT) {
6803 0 0 if (!svh)
6806 0 0 tagn = SvIV(*svh); /* Mapped tag number computed earlier below */
6813 0 0 if (!svh)
6830 0 2 if (!hv_store(cxt->hseen, (char *) &tag, sizeof(tag),
6841 9652 424 GETMARK(type);
9648 4 GETMARK(type);
4 420 GETMARK(type);
6849 99 9969 if (type == SX_OBJECT) {
6851 77 22 READ_I32(tag);
77 0 READ_I32(tag);
26 51 READ_I32(tag);
0 22 READ_I32(tag);
6854 0 99 if (!svh)
6861 12 9957 } else if (type >= SX_ERROR && cxt->ver_minor > STORABLE_BIN_MINOR) {
4 8 } else if (type >= SX_ERROR && cxt->ver_minor > STORABLE_BIN_MINOR) {
6862 4 0 if (cxt->accept_future_minor < 0)
6864 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",
6867 4 0 if (cxt->accept_future_minor == 1) {
6881 9959 8 sv = RETRIEVE(cxt, type)(aTHX_ cxt, cname);
6882 109 9828 if (!sv)
6897 38 9790 if (cxt->ver_major < 2) {
6898 0 45 while ((type = GETCHAR()) != SX_STORED) {
45 0 while ((type = GETCHAR()) != SX_STORED) {
7 38 while ((type = GETCHAR()) != SX_STORED) {
6903 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 */
6906 0 0 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
0 0 RLEN(len);
6912 0 7 KBUFCHK((STRLEN)len); /* Grow buffer as necessary */
0 0 KBUFCHK((STRLEN)len); /* Grow buffer as necessary */
6913 7 0 if (len)
6914 7 0 READ(kbuf, len);
7 0 READ(kbuf, len);
0 0 READ(kbuf, len);
6917 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);
6968 89 573 if (cxt->s_dirty)
6976 0 662 if (cxt->entry) {
6994 27 635 KBUFINIT(); /* Allocate hash key reading pool once */
6996 467 195 if (!f && in) {
312 155 if (!f && in) {
6998 2 310 if (SvUTF8(in)) {
7000 2 0 const char *orig = SvPV(in, length);
7016 1 1 if (is_utf8) {
7019 1 0 if (asbytes != orig) {
7026 1 0 SvUPGRADE(in, SVt_PV);
7034 0 311 MBUF_SAVE_AND_LOAD(in);
311 0 MBUF_SAVE_AND_LOAD(in);
7047 43 588 if (!magic_check(aTHX_ cxt))
7048 26 17 CROAK(("Magic number checking on storable %s failed",
7064 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);
7076 414 145 if (!f && in)
259 155 if (!f && in)
7086 0 559 if (cxt->prev) /* This context was stacked */
7093 89 470 if (!sv) {
7125 0 470 if (pre_06_fmt) { /* Was not handling overloading by then */
7128 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)) {
7151 35 435 if (SvOBJECT(sv)) {
7154 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)) {
7217 1 154 if (cxt->s_dirty)
7224 2 153 if ((SvTYPE(sv) == SVt_PVLV
7228 2 0 ) && (SvFLAGS(sv) & (SVs_GMG|SVs_SMG|SVs_RMG)) ==
7229 2 0 (SVs_GMG|SVs_SMG|SVs_RMG) &&
7239 0 155 if (!do_store(aTHX_ (PerlIO*) 0, sv, ST_CLONE, FALSE, (SV**) 0))
7260 0 155 MBUF_INIT(size);
155 0 MBUF_INIT(size);
7270 2 153 cxt->s_tainted = SvTAINTED(sv);
0 2 cxt->s_tainted = SvTAINTED(sv);
7302 0 0 if (kbuf)
7304 0 0 if (!cxt->membuf_ro && mbase)
0 0 if (!cxt->membuf_ro && mbase)
7306 0 0 if (cxt->membuf_ro && (cxt->msaved).arena)
0 0 if (cxt->membuf_ro && (cxt->msaved).arena)
7355 98 0 RETVAL = do_store(aTHX_ f, obj, 0, ix, (SV **)0) ? &PL_sv_yes : &PL_sv_undef;
7378 0 208 if (!do_store(aTHX_ (PerlIO*) 0, obj, 0, ix, &RETVAL))
7417 0 5 if (ix) {
7420 0 0 result = cxt->entry && (cxt->optype & ix) ? TRUE : FALSE;
0 0 result = cxt->entry && (cxt->optype & ix) ? TRUE : FALSE;
7424 3 2 ST(0) = boolSV(result);