aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/pidl/lib/Parse/Pidl/Ethereal/NDR.pm2
-rw-r--r--tools/pidl/lib/Parse/Pidl/NDR.pm5
-rw-r--r--tools/pidl/lib/Parse/Pidl/Samba/EJS.pm3
-rw-r--r--tools/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm13
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);";
}
#####################################################################