#if PERL_VERSION <= 8
case SVt_PVBM: TAG;
total_size += sizeof(XPVBM);
-#if (PERL_VERSION < 11)
total_size += SvROK(thing) ? thing_size(aTHX_ SvRV(thing), st) : SvLEN(thing);
-#else
- total_size += SvLEN(thing);
-#endif
total_size += magic_size(thing, st);
TAG;break;
#endif
pending_array = newAV();
- /* We cannot push HV/AV directly, only the RV. So deref it
- later (see below for "*** dereference later") and adjust here for
- the miscalculation.
+ /* If they passed us a reference then dereference it.
This is the only way we can check the sizes of arrays and hashes. */
if (SvROK(thing)) {
- RETVAL -= thing_size(aTHX_ thing, NULL);
+ thing = SvRV(thing);
}
/* Put it on the pending array */
av_push(pending_array, SvRV(thing));
}
TAG;break;
-
- /* this is the "*** dereference later" part - see above */
#if (PERL_VERSION < 11)
case SVt_RV: TAG;
#else