r21575: Fix handling of is_scalar() for declares.
authorJelmer Vernooij <jelmer@samba.org>
Wed, 28 Feb 2007 00:35:21 +0000 (00:35 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:48:59 +0000 (14:48 -0500)
source/pidl/lib/Parse/Pidl/Typelist.pm
source/pidl/tests/typelist.pl

index 8e311554bc9d4c7c9be7c62f1f26c56b0dd7a9e4..e635411f3cf4f13bbc0f4159543717d08e01c79f 100644 (file)
@@ -138,7 +138,8 @@ sub is_scalar($)
        return 1 if (ref($type) eq "HASH" and $type->{TYPE} eq "SCALAR");
 
        if (my $dt = getType($type)) {
-               return is_scalar($dt->{DATA}) if ($dt->{TYPE} eq "TYPEDEF");
+               return is_scalar($dt->{DATA}) if ($dt->{TYPE} eq "TYPEDEF" or 
+                                                 $dt->{TYPE} eq "DECLARE");
                return 1 if ($dt->{TYPE} eq "SCALAR" or $dt->{TYPE} eq "ENUM" or 
                                 $dt->{TYPE} eq "BITMAP");
        }
index e538cb2e0dc3a1c23b2c88bd2857a420c249c778..376bd208f096241dd5e9255e75d837268d3afb2e 100755 (executable)
@@ -4,7 +4,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 50;
+use Test::More tests => 52;
 use FindBin qw($RealBin);
 use lib "$RealBin";
 use Util;
@@ -55,6 +55,8 @@ is(0, is_scalar("nonexistant"));
 is(1, is_scalar({TYPE => "ENUM"}));
 is(0, is_scalar({TYPE => "STRUCT"}));
 is(1, is_scalar({TYPE => "TYPEDEF", DATA => {TYPE => "ENUM" }}));
+is(1, is_scalar("mytypedef"));
+is(1, is_scalar({TYPE => "DECLARE", DATA => {TYPE => "ENUM" }}));
 
 is(1, scalar_is_reference("string"));
 is(0, scalar_is_reference("uint32"));