svn commit: samba r6964 - in branches/tmp/pidl2/source/build/pidl: .

jelmer at samba.org jelmer at samba.org
Tue May 24 23:53:56 GMT 2005


Author: jelmer
Date: 2005-05-24 23:53:56 +0000 (Tue, 24 May 2005)
New Revision: 6964

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

Log:
Handle unions with deferred data embedded in other things correctly.

Modified:
   branches/tmp/pidl2/source/build/pidl/ndr_parser.pm


Changeset:
Modified: branches/tmp/pidl2/source/build/pidl/ndr_parser.pm
===================================================================
--- branches/tmp/pidl2/source/build/pidl/ndr_parser.pm	2005-05-24 22:48:49 UTC (rev 6963)
+++ branches/tmp/pidl2/source/build/pidl/ndr_parser.pm	2005-05-24 23:53:56 UTC (rev 6964)
@@ -631,7 +631,6 @@
 			} 
 		} elsif ($l->{TYPE} eq "SWITCH") {
 			ParseSwitchPush($e, $l, $ndr, $var_name, $ndr_flags, $env);
-			ParseElementPushLevel($e, GetNextLevel($e, $l), $ndr, $var_name, $env, $primitives, $deferred);
 		} elsif ($l->{TYPE} eq "DATA") {
 			ParseDataPush($e, $l, $ndr, $var_name, $ndr_flags);
 		}
@@ -677,6 +676,8 @@
 			deindent;
 			pidl "}";
 		}	
+	} elsif ($l->{TYPE} eq "SWITCH") {
+		ParseElementPushLevel($e, GetNextLevel($e, $l), $ndr, $var_name, $env, $primitives, $deferred);
 	}
 }
 
@@ -996,7 +997,6 @@
 			ParsePtrPull($e, $l, $ndr, $var_name);
 		} elsif ($l->{TYPE} eq "SWITCH") {
 			ParseSwitchPull($e, $l, $ndr, $var_name, $ndr_flags, $env);
-			ParseElementPullLevel($e,GetNextLevel($e,$l), $ndr, $var_name, $env, $primitives, $deferred);
 		} elsif ($l->{TYPE} eq "DATA") {
 			ParseDataPull($e, $l, $ndr, $var_name, $ndr_flags);
 		}
@@ -1049,6 +1049,8 @@
 			deindent;
 			pidl "}";
 		}
+	} elsif ($l->{TYPE} eq "SWITCH") {
+		ParseElementPullLevel($e,GetNextLevel($e,$l), $ndr, $var_name, $env, $primitives, $deferred);
 	}
 }
 



More information about the samba-cvs mailing list