diff options
-rw-r--r-- | tools/pidl/lib/Parse/Pidl/Ethereal/NDR.pm | 2 | ||||
-rw-r--r-- | tools/pidl/lib/Parse/Pidl/NDR.pm | 5 | ||||
-rw-r--r-- | tools/pidl/lib/Parse/Pidl/Samba/EJS.pm | 3 | ||||
-rw-r--r-- | tools/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm | 13 |
4 files changed, 12 insertions, 11 deletions
diff --git a/tools/pidl/lib/Parse/Pidl/Ethereal/NDR.pm b/tools/pidl/lib/Parse/Pidl/Ethereal/NDR.pm index 24423d9292..24d6af8e60 100644 --- a/tools/pidl/lib/Parse/Pidl/Ethereal/NDR.pm +++ b/tools/pidl/lib/Parse/Pidl/Ethereal/NDR.pm @@ -709,7 +709,7 @@ sub ProcessInterface($) } if (defined($hf_used{"hf_$x->{NAME}_werror"})) { - register_hf_field("hf_$x->{NAME}_werror", "Windows Error", "$x->{NAME}.werror", "FT_UINT32", "BASE_HEX", "NULL", 0, ""); + register_hf_field("hf_$x->{NAME}_werror", "Windows Error", "$x->{NAME}.werror", "FT_UINT32", "BASE_HEX", "VALS(DOS_errors)", 0, ""); } RegisterInterface($x); diff --git a/tools/pidl/lib/Parse/Pidl/NDR.pm b/tools/pidl/lib/Parse/Pidl/NDR.pm index 882ebeccb5..9ff69f8757 100644 --- a/tools/pidl/lib/Parse/Pidl/NDR.pm +++ b/tools/pidl/lib/Parse/Pidl/NDR.pm @@ -104,9 +104,10 @@ sub GetElementLevelTable($) if (defined($e->{ARRAY_LEN})) { @bracket_array = @{$e->{ARRAY_LEN}}; } - + # Parse the [][][][] style array stuff - foreach my $d (@bracket_array) { + for my $i (0 .. $#bracket_array) { + my $d = $bracket_array[$#bracket_array - $i]; my $size = $d; my $length = $d; my $is_surrounding = 0; diff --git a/tools/pidl/lib/Parse/Pidl/Samba/EJS.pm b/tools/pidl/lib/Parse/Pidl/Samba/EJS.pm index 2cac7d81af..1e73696cc1 100644 --- a/tools/pidl/lib/Parse/Pidl/Samba/EJS.pm +++ b/tools/pidl/lib/Parse/Pidl/Samba/EJS.pm @@ -713,7 +713,8 @@ sub EjsInterface($$) foreach my $d (@{$interface->{FUNCTIONS}}) { next if not defined($d->{OPNUM}); - + next if Parse::Pidl::Util::has_property($d, "noejs"); + EjsPullFunction($d); EjsPushFunction($d); EjsFunction($d, $name); diff --git a/tools/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm b/tools/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm index 05946b44f5..84f3091586 100644 --- a/tools/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm +++ b/tools/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm @@ -2019,15 +2019,14 @@ sub AllocateArrayLevel($$$$$) pidl "if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {"; pidl "\tNDR_PULL_ALLOC_N($ndr, $var, $size);"; pidl "}"; - } else { - pidl "NDR_PULL_ALLOC_N($ndr, $var, $size);"; + if (grep(/in/,@{$e->{DIRECTION}}) and + grep(/out/,@{$e->{DIRECTION}})) { + pidl "memcpy(r->out.$e->{NAME},r->in.$e->{NAME},$size * sizeof(*r->in.$e->{NAME}));"; + } + return; } - if (grep(/in/,@{$e->{DIRECTION}}) and - grep(/out/,@{$e->{DIRECTION}}) and - $pl->{POINTER_TYPE} eq "ref") { - pidl "memcpy(r->out.$e->{NAME},r->in.$e->{NAME},$size * sizeof(*r->in.$e->{NAME}));"; - } + pidl "NDR_PULL_ALLOC_N($ndr, $var, $size);"; } ##################################################################### |