summaryrefslogtreecommitdiff
path: root/source4/pidl
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-02-28 00:35:21 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:48:59 -0500
commit240b470f4404b6a3517312827b74f775ae85a855 (patch)
tree915cfa91ddda5b78f5e12929ac626313a09baf06 /source4/pidl
parenta635df47da4c0f8434dc51349600edf9ef0805f1 (diff)
downloadsamba-240b470f4404b6a3517312827b74f775ae85a855.tar.gz
samba-240b470f4404b6a3517312827b74f775ae85a855.tar.bz2
samba-240b470f4404b6a3517312827b74f775ae85a855.zip
r21575: Fix handling of is_scalar() for declares.
(This used to be commit f0bc29df7297f8f91175091e5f4b14f4ae4b0591)
Diffstat (limited to 'source4/pidl')
-rw-r--r--source4/pidl/lib/Parse/Pidl/Typelist.pm3
-rwxr-xr-xsource4/pidl/tests/typelist.pl4
2 files changed, 5 insertions, 2 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/Typelist.pm b/source4/pidl/lib/Parse/Pidl/Typelist.pm
index 8e311554bc..e635411f3c 100644
--- a/source4/pidl/lib/Parse/Pidl/Typelist.pm
+++ b/source4/pidl/lib/Parse/Pidl/Typelist.pm
@@ -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");
}
diff --git a/source4/pidl/tests/typelist.pl b/source4/pidl/tests/typelist.pl
index e538cb2e0d..376bd208f0 100755
--- a/source4/pidl/tests/typelist.pl
+++ b/source4/pidl/tests/typelist.pl
@@ -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"));