summaryrefslogtreecommitdiffstats
path: root/XS.xs
diff options
context:
space:
mode:
Diffstat (limited to 'XS.xs')
-rw-r--r--XS.xs6
1 files changed, 1 insertions, 5 deletions
diff --git a/XS.xs b/XS.xs
index 5957b1a..a32ca45 100644
--- a/XS.xs
+++ b/XS.xs
@@ -213,11 +213,7 @@ int _valid_for_type(SV *value, vartype_t type)
switch (type) {
case VAR_SCALAR:
- return sv_type == SVt_NULL ||
- sv_type == SVt_IV ||
- sv_type == SVt_NV ||
- sv_type == SVt_PV ||
- sv_type == SVt_RV;
+ return SvROK(value) ? SvOK(SvRV(value)) : SvOK(value);
case VAR_ARRAY:
return sv_type == SVt_PVAV;
case VAR_HASH: