-only run mg_find for SV's of type SVt_PVMG per "if the SV is not of type SVt_PVMG, Perl may core dump." under Finding Magic in perlguts
-hv_store_ent returns NULL when storing an SV to an HV with tie magic, such as when the HV is utilizing threads::shared
SvSHARE(sv);
}
#endif
- MAGIC *mg = mg_find(sv, PERL_MAGIC_shared_scalar);
+ MAGIC *mg = (SvTYPE(sv) == SVt_PVMG) ? mg_find(sv, PERL_MAGIC_shared_scalar) : NULL;
fi->fh = mg ? PTR2IV(mg->mg_ptr) : PTR2IV(sv);
if(hv_store_ent(MY_CXT.handles, FH_KEY(fi), SvREFCNT_inc(sv), 0) == NULL) {
SvREFCNT_dec(sv);
- return;
}
SvSETMAGIC(sv);
}