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

jelmer at samba.org jelmer at samba.org
Fri Feb 18 11:11:21 GMT 2005


Author: jelmer
Date: 2005-02-18 11:11:21 +0000 (Fri, 18 Feb 2005)
New Revision: 5440

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

Log:
Some more generalizations

Modified:
   branches/SAMBA_4_0/source/build/pidl/ndr.pm


Changeset:
Modified: branches/SAMBA_4_0/source/build/pidl/ndr.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/ndr.pm	2005-02-18 01:29:18 UTC (rev 5439)
+++ branches/SAMBA_4_0/source/build/pidl/ndr.pm	2005-02-18 11:11:21 UTC (rev 5440)
@@ -212,19 +212,10 @@
 		$name = $1;
 	}
 
-	if ($fn->{TYPE} eq "FUNCTION") {
-		for my $e2 (@{$fn->{ELEMENTS}}) {
-			if ($e2->{NAME} eq $name) {
-				return $e2;
-			}
-		}
-	}
-
 	for my $e2 (@{$fn->{ELEMENTS}}) {
-		if ($e2->{NAME} eq $name) {
-			return $e2;
-		}
+		return $e2 if ($e2->{NAME} eq $name);
 	}
+
 	die "invalid sibling '$name'";
 }
 
@@ -238,13 +229,9 @@
 
 	my($fn) = $e->{PARENT};
 
-	if (util::is_constant($size)) {
-		return $size;
-	}
+	return $size if (util::is_constant($size));
 
-	if ($size =~ /ndr->|\(/) {
-		return $size;
-	}
+	return $size if ($size =~ /ndr->|\(/);
 
 	my $prefix = "";
 
@@ -262,9 +249,11 @@
 	if (util::has_property($e2, "in") && util::has_property($e2, "out")) {
 		return $prefix . "$var_prefix$size";
 	}
+	
 	if (util::has_property($e2, "in")) {
 		return $prefix . "r->in.$size";
 	}
+	
 	if (util::has_property($e2, "out")) {
 		return $prefix . "r->out.$size";
 	}
@@ -295,7 +284,6 @@
 	}
 }
 
-
 #####################################################################
 # work out is a parse function should be declared static or not
 sub fn_prefix($)
@@ -315,7 +303,6 @@
 	return "static ";
 }
 
-
 ###################################################################
 # setup any special flags for an element or structure
 sub start_flags($)
@@ -913,9 +900,7 @@
 {
 	my($struct) = shift;
 	
-	if (! defined $struct->{ELEMENTS}) {
-		return;
-	}
+	return unless defined($struct->{ELEMENTS});
 
 	start_flags($struct);
 
@@ -1112,11 +1097,12 @@
 sub ParseStructPrint($)
 {
 	my($struct) = shift;
+	my($name) = $struct->{PARENT}->{NAME};
 
-	if (! defined $struct->{ELEMENTS}) {
-		return;
-	}
+	return unless defined $struct->{ELEMENTS};
 
+	pidl "ndr_print_struct(ndr, name, \"$name\");";
+
 	start_flags($struct);
 
 	pidl "ndr->depth++;";
@@ -1135,9 +1121,7 @@
 	my($struct) = shift;
 	my $conform_e;
 
-	if (! defined $struct->{ELEMENTS}) {
-		return;
-	}
+	return unless defined $struct->{ELEMENTS};
 
 	# see if the structure contains a conformant array. If it
 	# does, then it must be the last element of the structure, and
@@ -1324,7 +1308,9 @@
 {
 	my $e = shift;
 	my $have_default = 0;
+	my($name) = $e->{PARENT}->{NAME};
 
+	pidl "ndr_print_union(ndr, name, level, \"$name\");";
 	start_flags($e);
 
 	pidl "switch (level) {";
@@ -1525,31 +1511,23 @@
 
 	if ($e->{DATA}->{TYPE} eq "STRUCT") {
 		pidl "void ndr_print_$e->{NAME}(struct ndr_print *ndr, const char *name, struct $e->{NAME} *r)";
-		pidl "{";
-		indent;
-		pidl "ndr_print_struct(ndr, name, \"$e->{NAME}\");";
 	}
 
 	if ($e->{DATA}->{TYPE} eq "UNION") {
 		pidl "void ndr_print_$e->{NAME}(struct ndr_print *ndr, const char *name, int level, union $e->{NAME} *r)";
-		pidl "{";
-		indent;
-		pidl "ndr_print_union(ndr, name, level, \"$e->{NAME}\");";
 	}
 
 	if ($e->{DATA}->{TYPE} eq "ENUM") {
 		pidl "void ndr_print_$e->{NAME}(struct ndr_print *ndr, const char *name, enum $e->{NAME} r)";
-		pidl "{";
-		indent;
 	}
 
 	if ($e->{DATA}->{TYPE} eq "BITMAP") {
 		my $type_decl = util::bitmap_type_decl($e->{DATA});
 		pidl "void ndr_print_$e->{NAME}(struct ndr_print *ndr, const char *name, $type_decl r)";
-		pidl "{";
-		indent;
 	}
 
+	pidl "{";
+	indent;
 	$typefamily{$e->{DATA}->{TYPE}}->{PRINT_FN_BODY}->($e->{DATA});
 	deindent;
 	pidl "}";



More information about the samba-cvs mailing list