pidl:Python: don't generate functions with pipe elements
authorStefan Metzmacher <metze@samba.org>
Mon, 11 Oct 2010 05:54:59 +0000 (07:54 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 10 Mar 2011 13:31:17 +0000 (14:31 +0100)
metze

pidl/lib/Parse/Pidl/Samba4/Python.pm

index dfacfb335256db7f5eed87977856eef24b008555..db2d79d2f64362e1db2837da639131db44ae0d3a 100644 (file)
@@ -12,7 +12,7 @@ use strict;
 use Parse::Pidl qw(warning fatal error);
 use Parse::Pidl::Typelist qw(hasType resolveType getType mapTypeName expandAlias);
 use Parse::Pidl::Util qw(has_property ParseExpr unmake_str);
-use Parse::Pidl::NDR qw(GetPrevLevel GetNextLevel ContainsDeferred is_charset_array);
+use Parse::Pidl::NDR qw(GetPrevLevel GetNextLevel ContainsDeferred ContainsPipe is_charset_array);
 use Parse::Pidl::CUtil qw(get_value_of get_pointer_to);
 use Parse::Pidl::Samba4 qw(ArrayDynamicallyAllocated);
 use Parse::Pidl::Samba4::Header qw(GenerateFunctionInEnv GenerateFunctionOutEnv EnvSubstituteValue GenerateStructEnv);
@@ -667,6 +667,15 @@ sub Interface($$$)
                        next if has_property($d, "nopython");
                        next if has_property($d, "todo");
 
+                       my $skip = 0;
+                       foreach my $e (@{$d->{ELEMENTS}}) {
+                               if (ContainsPipe($e, $e->{LEVELS}[0])) {
+                                       $skip = 1;
+                                       last;
+                               }
+                       }
+                       next if $skip;
+
                        my $prettyname = $d->{NAME};
 
                        $prettyname =~ s/^$interface->{NAME}_//;