]> git.proxmox.com Git - perlmod.git/blobdiff - perlmod/src/scalar.rs
add is_defined helper glue
[perlmod.git] / perlmod / src / scalar.rs
index f43d14d44a35f17644670fb251a01449b0a555dd..1fb2b5f8392a11f79a1b121b63135fcbf13b7758 100644 (file)
@@ -197,6 +197,10 @@ impl ScalarRef {
 
     fn get_type(sv: *mut SV) -> Type {
         unsafe {
+            if !ffi::RSPL_is_defined(sv) {
+                return Type::Scalar(Flags::empty());
+            }
+
             // These are simple:
             if ffi::RSPL_is_reference(sv) {
                 return Type::Reference;
@@ -212,7 +216,6 @@ impl ScalarRef {
                 return Type::Scalar(Flags::from_bits_truncate(flags as u8));
             }
 
-            // Except for undef, but undef is difficult to catch:
             let ty = ffi::RSPL_svtype(sv);
             if ty == 0 {
                 // Looks like undef