summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2010-05-12 00:23:13 -0500
committerJesse Luehrs <doy@tozt.net>2010-05-12 00:23:13 -0500
commit42fa5cfc8a6f9bac3780011ad11896bc107ed47c (patch)
tree16469a7ff4cc8e73a1ce15512640e715496f5b9c /lib
parent6ee333b86d6a1141415a70dacb38f30f8d8e2e9b (diff)
downloadpackage-stash-xs-42fa5cfc8a6f9bac3780011ad11896bc107ed47c.tar.gz
package-stash-xs-42fa5cfc8a6f9bac3780011ad11896bc107ed47c.zip
always save and restore scalars, since has_package_symbol isn't reliable
it returns false even if a scalar has been declared but not initialized yet, which is inconsistent with how has_package_symbol works for all other types, but I think it's unavoidable
Diffstat (limited to 'lib')
-rw-r--r--lib/Stash/Manip.pm10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/Stash/Manip.pm b/lib/Stash/Manip.pm
index 40e9567..3055d1d 100644
--- a/lib/Stash/Manip.pm
+++ b/lib/Stash/Manip.pm
@@ -263,25 +263,25 @@ sub remove_package_symbol {
$io = $self->get_package_symbol($io_desc) if $self->has_package_symbol($io_desc);
}
elsif ($type eq 'ARRAY') {
- $scalar = $self->get_package_symbol($scalar_desc) if $self->has_package_symbol($scalar_desc);
+ $scalar = $self->get_package_symbol($scalar_desc);
$hash = $self->get_package_symbol($hash_desc) if $self->has_package_symbol($hash_desc);
$code = $self->get_package_symbol($code_desc) if $self->has_package_symbol($code_desc);
$io = $self->get_package_symbol($io_desc) if $self->has_package_symbol($io_desc);
}
elsif ($type eq 'HASH') {
- $scalar = $self->get_package_symbol($scalar_desc) if $self->has_package_symbol($scalar_desc);
+ $scalar = $self->get_package_symbol($scalar_desc);
$array = $self->get_package_symbol($array_desc) if $self->has_package_symbol($array_desc);
$code = $self->get_package_symbol($code_desc) if $self->has_package_symbol($code_desc);
$io = $self->get_package_symbol($io_desc) if $self->has_package_symbol($io_desc);
}
elsif ($type eq 'CODE') {
- $scalar = $self->get_package_symbol($scalar_desc) if $self->has_package_symbol($scalar_desc);
+ $scalar = $self->get_package_symbol($scalar_desc);
$array = $self->get_package_symbol($array_desc) if $self->has_package_symbol($array_desc);
$hash = $self->get_package_symbol($hash_desc) if $self->has_package_symbol($hash_desc);
$io = $self->get_package_symbol($io_desc) if $self->has_package_symbol($io_desc);
}
elsif ($type eq 'IO') {
- $scalar = $self->get_package_symbol($scalar_desc) if $self->has_package_symbol($scalar_desc);
+ $scalar = $self->get_package_symbol($scalar_desc);
$array = $self->get_package_symbol($array_desc) if $self->has_package_symbol($array_desc);
$hash = $self->get_package_symbol($hash_desc) if $self->has_package_symbol($hash_desc);
$code = $self->get_package_symbol($code_desc) if $self->has_package_symbol($code_desc);
@@ -292,7 +292,7 @@ sub remove_package_symbol {
$self->remove_package_glob($name);
- $self->add_package_symbol($scalar_desc => $scalar) if defined $scalar;
+ $self->add_package_symbol($scalar_desc => $scalar);
$self->add_package_symbol($array_desc => $array) if defined $array;
$self->add_package_symbol($hash_desc => $hash) if defined $hash;
$self->add_package_symbol($code_desc => $code) if defined $code;