From 9fb8ee5765a60ddd1d559df251254b32a6d81847 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 20 Nov 2003 05:39:54 +0000 Subject: * cope with pidl not being in $HOME/pidl * cope with empty structures in unions (This used to be commit a706ff78937bea64acd28381466770749566399f) --- source4/build/pidl/parser.pm | 8 +++++++- source4/build/pidl/pidl.pl | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/source4/build/pidl/parser.pm b/source4/build/pidl/parser.pm index e06f3d4288..9d05f7f922 100644 --- a/source4/build/pidl/parser.pm +++ b/source4/build/pidl/parser.pm @@ -115,7 +115,9 @@ sub struct_alignment if ($structs{$e->{TYPE}}->{DATA}->{TYPE} eq "STRUCT") { $a = struct_alignment($structs{$e->{TYPE}}->{DATA}); } elsif ($structs{$e->{TYPE}}->{DATA}->{TYPE} eq "UNION") { - $a = union_alignment($structs{$e->{TYPE}}->{DATA}); + if (defined $structs{$e->{TYPE}}->{DATA}) { + $a = union_alignment($structs{$e->{TYPE}}->{DATA}); + } } } else { $a = util::type_align($e); @@ -140,6 +142,10 @@ sub union_alignment foreach my $e (@{$u->{DATA}}) { my $a = 1; + if ($e->{TYPE} eq "EMPTY") { + next; + } + if (!util::need_wire_pointer($e) && defined $structs{$e->{DATA}->{TYPE}}) { my $s = $structs{$e->{DATA}->{TYPE}}; diff --git a/source4/build/pidl/pidl.pl b/source4/build/pidl/pidl.pl index 484223d4aa..f68a722382 100755 --- a/source4/build/pidl/pidl.pl +++ b/source4/build/pidl/pidl.pl @@ -8,8 +8,8 @@ use strict; -use lib "$ENV{HOME}/pidl"; - +use FindBin qw($RealBin); +use lib "$RealBin"; use Getopt::Long; use idl; use dump; -- cgit