diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2007-02-28 00:28:14 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:48:58 -0500 |
commit | a635df47da4c0f8434dc51349600edf9ef0805f1 (patch) | |
tree | f5165cc63105958e2488b1eb5a1752e19a57620a | |
parent | c1aef15fe7e7a7558b6ede11babc1932263814e6 (diff) | |
download | samba-a635df47da4c0f8434dc51349600edf9ef0805f1.tar.gz samba-a635df47da4c0f8434dc51349600edf9ef0805f1.tar.bz2 samba-a635df47da4c0f8434dc51349600edf9ef0805f1.zip |
r21574: Fix handling of DECLARE.
(This used to be commit 6a4033464bf269176f928a5b3b7e63aad1bb1e7a)
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/NDR.pm | 2 | ||||
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Typelist.pm | 1 | ||||
-rwxr-xr-x | source4/pidl/tests/ndr.pl | 8 |
3 files changed, 9 insertions, 2 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/NDR.pm b/source4/pidl/lib/Parse/Pidl/NDR.pm index 934aba3a02..998b19aabf 100644 --- a/source4/pidl/lib/Parse/Pidl/NDR.pm +++ b/source4/pidl/lib/Parse/Pidl/NDR.pm @@ -349,7 +349,7 @@ sub align_type($) my $dt = getType($e); - if ($dt->{TYPE} eq "TYPEDEF") { + if ($dt->{TYPE} eq "TYPEDEF" or $dt->{TYPE} eq "DECLARE") { return align_type($dt->{DATA}); } elsif ($dt->{TYPE} eq "ENUM") { return align_type(Parse::Pidl::Typelist::enum_type_fn($dt)); diff --git a/source4/pidl/lib/Parse/Pidl/Typelist.pm b/source4/pidl/lib/Parse/Pidl/Typelist.pm index 72c4b18d0b..8e311554bc 100644 --- a/source4/pidl/lib/Parse/Pidl/Typelist.pm +++ b/source4/pidl/lib/Parse/Pidl/Typelist.pm @@ -132,6 +132,7 @@ sub hasType($) sub is_scalar($) { + sub is_scalar($); my $type = shift; return 1 if (ref($type) eq "HASH" and $type->{TYPE} eq "SCALAR"); diff --git a/source4/pidl/tests/ndr.pl b/source4/pidl/tests/ndr.pl index 3be5992ef0..17003d59c4 100755 --- a/source4/pidl/tests/ndr.pl +++ b/source4/pidl/tests/ndr.pl @@ -4,7 +4,7 @@ use strict; use warnings; -use Test::More tests => 22; +use Test::More tests => 25; use FindBin qw($RealBin); use lib "$RealBin"; use Util; @@ -204,11 +204,17 @@ $e = { $ne = ParseElement($e, undef); is($ne->{REPRESENTATION_TYPE}, "uint8"); +is(align_type("hyper"), 8); is(align_type("uint32"), 4); is(align_type("uint16"), 2); is(align_type("uint8"), 1); is(align_type({ TYPE => "STRUCT", "NAME" => "bla", ELEMENTS => [ { TYPE => "uint16" } ] }), 4); +is(align_type({ TYPE => "STRUCT", + ELEMENTS => [ { TYPE => "hyper" } ] }), 8); +is(align_type({ TYPE => "DECLARE", DATA => { + TYPE => "STRUCT", + ELEMENTS => [ { TYPE => "hyper" } ] }}), 8); is(align_type({ TYPE => "STRUCT", "NAME" => "bla", ELEMENTS => [ { TYPE => "uint8" } ] }), 4); |