pyldb: avoid segfault when adding an element with no name
[kai/samba-autobuild/.git] / pidl / lib / Parse / Pidl / Samba4 / TDR.pm
index 568dff5adf541a54b05b29270b12f1e32ea2db91..c0749304ef32a11b96ff357c2b0fd1f00141e245 100644 (file)
@@ -7,6 +7,7 @@ package Parse::Pidl::Samba4::TDR;
 use Parse::Pidl qw(fatal);
 use Parse::Pidl::Util qw(has_property ParseExpr is_constant);
 use Parse::Pidl::Samba4 qw(is_intree choose_header);
+use Parse::Pidl::Typelist qw(mapTypeName);
 
 use Exporter;
 @ISA = qw(Exporter);
@@ -195,15 +196,16 @@ sub ParserEnum($$$$)
 {
        my ($self,$e,$t,$p) = @_;
        my $bt = Parse::Pidl::Typelist::enum_type_fn($e);
+       my $mt = mapTypeName($bt);
 
        $self->fn_declare($p, "NTSTATUS tdr_$t\_$e->{NAME} (struct tdr_$t *tdr".typearg($t).", enum $e->{NAME} *v)");
        $self->pidl("{");
        if ($t eq "pull") {
-               $self->pidl("\t$bt\_t r;");
+               $self->pidl("\t$mt r;");
                $self->pidl("\tTDR_CHECK(tdr_$t\_$bt(tdr, mem_ctx, \&r));");
                $self->pidl("\t*v = r;");
        } elsif ($t eq "push") {
-               $self->pidl("\tTDR_CHECK(tdr_$t\_$bt(tdr, ($bt\_t *)v));");
+               $self->pidl("\tTDR_CHECK(tdr_$t\_$bt(tdr, ($mt *)v));");
        } elsif ($t eq "print") {
                $self->pidl("\t/* FIXME */");
        }
@@ -271,7 +273,7 @@ sub Parser($$$$)
        $self->pidl("");
        $self->pidl_hdr("/* autogenerated by pidl */");
        $self->pidl_hdr("#include \"$baseheader\"");
-       $self->pidl_hdr(choose_header("tdr/tdr.h", "tdr.h"));
+       $self->pidl_hdr(choose_header("lib/tdr/tdr.h", "tdr.h"));
        $self->pidl_hdr("");
 
        foreach (@$idl) { $self->ParserInterface($_) if ($_->{TYPE} eq "INTERFACE"); }