From 0de6851e83d075e8c001255990b2018acc4a56c2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 11 Feb 2005 02:05:47 +0000 Subject: r5320: Treat structs and unions somewhat more similarly: - use same names in hashes (DATA -> ELEMENTS, etc) - [case()] and [default] are no longer special case, they're just regular properties (This used to be commit 6a0f599f822f5c42d93e78c13765804ab2223968) --- source4/build/pidl/validator.pm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'source4/build/pidl/validator.pm') diff --git a/source4/build/pidl/validator.pm b/source4/build/pidl/validator.pm index c9b717434f..775f9b46aa 100644 --- a/source4/build/pidl/validator.pm +++ b/source4/build/pidl/validator.pm @@ -4,6 +4,7 @@ # released under the GNU GPL package IdlValidator; +use Data::Dumper; use strict; @@ -66,8 +67,19 @@ sub ValidStruct($) sub ValidUnion($) { my($union) = shift; - foreach my $e (@{$union->{DATA}}) { + foreach my $e (@{$union->{ELEMENTS}}) { $e->{PARENT} = $union; + + if (defined($e->{PROPERTIES}->{default}) and + defined($e->{PROPERTIES}->{case})) { + fatal "Union member $e->{NAME} can not have both default and case properties!\n"; + } + + unless (defined ($e->{PROPERTIES}->{default}) or + defined ($e->{PROPERTIES}->{case})) { + fatal "Union member $e->{NAME} must have default or case property\n"; + } + ValidElement($e); } } -- cgit