svn commit: samba r25185 - in branches/SAMBA_4_0: . source/pidl/lib/Parse/Pidl source/pidl/tests

jelmer at samba.org jelmer at samba.org
Sat Sep 15 23:03:37 GMT 2007


Author: jelmer
Date: 2007-09-15 23:03:34 +0000 (Sat, 15 Sep 2007)
New Revision: 25185

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

Log:
Check that can_contain_deferred returns true if one of the members of a type can contain deferred data.
Modified:
   branches/SAMBA_4_0/
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm
   branches/SAMBA_4_0/source/pidl/tests/ndr.pl


Changeset:

Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...

Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm	2007-09-15 20:24:35 UTC (rev 25184)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm	2007-09-15 23:03:34 UTC (rev 25185)
@@ -289,15 +289,13 @@
 
 	return 1 if ($type->{TYPE} eq "DECLARE"); # assume the worst
 
-	if ($type->{TYPE} eq "TYPEDEF") {
-		return can_contain_deferred($type->{DATA});
-	} 
+	return can_contain_deferred($type->{DATA}) if ($type->{TYPE} eq "TYPEDEF");
 
 	return 0 unless defined($type->{ELEMENTS});
 
-	foreach my $x (@{$type->{ELEMENTS}}) {
-		return 1 if ($x->{POINTERS});
-		return 1 if (can_contain_deferred ($x));
+	foreach (@{$type->{ELEMENTS}}) {
+		return 1 if ($_->{POINTERS});
+		return 1 if (can_contain_deferred ($_->{TYPE}));
 	}
 	
 	return 0;

Modified: branches/SAMBA_4_0/source/pidl/tests/ndr.pl
===================================================================
--- branches/SAMBA_4_0/source/pidl/tests/ndr.pl	2007-09-15 20:24:35 UTC (rev 25184)
+++ branches/SAMBA_4_0/source/pidl/tests/ndr.pl	2007-09-15 23:03:34 UTC (rev 25185)
@@ -4,7 +4,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 33;
+use Test::More tests => 34;
 use FindBin qw($RealBin);
 use lib "$RealBin";
 use Util;
@@ -266,3 +266,5 @@
 ok(not can_contain_deferred({ TYPE => "TYPEDEF",
 			DATA => { TYPE => "STRUCT", 
 		ELEMENTS => [ { TYPE => "uint32" } ]}}));
+ok(can_contain_deferred({ TYPE => "STRUCT", 
+		ELEMENTS => [ { TYPE => "someunknowntype" } ]}));



More information about the samba-cvs mailing list