Patch for source/pidl/build/eparser.pm

Alan DeKok aland at ox.org
Thu May 12 00:31:57 GMT 2005


  I'm trying to use lorikeet to build ethereal dissectors, and am
getting errors when it loads eparser.pm.  The following is a fairly
idiotic patch to make it work.  I just replaced the reference to
'NdrParser::is_scalar_type' with 'Ndr::is_scalar_type'.  It seems to
help.

  Doing:

$ cd lorikeet/trunk/ethereal/pidl
$ make

  It now gets a little farther, but it dies parsing
packet-dcerpc-security.c, with "parse error at end of input".  I
haven't delved into that in more detail.

  I'm running latest SVN of both lorikeet & samba4, and gcc 3.2.2.

  I can't build samba4 right now either, (it worked a few days
ago), but that's another story.

  Hints?  Comments?

  Alan DeKok.


Index: source/build/pidl/eparser.pm
===================================================================
--- source/build/pidl/eparser.pm	(revision 6738)
+++ source/build/pidl/eparser.pm	(working copy)
@@ -171,7 +171,7 @@
 		$e->{PARENT} = $fn;
 		$needed{"pull_$e->{TYPE}"} = 1;
 
-		if (NdrParser::is_scalar_type($e->{TYPE})) {
+		if (Ndr::is_scalar_type($e->{TYPE})) {
 
 		    if (defined($e->{ARRAY_LEN}) or 
 			util::has_property($e, "size_is")) {
@@ -241,7 +241,7 @@
 				$needed{"pull_$e->{TYPE}"} = 1;
 			}
 
-			if (NdrParser::is_scalar_type($e->{TYPE})) {
+			if (Ndr::is_scalar_type($e->{TYPE})) {
 
 				if (defined($e->{ARRAY_LEN}) or 
 				util::has_property($e, "size_is")) {
@@ -664,7 +664,7 @@
 	# ndr_pull_uint32(ndr, &r->in.access_mask);
 	# ndr_pull_uint32(ndr, &r->idx);
 
-        if (/(ndr_pull_([^\)]*?)\(ndr, NDR_[^,]*?, (&?r->((in|out)\.)?([^\)]*?))\);)/ and NdrParser::is_scalar_type($2)) {
+        if (/(ndr_pull_([^\)]*?)\(ndr, NDR_[^,]*?, (&?r->((in|out)\.)?([^\)]*?))\);)/ and Ndr::is_scalar_type($2)) {
 
 	    my $pull_type = "${cur_fn}_$6";
 
@@ -699,7 +699,7 @@
 	# Three argument version is for structures
 
     if (/ndr_pull_([^\)]*?)\(ndr, (NDR_[^,]*?), ([^,]*?)\);/ and 
-			not NdrParser::is_scalar_type($1)) {
+			not Ndr::is_scalar_type($1)) {
 	   	s/(ndr_pull_([^\)]*?)\(
 	       ndr,\ 
 	       (NDR_[^,]*?),\ 
@@ -710,7 +710,7 @@
 
     # Four argument version if for unions
     if (/ndr_pull_([^\)]*?)\(ndr, (NDR_[SB][^,]*?), ([^,]*?), ([^,]*?)\);/ and
-			not NdrParser::is_scalar_type($1)) {
+			not Ndr::is_scalar_type($1)) {
 	    s/(ndr_pull_([^\)]*?)\(
 	       ndr,\ 
 	       (NDR_[^,]*?),\ 



  Alan DeKok.


More information about the samba-technical mailing list