summaryrefslogtreecommitdiffstats
path: root/lib/Package/Stash/PP.pm
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-01-03 19:55:53 -0600
committerJesse Luehrs <doy@tozt.net>2013-01-03 19:55:53 -0600
commitd4f755a790d60fee0757d406d397153d99f1649e (patch)
tree54456e4f6545ad396fa79e14d98143c0eef3b565 /lib/Package/Stash/PP.pm
parentcd533531efb6c83b02fd00fc50b264beb066be5f (diff)
downloadpackage-stash-d4f755a790d60fee0757d406d397153d99f1649e.tar.gz
package-stash-d4f755a790d60fee0757d406d397153d99f1649e.zip
handle things like PL_sv_undef here
it's B::SPECIAL, not B::SV (sigh)
Diffstat (limited to 'lib/Package/Stash/PP.pm')
-rw-r--r--lib/Package/Stash/PP.pm5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Package/Stash/PP.pm b/lib/Package/Stash/PP.pm
index 2508052..71ee4e5 100644
--- a/lib/Package/Stash/PP.pm
+++ b/lib/Package/Stash/PP.pm
@@ -250,7 +250,10 @@ sub has_symbol {
return defined ${ *{$entry_ref}{$type} };
}
else {
- return B::svref_2object($entry_ref)->SV->isa('B::SV');
+ my $sv = B::svref_2object($entry_ref)->SV;
+ return $sv->isa('B::SV')
+ || ($sv->isa('B::SPECIAL')
+ && $B::specialsv_name[$$sv] ne 'Nullsv');
}
}
else {