summaryrefslogtreecommitdiff
path: root/mg.c
diff options
context:
space:
mode:
authorMichael G. Schwern <schwern@pobox.com>2002-08-06 06:05:10 -0700
committerhv <hv@crypt.org>2002-08-17 00:51:19 +0000
commit6d822dc4045278fb03135b2683bac92dba061369 (patch)
tree39e9aa0ce54a7caf711f12d43985793b79fb762d /mg.c
parent485894a1e3cb3873ba7373c744a8b6231190fbf8 (diff)
downloadperl-6d822dc4045278fb03135b2683bac92dba061369.tar.gz
Remove pseudo-hashes (complete)
Message-id: <20020806200510.GC31473@ool-18b93024.dyn.optonline.net> p4raw-id: //depot/perl@17725
Diffstat (limited to 'mg.c')
-rw-r--r--mg.c26
1 files changed, 6 insertions, 20 deletions
diff --git a/mg.c b/mg.c
index 1c7d239eae..9e0b4fa16a 100644
--- a/mg.c
+++ b/mg.c
@@ -1674,16 +1674,9 @@ Perl_magic_getdefelem(pTHX_ SV *sv, MAGIC *mg)
if (LvTARGLEN(sv)) {
if (mg->mg_obj) {
SV *ahv = LvTARG(sv);
- if (SvTYPE(ahv) == SVt_PVHV) {
- HE *he = hv_fetch_ent((HV*)ahv, mg->mg_obj, FALSE, 0);
- if (he)
- targ = HeVAL(he);
- }
- else {
- SV **svp = avhv_fetch_ent((AV*)ahv, mg->mg_obj, FALSE, 0);
- if (svp)
- targ = *svp;
- }
+ HE *he = hv_fetch_ent((HV*)ahv, mg->mg_obj, FALSE, 0);
+ if (he)
+ targ = HeVAL(he);
}
else {
AV* av = (AV*)LvTARG(sv);
@@ -1729,16 +1722,9 @@ Perl_vivify_defelem(pTHX_ SV *sv)
if (mg->mg_obj) {
SV *ahv = LvTARG(sv);
STRLEN n_a;
- if (SvTYPE(ahv) == SVt_PVHV) {
- HE *he = hv_fetch_ent((HV*)ahv, mg->mg_obj, TRUE, 0);
- if (he)
- value = HeVAL(he);
- }
- else {
- SV **svp = avhv_fetch_ent((AV*)ahv, mg->mg_obj, TRUE, 0);
- if (svp)
- value = *svp;
- }
+ HE *he = hv_fetch_ent((HV*)ahv, mg->mg_obj, TRUE, 0);
+ if (he)
+ value = HeVAL(he);
if (!value || value == &PL_sv_undef)
Perl_croak(aTHX_ PL_no_helem, SvPV(mg->mg_obj, n_a));
}