diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2005-02-11 02:05:47 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:09:41 -0500 |
commit | 0de6851e83d075e8c001255990b2018acc4a56c2 (patch) | |
tree | 9f5ebc9512992d2da6fcc7b9b034cfb9472b4077 /source4/build/pidl/validator.pm | |
parent | af7e9f2b5907a36d0d3c454d9ba9e49f98a11426 (diff) | |
download | samba-0de6851e83d075e8c001255990b2018acc4a56c2.tar.gz samba-0de6851e83d075e8c001255990b2018acc4a56c2.tar.bz2 samba-0de6851e83d075e8c001255990b2018acc4a56c2.zip |
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)
Diffstat (limited to 'source4/build/pidl/validator.pm')
-rw-r--r-- | source4/build/pidl/validator.pm | 14 |
1 files changed, 13 insertions, 1 deletions
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); } } |