diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-05-07 17:18:18 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-09-15 17:36:58 +0200 |
commit | 7b88d09d8dbb1a31e4266a39e2ff5e93dcc529c0 (patch) | |
tree | 9f41d4f3a69fbca13d571f34a25f10213b6fb610 /source4/pidl/lib/Parse/Pidl/Typelist.pm | |
parent | 952be0f104a1ccf44b2115bad61304512f096721 (diff) | |
download | samba-7b88d09d8dbb1a31e4266a39e2ff5e93dcc529c0.tar.gz samba-7b88d09d8dbb1a31e4266a39e2ff5e93dcc529c0.tar.bz2 samba-7b88d09d8dbb1a31e4266a39e2ff5e93dcc529c0.zip |
Reimport pidl support for COM.
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl/Typelist.pm')
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Typelist.pm | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/Typelist.pm b/source4/pidl/lib/Parse/Pidl/Typelist.pm index 8ba1ae47af..c5c458ac6b 100644 --- a/source4/pidl/lib/Parse/Pidl/Typelist.pm +++ b/source4/pidl/lib/Parse/Pidl/Typelist.pm @@ -245,7 +245,7 @@ sub mapType($$) return mapType($t->{DATA}, $n) if ($t->{TYPE} eq "TYPEDEF"); return mapScalarType($n) if ($t->{TYPE} eq "SCALAR"); return "enum $n" if ($t->{TYPE} eq "ENUM"); - return "struct $n" if ($t->{TYPE} eq "STRUCT"); + return "struct $n" if ($t->{TYPE} eq "STRUCT" or $t->{TYPE} eq "INTERFACE"); return "union $n" if ($t->{TYPE} eq "UNION"); return mapScalarType(bitmap_type_fn($t)) if ($t->{TYPE} eq "BITMAP"); die("Unknown type $t->{TYPE}"); @@ -273,6 +273,13 @@ sub LoadIdl($) foreach my $x (@{$idl}) { next if $x->{TYPE} ne "INTERFACE"; + # DCOM interfaces can be types as well + addType({ + NAME => $x->{NAME}, + TYPE => "TYPEDEF", + DATA => $x + }) if (has_property($x, "object")); + foreach my $y (@{$x->{DATA}}) { addType($y) if ( $y->{TYPE} eq "TYPEDEF" |