svn commit: samba r15574 - in branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl: . Ethereal

jelmer at samba.org jelmer at samba.org
Sat May 13 19:15:32 GMT 2006


Author: jelmer
Date: 2006-05-13 19:15:31 +0000 (Sat, 13 May 2006)
New Revision: 15574

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

Log:
Keep information about which scalar types are references in a 
separate data structure

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


Changeset:
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Ethereal/NDR.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Ethereal/NDR.pm	2006-05-13 19:14:12 UTC (rev 15573)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Ethereal/NDR.pm	2006-05-13 19:15:31 UTC (rev 15574)
@@ -180,7 +180,7 @@
 
 	pidl_code "";
 
-	pidl_code "if(parent_tree) {";
+	pidl_code "if (parent_tree) {";
 	indent;
 	pidl_code "item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, $e->{ALIGN}, TRUE);";
 	pidl_code "tree = proto_item_add_subtree(item,ett_$ifname\_$name);";
@@ -224,7 +224,7 @@
 		pidl_code "";
 	}
 
-	pidl_code "if(flags){";
+	pidl_code "if (flags) {";
 	pidl_code "\tproto_item_append_text(item, \"Unknown bitmap value 0x%x\", flags);";
 	pidl_code "}\n";
 	pidl_code "return offset;";
@@ -489,7 +489,7 @@
 
 	pidl_code "old_offset = offset;";
 	pidl_code "";
-	pidl_code "if(parent_tree){";
+	pidl_code "if (parent_tree) {";
 	indent;
 	pidl_code "item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);";
 	pidl_code "tree = proto_item_add_subtree(item, ett_$ifname\_$name);";
@@ -553,7 +553,7 @@
 	pidl_code "";
 
 	pidl_code "old_offset = offset;";
-	pidl_code "if(parent_tree){";
+	pidl_code "if (parent_tree) {";
 	indent;
 	pidl_code "item = proto_tree_add_text(parent_tree, tvb, offset, -1, \"$name\");";
 	pidl_code "tree = proto_item_add_subtree(item, ett_$ifname\_$name);";

Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm	2006-05-13 19:14:12 UTC (rev 15573)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm	2006-05-13 19:15:31 UTC (rev 15574)
@@ -16,130 +16,109 @@
 
 my %typedefs = ();
 
+my @reference_scalars = (
+	"string", "string_array", "nbt_string", 
+	"wrepl_nbt_name", "ipv4address"
+);
+
 # a list of known scalar types
 my $scalars = {
 	# 0 byte types
 	"void"		=> {
 				C_TYPE		=> "void",
-				IS_REFERENCE	=> 0,
 			},
 
 	# 1 byte types
 	"char"		=> {
 				C_TYPE		=> "char",
-				IS_REFERENCE	=> 0,
 			},
 	"int8"		=> {
 				C_TYPE		=> "int8_t",
-				IS_REFERENCE	=> 0,
 			},
 	"uint8"		=> {
 				C_TYPE		=> "uint8_t",
-				IS_REFERENCE	=> 0,
 			},
 
 	# 2 byte types
 	"int16"		=> {
 				C_TYPE		=> "int16_t",
-				IS_REFERENCE	=> 0,
 			},
 	"uint16"	=> {	C_TYPE		=> "uint16_t",
-				IS_REFERENCE	=> 0,
 			},
 
 	# 4 byte types
 	"int32"		=> {
 				C_TYPE		=> "int32_t",
-				IS_REFERENCE	=> 0,
 			},
 	"uint32"	=> {	C_TYPE		=> "uint32_t",
-				IS_REFERENCE	=> 0,
 			},
 
 	# 8 byte types
 	"hyper"		=> {
 				C_TYPE		=> "uint64_t",
-				IS_REFERENCE	=> 0,
 			},
 	"dlong"		=> {
 				C_TYPE		=> "int64_t",
-				IS_REFERENCE	=> 0,
 			},
 	"udlong"	=> {
 				C_TYPE		=> "uint64_t",
-				IS_REFERENCE	=> 0,
 			},
 	"udlongr"	=> {
 				C_TYPE		=> "uint64_t",
-				IS_REFERENCE	=> 0,
 			},
 	# assume its a 8 byte type, but cope with either
 	"pointer"	=> {
 				C_TYPE		=> "void*",
-				IS_REFERENCE	=> 0,
 			},
 
 	# DATA_BLOB types
 	"DATA_BLOB"	=> {
 				C_TYPE		=> "DATA_BLOB",
-				IS_REFERENCE	=> 0,
 			},
 
 	# string types
 	"string"	=> {
 				C_TYPE		=> "const char *",
-				IS_REFERENCE	=> 1,
 			},
 	"string_array"	=> {
 				C_TYPE		=> "const char **",
-				IS_REFERENCE	=> 1,
 			},
 
 	# time types
 	"time_t"	=> {
 				C_TYPE		=> "time_t",
-				IS_REFERENCE	=> 0,
 			},
 	"NTTIME"	=> {
 				C_TYPE		=> "NTTIME",
-				IS_REFERENCE	=> 0,
 			},
 	"NTTIME_1sec"	=> {
 				C_TYPE		=> "NTTIME",
-				IS_REFERENCE	=> 0,
 			},
 	"NTTIME_hyper"	=> {
 				C_TYPE		=> "NTTIME",
-				IS_REFERENCE	=> 0,
 			},
 
 
 	# error code types
 	"WERROR"	=> {
 				C_TYPE		=> "WERROR",
-				IS_REFERENCE	=> 0,
 			},
 	"NTSTATUS"	=> {
 				C_TYPE		=> "NTSTATUS",
-				IS_REFERENCE	=> 0,
 			},
 	"COMRESULT" => { 
 				C_TYPE		=> "COMRESULT",
-				IS_REFERENCE	=> 0,
 			},
 
 	# special types
 	"nbt_string"	=> {
 				C_TYPE		=> "const char *",
-				IS_REFERENCE	=> 1,
 			},
 	"wrepl_nbt_name"=> {
 				C_TYPE		=> "struct nbt_name *",
-				IS_REFERENCE	=> 1,
 			},
 	"ipv4address"	=> {
 				C_TYPE		=> "const char *",
-				IS_REFERENCE	=> 1,
 			}
 };
 
@@ -200,8 +179,8 @@
 sub scalar_is_reference($)
 {
 	my $name = shift;
-
-	return $scalars->{$name}{IS_REFERENCE} if defined($scalars->{$name}) and defined($scalars->{$name}{IS_REFERENCE});
+	
+	return 1 if (grep(/^$name$/, @reference_scalars));
 	return 0;
 }
 



More information about the samba-cvs mailing list