svn commit: samba r7330 - in branches/SAMBA_4_0/source/build/pidl: .

metze at samba.org metze at samba.org
Mon Jun 6 12:04:25 GMT 2005


Author: metze
Date: 2005-06-06 12:04:24 +0000 (Mon, 06 Jun 2005)
New Revision: 7330

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

Log:
use ParseExpr() also for subcontext_size()

metze
Modified:
   branches/SAMBA_4_0/source/build/pidl/ndr_parser.pm


Changeset:
Modified: branches/SAMBA_4_0/source/build/pidl/ndr_parser.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/ndr_parser.pm	2005-06-06 10:30:45 UTC (rev 7329)
+++ branches/SAMBA_4_0/source/build/pidl/ndr_parser.pm	2005-06-06 12:04:24 UTC (rev 7330)
@@ -522,12 +522,14 @@
 	return $retndr;
 }
 
-sub ParseSubcontextPushEnd($$$)
+sub ParseSubcontextPushEnd($$$$)
 {
 	my $e = shift;
 	my $l = shift;
 	my $ndr_flags = shift;
+	my $env = shift;
 	my $ndr = "_ndr_$e->{NAME}";
+	my $subcontext_size = ParseExpr($l->{SUBCONTEXT_SIZE},$env);
 
 	if (defined $l->{COMPRESSION}) {
 		ParseCompressionPushEnd($e, $l, $ndr);
@@ -537,7 +539,7 @@
 		ParseObfuscationPushEnd($e, $ndr);
 	}
 
-	pidl "NDR_CHECK(ndr_push_subcontext_header(ndr, $l->{HEADER_SIZE}, $l->{SUBCONTEXT_SIZE}, $ndr));";
+	pidl "NDR_CHECK(ndr_push_subcontext_header(ndr, $l->{HEADER_SIZE}, $subcontext_size, $ndr));";
 	pidl "NDR_CHECK(ndr_push_bytes(ndr, $ndr->data, $ndr->offset));";
 	deindent;
 	pidl "}";
@@ -552,12 +554,13 @@
 	my $ndr_flags = shift;	
 	my $env = shift;
 	my $retndr = "_ndr_$e->{NAME}";
+	my $subcontext_size = ParseExpr($l->{SUBCONTEXT_SIZE},$env);
 
 	pidl "{";
 	indent;
 	pidl "struct ndr_pull *$retndr;";
 	pidl "NDR_ALLOC(ndr, $retndr);";
-	pidl "NDR_CHECK(ndr_pull_subcontext_header($ndr, $l->{HEADER_SIZE}, $l->{SUBCONTEXT_SIZE}, $retndr));"; 
+	pidl "NDR_CHECK(ndr_pull_subcontext_header($ndr, $l->{HEADER_SIZE}, $subcontext_size, $retndr));"; 
 
 	if (defined $l->{COMPRESSION}) {
 		$retndr = ParseCompressionPullStart($e, $l, $retndr, $env);
@@ -570,10 +573,11 @@
 	return ($retndr,$var_name);
 }
 
-sub ParseSubcontextPullEnd($$)
+sub ParseSubcontextPullEnd($$$)
 {
 	my $e = shift;
 	my $l = shift;
+	my $env = shift;
 	my $ndr = "_ndr_$e->{NAME}";
 
 	if (defined $l->{COMPRESSION}) {
@@ -586,7 +590,7 @@
 
 	my $advance;
 	if (defined($l->{SUBCONTEXT_SIZE}) and ($l->{SUBCONTEXT_SIZE} ne "-1")) {
-		$advance = $l->{SUBCONTEXT_SIZE};
+		$advance = ParseExpr($l->{SUBCONTEXT_SIZE},$env);
 	} elsif ($l->{HEADER_SIZE}) {
 		$advance = "$ndr->data_size";
 	} else {
@@ -613,7 +617,7 @@
 		if ($l->{TYPE} eq "SUBCONTEXT") {
 			$ndr = ParseSubcontextPushStart($e, $l, $ndr, $var_name, $ndr_flags);
 			ParseElementPushLevel($e, Ndr::GetNextLevel($e, $l), $ndr, $var_name, $env, 1, 1);
-			ParseSubcontextPushEnd($e, $l, $ndr_flags);
+			ParseSubcontextPushEnd($e, $l, $ndr_flags, $env);
 		} elsif ($l->{TYPE} eq "POINTER") {
 			ParsePtrPush($e, $l, $var_name);
 		} elsif ($l->{TYPE} eq "ARRAY") {
@@ -934,7 +938,7 @@
 		if ($l->{TYPE} eq "SUBCONTEXT") {
 			($ndr,$var_name) = ParseSubcontextPullStart($e, $l, $ndr, $var_name, $ndr_flags, $env);
 			ParseElementPullLevel($e,Ndr::GetNextLevel($e,$l), $ndr, $var_name, $env, 1, 1);
-			ParseSubcontextPullEnd($e, $l);
+			ParseSubcontextPullEnd($e, $l, $env);
 		} elsif ($l->{TYPE} eq "ARRAY") {
 			my $length = ParseArrayPullHeader($e, $l, $ndr, $var_name, $env); 
 



More information about the samba-cvs mailing list