svn commit: samba r19546 - in branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl: . Samba4/NDR

jelmer at samba.org jelmer at samba.org
Sat Nov 4 02:51:05 GMT 2006


Author: jelmer
Date: 2006-11-04 02:51:03 +0000 (Sat, 04 Nov 2006)
New Revision: 19546

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19546

Log:
fix number of bytes pushed when using switch_type() set to enum types.
die() on invalid used of enum_type_fn()

Modified:
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm


Changeset:
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm	2006-11-04 01:53:29 UTC (rev 19545)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm	2006-11-04 02:51:03 UTC (rev 19546)
@@ -1694,7 +1694,7 @@
 	pidl "int level;";
 	if (defined($switch_type)) {
 		if (Parse::Pidl::Typelist::typeIs($switch_type, "ENUM")) {
-			$switch_type = Parse::Pidl::Typelist::enum_type_fn(getType($switch_type));
+			$switch_type = Parse::Pidl::Typelist::enum_type_fn(getType($switch_type)->{DATA});
 		}
 		pidl mapType($switch_type) . " _level;";
 	}

Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm	2006-11-04 01:53:29 UTC (rev 19545)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm	2006-11-04 02:51:03 UTC (rev 19546)
@@ -153,6 +153,7 @@
 sub enum_type_fn($)
 {
 	my $enum = shift;
+	$enum->{TYPE} eq "ENUM" or die("not an enum");
 	if (has_property($enum->{PARENT}, "enum8bit")) {
 		return "uint8";
 	} elsif (has_property($enum->{PARENT}, "v1_enum")) {



More information about the samba-cvs mailing list