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 15:19:38 +0000 (16:19 +0100)
metze
(cherry picked from commit 7537f9c9bb78992850a641973a8df818d2fcaf25)

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

index 00ada47d957d6d84bf6a0ca18d0d43d581a71def..1a37c344a074f9d5a79d35b9b3f4b161608e7512 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);
@@ -659,6 +659,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}_//;