summaryrefslogtreecommitdiffstats
path: root/XS.xs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2010-11-16 10:10:36 -0600
committerJesse Luehrs <doy@tozt.net>2010-11-16 10:12:06 -0600
commit061b471e44c5994eef6ba465048e3bff652037e5 (patch)
tree777b99e7902065247815d01554465429f08c7be9 /XS.xs
parentf88deb66271c78217bd0b488a5ab4581d5b6794a (diff)
downloadpackage-stash-xs-061b471e44c5994eef6ba465048e3bff652037e5.tar.gz
package-stash-xs-061b471e44c5994eef6ba465048e3bff652037e5.zip
we want the values here, not the keys
Diffstat (limited to 'XS.xs')
-rw-r--r--XS.xs5
1 files changed, 2 insertions, 3 deletions
diff --git a/XS.xs b/XS.xs
index db34488..5957b1a 100644
--- a/XS.xs
+++ b/XS.xs
@@ -193,19 +193,18 @@ void _deconstruct_variable_name(SV *variable, varspec_t *varspec)
void _deconstruct_variable_hash(HV *variable, varspec_t *varspec)
{
HE *val;
- STRLEN len;
val = hv_fetch_ent(variable, name_key, 0, name_hash);
if (!val)
croak("The 'name' key is required in variable specs");
- varspec->name = sv_2mortal(newSVhe(val));
+ varspec->name = sv_2mortal(newSVsv(HeVAL(val)));
val = hv_fetch_ent(variable, type_key, 0, type_hash);
if (!val)
croak("The 'type' key is required in variable specs");
- varspec->type = string_to_vartype(HePV(val, len));
+ varspec->type = string_to_vartype(SvPV_nolen(HeVAL(val)));
}
int _valid_for_type(SV *value, vartype_t type)