Branch Coverage

srl_encoder.c
Criterion Covered Total %
branch 0 1502 0.0


line true false branch
349 0 0 if (!SRL_ENC_HAVE_OPTION(enc, SRL_F_REUSE_ENCODER)) {
362 0 0 if (enc->ref_seenhash != NULL)
364 0 0 if (enc->freezeobj_svhash != NULL)
366 0 0 if (enc->str_seenhash != NULL)
368 0 0 if (enc->weak_seenhash != NULL)
370 0 0 if (enc->string_deduper_hv != NULL)
378 0 0 if (!SRL_ENC_HAVE_OPER_FLAG(enc, SRL_OF_ENCODER_DIRTY)) {
400 0 0 if (enc->tmp_buf.start != NULL)
405 0 0 if (enc->ref_seenhash != NULL)
407 0 0 if (enc->freezeobj_svhash != NULL)
409 0 0 if (enc->str_seenhash != NULL)
411 0 0 if (enc->weak_seenhash != NULL)
413 0 0 if (enc->string_deduper_hv != NULL)
428 0 0 if (enc == NULL)
432 0 0 if (expect_false( srl_buf_init_buffer(aTHX_ &(enc->buf), INITIALIZATION_SIZE) != 0 )) {
464 0 0 if (opt != NULL) {
468 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_NO_SHARED_HASHKEYS);
469 0 0 if ( !val || !SvTRUE(val) )
0 0 if ( !val || !SvTRUE(val) )
474 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_PROTOCOL_VERSION);
475 0 0 if (val && SvOK(val)) {
0 0 if (val && SvOK(val)) {
477 0 0 if (enc->protocol_version < 1
478 0 0 || enc->protocol_version > SRL_PROTOCOL_VERSION)
486 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_USE_PROTOCOL_V1);
487 0 0 if ( val && SvTRUE(val) )
0 0 if ( val && SvTRUE(val) )
491 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_CROAK_ON_BLESS);
492 0 0 if ( val && SvTRUE(val) )
0 0 if ( val && SvTRUE(val) )
495 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_NO_BLESS_OBJECTS);
496 0 0 if ( val && SvTRUE(val) )
0 0 if ( val && SvTRUE(val) )
499 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_FREEZE_CALLBACKS);
500 0 0 if ( val && SvTRUE(val) ) {
0 0 if ( val && SvTRUE(val) ) {
501 0 0 if (SRL_ENC_HAVE_OPTION(enc, SRL_F_NO_BLESS_OBJECTS))
508 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_COMPRESS);
509 0 0 if (val) {
521 0 0 if (enc->protocol_version < 3)
525 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_COMPRESS_LEVEL);
526 0 0 if ( val && SvTRUE(val) ) {
0 0 if ( val && SvTRUE(val) ) {
528 0 0 if (expect_false( lvl < 1 || lvl > 10 )) /* Sekrit: compression lvl 10 is a miniz thing that doesn't exist in normal zlib */
0 0 if (expect_false( lvl < 1 || lvl > 10 )) /* Sekrit: compression lvl 10 is a miniz thing that doesn't exist in normal zlib */
0 0 if (expect_false( lvl < 1 || lvl > 10 )) /* Sekrit: compression lvl 10 is a miniz thing that doesn't exist in normal zlib */
535 0 0 if (enc->protocol_version < 3)
539 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_COMPRESS_LEVEL);
540 0 0 if ( val && SvTRUE(val) ) {
0 0 if ( val && SvTRUE(val) ) {
542 0 0 if (expect_false( lvl < 1 || lvl > 22 )) /* TODO: ZSTD_maxCLevel() */
0 0 if (expect_false( lvl < 1 || lvl > 22 )) /* TODO: ZSTD_maxCLevel() */
0 0 if (expect_false( lvl < 1 || lvl > 22 )) /* TODO: ZSTD_maxCLevel() */
554 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_SNAPPY_INCR);
555 0 0 if ( val && SvTRUE(val) ) {
0 0 if ( val && SvTRUE(val) ) {
561 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_SNAPPY);
562 0 0 if ( val && SvTRUE(val) ) {
0 0 if ( val && SvTRUE(val) ) {
564 0 0 if (expect_true( enc->protocol_version > 1 ))
573 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_UNDEF_UNKNOWN);
574 0 0 if ( val && SvTRUE(val) ) {
0 0 if ( val && SvTRUE(val) ) {
579 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_SORT_KEYS);
580 0 0 if ( !val )
581 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_CANONICAL);
582 0 0 if ( val && SvTRUE(val) ) {
0 0 if ( val && SvTRUE(val) ) {
584 0 0 if (SvIV(val) > 1) {
586 0 0 if (SvIV(val) > 2) {
592 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_CANONICAL_REFS);
593 0 0 if ( !val )
594 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_CANONICAL);
595 0 0 if ( val && SvTRUE(val) )
0 0 if ( val && SvTRUE(val) )
598 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_ALIASED_DEDUPE_STRINGS);
599 0 0 if ( val && SvTRUE(val) )
0 0 if ( val && SvTRUE(val) )
602 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_DEDUPE_STRINGS);
603 0 0 if ( val && SvTRUE(val) )
0 0 if ( val && SvTRUE(val) )
607 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_STRINGIFY_UNKNOWN);
608 0 0 if ( val && SvTRUE(val) ) {
0 0 if ( val && SvTRUE(val) ) {
609 0 0 if (expect_false( undef_unknown ))
615 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_WARN_UNKNOWN);
616 0 0 if ( val && SvTRUE(val) ) {
0 0 if ( val && SvTRUE(val) ) {
618 0 0 if (SvIV(val) < 0)
622 0 0 if (compression_format) {
624 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_COMPRESS_THRESHOLD);
625 0 0 if ( val && SvOK(val) )
0 0 if ( val && SvOK(val) )
627 0 0 else if (compression_format == 1) {
629 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_SNAPPY_THRESHOLD);
630 0 0 if ( val && SvOK(val) )
0 0 if ( val && SvOK(val) )
635 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_MAX_RECURSION_DEPTH);
636 0 0 if ( val && SvTRUE(val) )
0 0 if ( val && SvTRUE(val) )
639 0 0 my_hv_fetchs(he, val, opt, SRL_ENC_OPT_IDX_USE_STANDARD_DOUBLE);
640 0 0 if ( val && SvTRUE(val) )
0 0 if ( val && SvTRUE(val) )
663 0 0 if (expect_false(SRL_ENC_HAVE_OPTION(enc, SRL_F_ENABLE_FREEZE_SUPPORT))) {
719 0 0 BUF_SIZE_ASSERT(&enc->buf, sizeof(SRL_MAGIC_STRING) + 1 + 1);
720 0 0 if (expect_true( enc->protocol_version > 2 ))
725 0 0 if (user_header_src == NULL) {
731 0 0 if (expect_false( enc->protocol_version < 2 ))
736 0 0 if (enc->tmp_buf.start == NULL)
741 0 0 SRL_ENC_UPDATE_BODY_POS(enc);
750 0 0 BUF_SIZE_ASSERT(&enc->buf, user_data_len + 1 + SRL_MAX_VARINT_LENGTH); /* +1 for bit field, +X for header len */
804 0 0 if ( f == nv || nv != nv ) {
0 0 if ( f == nv || nv != nv ) {
805 0 0 BUF_SIZE_ASSERT(&enc->buf, 1 + sizeof(f)); /* tag + payload */
815 0 0 BUF_SIZE_ASSERT(&enc->buf, 1 + sizeof(d)); /* tag + payload */
854 0 0 if (expect_true( SvIOK_UV(src) || SvIV(src) >= 0 )) {
0 0 if (expect_true( SvIOK_UV(src) || SvIV(src) >= 0 )) {
0 0 if (expect_true( SvIOK_UV(src) || SvIV(src) >= 0 )) {
856 0 0 if (num <= 15) {
867 0 0 if (num >= -16) {
891 0 0 if (expect_false( SRL_ENC_HAVE_OPTION(enc, SRL_F_ENABLE_FREEZE_SUPPORT) )) {
897 0 0 if (expect_false( method != NULL )) {
899 0 0 PTABLE_t *freezeobj_svhash = SRL_GET_FREEZEOBJ_SVHASH(enc);
900 0 0 if (SvREFCNT(referent)>1) {
903 0 0 if (!replacement) {
908 0 0 PUSHMARK(SP);
910 0 0 EXTEND(SP, 2);
921 0 0 while ( count-- > 0) {
924 0 0 if (!av_store((AV*)replacement,count,tmp))
929 0 0 FREETMPS;
948 0 0 if (expect_false( SRL_ENC_HAVE_OPTION(enc, SRL_F_CROAK_ON_BLESS)) ) {
952 0 0 } else if (expect_false( SRL_ENC_HAVE_OPTION(enc, SRL_F_NO_BLESS_OBJECTS) )) {
956 0 0 PTABLE_t *string_seenhash = SRL_GET_STR_PTR_SEENHASH(enc);
958 0 0 int is_av_or_hv= (svt == SVt_PVAV || svt== SVt_PVHV);
0 0 int is_av_or_hv= (svt == SVt_PVAV || svt== SVt_PVHV);
961 0 0 : (ptrdiff_t)PTABLE_fetch(string_seenhash, referent);
963 0 0 if (oldoffset) {
966 0 0 svt= replacement ? SvTYPE(replacement) : SvTYPE(referent);
967 0 0 if (SRL_UNSUPPORTED_SvTYPE(svt)) {
0 0 if (SRL_UNSUPPORTED_SvTYPE(svt)) {
0 0 if (SRL_UNSUPPORTED_SvTYPE(svt)) {
0 0 if (SRL_UNSUPPORTED_SvTYPE(svt)) {
973 0 0 if (oldoffset != 0) {
976 0 0 expect_false(replacement) ? SRL_HDR_OBJECTV_FREEZE : SRL_HDR_OBJECTV,
980 0 0 const char *class_name = HvNAME_get(stash);
0 0 const char *class_name = HvNAME_get(stash);
0 0 const char *class_name = HvNAME_get(stash);
0 0 const char *class_name = HvNAME_get(stash);
0 0 const char *class_name = HvNAME_get(stash);
0 0 const char *class_name = HvNAME_get(stash);
981 0 0 const size_t len = HvNAMELEN_get(stash);
0 0 const size_t len = HvNAMELEN_get(stash);
0 0 const size_t len = HvNAMELEN_get(stash);
0 0 const size_t len = HvNAMELEN_get(stash);
0 0 const size_t len = HvNAMELEN_get(stash);
0 0 const size_t len = HvNAMELEN_get(stash);
990 0 0 srl_buf_cat_char(&enc->buf, expect_false(replacement) ? SRL_HDR_OBJECT_FREEZE : SRL_HDR_OBJECT);
997 0 0 srl_dump_pv(aTHX_ enc, class_name, len, HvNAMEUTF8(stash));
0 0 srl_dump_pv(aTHX_ enc, class_name, len, HvNAMEUTF8(stash));
0 0 srl_dump_pv(aTHX_ enc, class_name, len, HvNAMEUTF8(stash));
0 0 srl_dump_pv(aTHX_ enc, class_name, len, HvNAMEUTF8(stash));
0 0 srl_dump_pv(aTHX_ enc, class_name, len, HvNAMEUTF8(stash));
0 0 srl_dump_pv(aTHX_ enc, class_name, len, HvNAMEUTF8(stash));
0 0 srl_dump_pv(aTHX_ enc, class_name, len, HvNAMEUTF8(stash));
1002 0 0 if (is_av_or_hv) {
1024 0 0 if (SRL_ENC_HAVE_OPER_FLAG(enc, SRL_OF_ENCODER_DIRTY)) {
1046 0 0 if (expect_false(compress_flags))
1056 0 0 SRL_ENC_UPDATE_BODY_POS(enc);
1062 0 0 if ((uncompressed_body_length < (STRLEN)enc->compress_threshold) || uncompressed_body_length > max_len) {
0 0 if ((uncompressed_body_length < (STRLEN)enc->compress_threshold) || uncompressed_body_length > max_len) {
1063 0 0 if (uncompressed_body_length > max_len) {
1076 0 0 SRL_ENC_UPDATE_BODY_POS(enc);
1083 0 0 SRL_ENC_UPDATE_BODY_POS(enc);
1101 0 0 if ( flags && /* for now simpler and equivalent to: flags == SRL_ENC_SV_REUSE_MAYBE */
1102 0 0 (BUF_POS_OFS(&enc->buf) > 20 && BUF_SPACE(&enc->buf) < BUF_POS_OFS(&enc->buf) )
0 0 (BUF_POS_OFS(&enc->buf) > 20 && BUF_SPACE(&enc->buf) < BUF_POS_OFS(&enc->buf) )
1121 0 0 if (!weak_seenhash)
1132 0 0 while ( NULL != (ent = PTABLE_iter_next(it)) ) {
1134 0 0 if ( offset ) {
1182 0 0 while((ch = *fptr++)) {
1183 0 0 if(match_flags & 1) {
1211 0 0 BUF_SIZE_ASSERT_AV(&enc->buf, n);
1213 0 0 if (n < 16 && refcount == 1 && !SRL_ENC_HAVE_OPTION(enc,SRL_F_CANONICAL_REFS)) {
0 0 if (n < 16 && refcount == 1 && !SRL_ENC_HAVE_OPTION(enc,SRL_F_CANONICAL_REFS)) {
0 0 if (n < 16 && refcount == 1 && !SRL_ENC_HAVE_OPTION(enc,SRL_F_CANONICAL_REFS)) {
1220 0 0 if (!n)
1223 0 0 if (SvMAGICAL(src)) {
1225 0 0 for (i = 0; i < n; ++i) {
1227 0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
0 0 CALL_SRL_DUMP_SVP(enc, svp);
1233 0 0 for ( ; svp < end ; svp++) {
1235 0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
0 0 CALL_SRL_DUMP_SV(enc, *svp);
1249 0 0 for (he= *he_ptr++; he; he= HeNEXT(he) ) {
1251 0 0 if (v != &PL_sv_placeholder) {
1253 0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
1254 0 0 if (--n == 0) {
1260 0 0 } while ( he_ptr < he_end );
1271 0 0 while ((he = hv_iternext(src))) {
1273 0 0 if (expect_false( i == n ))
1277 0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
1280 0 0 if (expect_false( i != n ))
1344 0 0 const STRLEN a_len= a->key.sv ? SvCUR(a->key.sv) : HeKLEN(a->val.he);
1345 0 0 const STRLEN b_len= b->key.sv ? SvCUR(b->key.sv) : HeKLEN(b->val.he);
1346 0 0 if (a_len != b_len) {
1349 0 0 a_isutf8= (a->key.sv ? SvUTF8(a->key.sv) : HeKUTF8(a->val.he)) ? 0 : 1;
0 0 a_isutf8= (a->key.sv ? SvUTF8(a->key.sv) : HeKUTF8(a->val.he)) ? 0 : 1;
1350 0 0 b_isutf8= (b->key.sv ? SvUTF8(b->key.sv) : HeKUTF8(b->val.he)) ? 0 : 1;
0 0 b_isutf8= (b->key.sv ? SvUTF8(b->key.sv) : HeKUTF8(b->val.he)) ? 0 : 1;
1351 0 0 if (a_isutf8 != b_isutf8) {
1354 0 0 a_ptr= a->key.sv ? SvPVX(a->key.sv) : HeKEY(a->val.he);
1355 0 0 b_ptr= b->key.sv ? SvPVX(b->key.sv) : HeKEY(b->val.he);
1366 0 0 if ( SRL_ENC_HAVE_OPTION(enc, SRL_F_SORT_KEYS_PERL) ) {
1367 0 0 int sort_dir= SRL_ENC_HAVE_OPTION(enc, SRL_F_SORT_KEYS_PERL_REV) ? 1 : -1;
1379 0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
0 0 QSORT(HE_SV, array, n, ISLT_SV_CMP);
1381 0 0 FREETMPS;
1385 0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
0 0 QSORT(HE_SV, array, n, ISLT_HE_SV);
1410 0 0 if (!array) {
1411 0 0 Newx(array, n, HE_SV);
1415 0 0 while ((he = hv_iternext(src))) {
1416 0 0 if (expect_false( i == n ))
1417 0 0 croak("Panic: cannot serialize a %s hash which changes its size!",is_tie ? "tied" : "untied");
1422 0 0 if (expect_false( i != n ))
1423 0 0 croak("Panic: can not serialize a %s hash which changes it size!", is_tie ? "tied" : "untied");
1427 0 0 while ( array < array_end ) {
1428 0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->key.sv);
1429 0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
0 0 CALL_SRL_DUMP_SV(enc, array->val.sv);
1451 0 0 Newx(array, n, HE_SV);
1454 0 0 while ((he = hv_iternext(src))) {
1455 0 0 if ( HeKWASUTF8(he) ) {
1458 0 0 array_ptr->key.sv = HeSVKEY(he);
0 0 array_ptr->key.sv = HeSVKEY(he);
1467 0 0 for ( array_end= array + n; array < array_end; array++ ) {
1472 0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
0 0 CALL_SRL_DUMP_SV(enc, v);
1482 0 0 if ( SvMAGICAL(src) ) {
1486 0 0 while ((he = hv_iternext(src))) { ++n; }
1489 0 0 n= HvUSEDKEYS(src);
1492 0 0 BUF_SIZE_ASSERT_HV(&enc->buf, n);
1493 0 0 if (n < 16 && refcount == 1 && !SRL_ENC_HAVE_OPTION(enc,SRL_F_CANONICAL_REFS)) {
0 0 if (n < 16 && refcount == 1 && !SRL_ENC_HAVE_OPTION(enc,SRL_F_CANONICAL_REFS)) {
0 0 if (n < 16 && refcount == 1 && !SRL_ENC_HAVE_OPTION(enc,SRL_F_CANONICAL_REFS)) {
1500 0 0 if ( n ) {
1501 0 0 if ( SvMAGICAL(src) || SRL_ENC_HAVE_OPTION(enc, SRL_F_SORT_KEYS_PERL) ) {
0 0 if ( SvMAGICAL(src) || SRL_ENC_HAVE_OPTION(enc, SRL_F_SORT_KEYS_PERL) ) {
1504 0 0 if ( SRL_ENC_HAVE_OPTION(enc, SRL_F_SORT_KEYS|SRL_F_SORT_KEYS_PERL) ) {
1512 0 0 if ( SRL_ENC_HAVE_OPTION(enc, SRL_F_SORT_KEYS) ) {
1531 0 0 if (HeKLEN(src) == HEf_SVKEY) {
1532 0 0 SV *sv = HeSVKEY(src);
0 0 SV *sv = HeSVKEY(src);
1547 0 0 if ( share_keys && SRL_ENC_HAVE_OPTION(enc, SRL_F_SHARED_HASHKEYS) /* only enter branch if shared hk's enabled */
1549 0 0 && (!DO_SHARED_HASH_ENTRY_REFCOUNT_CHECK
1554 0 0 PTABLE_t *string_seenhash = SRL_GET_STR_PTR_SEENHASH(enc);
1556 0 0 if (oldoffset != 0) {
1568 0 0 mode= HeKWASUTF8(src) ? 2 : HeKUTF8(src) ? 1 : 0;
1570 0 0 if (mode == 2) { /* must convert back to utf8 */
1584 0 0 if ( SRL_ENC_HAVE_OPTION(enc, SRL_F_DEDUPE_STRINGS) && len > 3 ) {
0 0 if ( SRL_ENC_HAVE_OPTION(enc, SRL_F_DEDUPE_STRINGS) && len > 3 ) {
1585 0 0 HV *string_deduper_hv= SRL_GET_STR_DEDUPER_HV(enc);
1587 0 0 if (!dupe_offset_he) {
1590 0 0 const char out_tag= SRL_ENC_HAVE_OPTION(enc, SRL_F_ALIASED_DEDUPE_STRINGS)
1594 0 0 if (SvIOK(ofs_sv)) {
1596 0 0 if (out_tag == SRL_HDR_ALIAS)
1600 0 0 } else if (SvUOK(ofs_sv)) {
1615 0 0 BUF_SIZE_ASSERT(&enc->buf, 1 + SRL_MAX_VARINT_LENGTH + src_len); /* overallocate a bit sometimes */
1616 0 0 if (is_utf8) {
1618 0 0 } else if (src_len <= SRL_MASK_SHORT_BINARY_LEN) {
1630 0 0 if (SvOOK(hv)) {
1661 0 0 if (expect_false( ++enc->recursion_depth == enc->max_recursion_depth )) {
1672 0 0 if ( SvMAGICAL(src) ) {
1675 0 0 if (svt != SVt_PVHV)
1680 0 0 if (expect_false( svt == SVt_PVHV && SvOOK(src) )) {
0 0 if (expect_false( svt == SVt_PVHV && SvOOK(src) )) {
0 0 if (expect_false( svt == SVt_PVHV && SvOOK(src) )) {
1685 0 0 if (expect_false( mg || backrefs )) {
0 0 if (expect_false( mg || backrefs )) {
0 0 if (expect_false( mg || backrefs )) {
1686 0 0 PTABLE_t *weak_seenhash= SRL_GET_WEAK_SEENHASH(enc);
1688 0 0 if (!pe) {
1696 0 0 if (pe->value)
1705 0 0 if ( expect_false( refcount > 1 ) ) {
1706 0 0 if (src == &PL_sv_undef && enc->protocol_version >=3 ) {
0 0 if (src == &PL_sv_undef && enc->protocol_version >=3 ) {
1712 0 0 if (src == &PL_sv_yes) {
1718 0 0 if (src == &PL_sv_no) {
1724 0 0 PTABLE_t *ref_seenhash= SRL_GET_REF_SEENHASH(enc);
1726 0 0 if (expect_false(oldoffset)) {
1728 0 0 if (ref_rewrite_pos) {
1745 0 0 if (expect_false( weakref_ofs != 0 )) {
1750 0 0 if (replacement) {
1751 0 0 if (SvROK(replacement)) {
1766 0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
0 0 _SRL_IF_SIMPLE_DIRECT_DUMP_SV(enc, src, svt)
1776 0 0 if (SvROK(src)) {
1786 0 0 if (expect_false( SvWEAKREF(src) )) {
1794 0 0 if ( expect_false( sv_isobject(src) ) ) {
1797 0 0 if (srl_dump_classname(aTHX_ enc, referent, replacement)) {
1822 0 0 if (svt == SVt_PVHV) {
1826 0 0 if (svt == SVt_PVAV) {
1830 0 0 if ( ! SvOK(src) ) { /* undef and weird shit */
1831 0 0 if ( SRL_UNSUPPORTED_SvTYPE(svt) ) {
0 0 if ( SRL_UNSUPPORTED_SvTYPE(svt) ) {
0 0 if ( SRL_UNSUPPORTED_SvTYPE(svt) ) {
0 0 if ( SRL_UNSUPPORTED_SvTYPE(svt) ) {
1886 0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
1888 0 0 else if (src == &PL_sv_undef && enc->protocol_version >= 3 ) {
0 0 else if (src == &PL_sv_undef && enc->protocol_version >= 3 ) {
1895 0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);
0 0 SRL_HANDLE_UNSUPPORTED_SvTYPE(enc, src, svt, refsv, ref_rewrite_pos);