summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2010-08-16 10:07:24 +0200
committerStefan Metzmacher <metze@samba.org>2010-08-16 10:08:45 +0200
commitb0b73ca041ba3d90b3924b380abed4975e5354d9 (patch)
treeb47288d045490bf502c2f0c189cea10cadf60c1e
parent1fc3676974b254fd5fd402e7fa600b9020748734 (diff)
downloadsamba-b0b73ca041ba3d90b3924b380abed4975e5354d9.tar.gz
samba-b0b73ca041ba3d90b3924b380abed4975e5354d9.tar.bz2
samba-b0b73ca041ba3d90b3924b380abed4975e5354d9.zip
pidl:Samba4/NDR/Client.pm: correctly copy fixed size out arrays
metze
-rw-r--r--pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm26
1 files changed, 13 insertions, 13 deletions
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
index 299dfaed0c..3296a6760f 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
@@ -295,15 +295,15 @@ sub HeaderProperties($$)
}
}
-sub ParseCopyInArgument($$$$$$)
+sub ParseCopyArgument($$$$$)
{
- my ($self, $fn, $e, $r, $i, $invalid_response_type) = @_;
+ my ($self, $fn, $e, $r, $i) = @_;
my $l = $e->{LEVELS}[0];
if ($l->{TYPE} eq "ARRAY" and $l->{IS_FIXED} == 1) {
- $self->pidl("memcpy(${r}in.$e->{NAME}, ${i}$e->{NAME}, sizeof(${r}in.$e->{NAME}));");
+ $self->pidl("memcpy(${r}$e->{NAME}, ${i}$e->{NAME}, sizeof(${r}$e->{NAME}));");
} else {
- $self->pidl("${r}in.$e->{NAME} = ${i}$e->{NAME};");
+ $self->pidl("${r}$e->{NAME} = ${i}$e->{NAME};");
}
}
@@ -449,17 +449,17 @@ sub ParseFunction_Send($$$$)
foreach my $e (@{$fn->{ELEMENTS}}) {
next unless (grep(/in/, @{$e->{DIRECTION}}));
- $self->ParseCopyInArgument($fn, $e, "state->orig.", "_", "async");
+ $self->ParseCopyArgument($fn, $e, "state->orig.in.", "_");
}
$self->pidl("");
my $out_params = 0;
$self->pidl("/* Out parameters */");
- foreach (@{$fn->{ELEMENTS}}) {
- if (grep(/out/, @{$_->{DIRECTION}})) {
- $self->pidl("state->orig.out.$_->{NAME} = _$_->{NAME};");
- $out_params++;
- }
+ foreach my $e (@{$fn->{ELEMENTS}}) {
+ next unless grep(/out/, @{$e->{DIRECTION}});
+
+ $self->ParseCopyArgument($fn, $e, "state->orig.out.", "_");
+ $out_params++;
}
$self->pidl("");
@@ -639,15 +639,15 @@ sub ParseFunction_Sync($$$$)
$self->pidl("struct $name r;");
$self->pidl("NTSTATUS status;");
$self->pidl("");
- $self->pidl("/* In parameters */");
+ $self->pidl("/* In parameters */");
foreach my $e (@{$fn->{ELEMENTS}}) {
next unless (grep(/in/, @{$e->{DIRECTION}}));
- $self->ParseCopyInArgument($fn, $e, "r.", "_", "sync");
+ $self->ParseCopyArgument($fn, $e, "r.in.", "_");
}
-
$self->pidl("");
+
$self->pidl("status = dcerpc_$name\_r(h, mem_ctx, &r);");
$self->pidl("if (!NT_STATUS_IS_OK(status)) {");
$self->indent;