summaryrefslogtreecommitdiff
path: root/source4/build/pidl/validator.pm
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2005-02-11 02:05:47 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:09:41 -0500
commit0de6851e83d075e8c001255990b2018acc4a56c2 (patch)
tree9f5ebc9512992d2da6fcc7b9b034cfb9472b4077 /source4/build/pidl/validator.pm
parentaf7e9f2b5907a36d0d3c454d9ba9e49f98a11426 (diff)
downloadsamba-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.pm14
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);
}
}