T_BOOL failure example
authorDaniel Dragan <bulk88@hotmail.com>
Thu, 22 Nov 2012 07:51:06 +0000 (02:51 -0500)
committerTony Cook <tony@develop-help.com>
Wed, 19 Dec 2012 22:31:31 +0000 (09:31 +1100)
[perl #115796] T_BOOL failure example

ext/XS-Typemap/Typemap.pm
ext/XS-Typemap/Typemap.xs
ext/XS-Typemap/t/Typemap.t

index 1090d9a..44e1535 100644 (file)
@@ -55,6 +55,7 @@ $VERSION = '0.09';
            T_ENUM
            T_BOOL
            T_BOOL_2
+           T_BOOL_OUT
            T_U_INT
            T_SHORT
            T_U_SHORT
index f341a7b..dd34c39 100644 (file)
@@ -443,6 +443,14 @@ T_BOOL_2( in )
  OUTPUT:
    in
 
+void
+T_BOOL_OUT( out, in )
+  bool out
+  bool in
+ CODE:
+ out = in;
+ OUTPUT:
+   out
 
 ## T_U_INT
 
index 93c1979..5cad128 100644 (file)
@@ -6,7 +6,7 @@ BEGIN {
     }
 }
 
-use Test::More tests => 144;
+use Test::More tests => 146;
 
 use strict;
 use warnings;
@@ -159,6 +159,16 @@ ok( ! T_BOOL(undef) );
   ok( !eval { T_BOOL_2(undef); 1 } );
 }
 
+{
+    my ($in, $out);
+    $in = 1;
+    T_BOOL_OUT($out, $in);
+    ok($out, "T_BOOL_OUT, true in");
+    $in = 0;
+    T_BOOL_OUT($out, $in);
+    ok(!$out, "T_BOOL_OUT, false in");
+}
+
 # T_U_SHORT aka U16
 note("T_U_SHORT");
 is( T_U_SHORT(32000), 32000);