git.samba.org
/
abartlet
/
samba.git
/
.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bc20d34
)
pidl: use ndr_push_relative_ptr2_start and ndr_push_relative_ptr2_end.
author
Günther Deschner
<gd@samba.org>
Mon, 14 Dec 2009 13:09:22 +0000
(14:09 +0100)
committer
Stefan Metzmacher
<metze@samba.org>
Thu, 18 Feb 2010 12:43:59 +0000
(13:43 +0100)
Guenther
pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
patch
|
blob
|
history
diff --git
a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
index bd6909361b4dfb13adf81fe537a69e921a389cab..4c23dfacd82d13401b0e32a1e57cd0a11d2d090a 100644
(file)
--- a/
pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
+++ b/
pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
@@
-567,11
+567,12
@@
sub ParseElementPushLevel
}
if ($l->{TYPE} eq "POINTER" and $deferred) {
}
if ($l->{TYPE} eq "POINTER" and $deferred) {
+ my $rel_var_name = $var_name;
if ($l->{POINTER_TYPE} ne "ref") {
$self->pidl("if ($var_name) {");
$self->indent;
if ($l->{POINTER_TYPE} eq "relative") {
if ($l->{POINTER_TYPE} ne "ref") {
$self->pidl("if ($var_name) {");
$self->indent;
if ($l->{POINTER_TYPE} eq "relative") {
- $self->pidl("NDR_CHECK(ndr_push_relative_ptr2
($ndr, $
var_name));");
+ $self->pidl("NDR_CHECK(ndr_push_relative_ptr2
_start($ndr, $rel_
var_name));");
}
if ($l->{POINTER_TYPE} eq "relative_short") {
$self->pidl("NDR_CHECK(ndr_push_short_relative_ptr2($ndr, $var_name));");
}
if ($l->{POINTER_TYPE} eq "relative_short") {
$self->pidl("NDR_CHECK(ndr_push_short_relative_ptr2($ndr, $var_name));");
@@
-581,6
+582,9
@@
sub ParseElementPushLevel
$self->ParseElementPushLevel($e, GetNextLevel($e, $l), $ndr, $var_name, $env, 1, 1);
if ($l->{POINTER_TYPE} ne "ref") {
$self->ParseElementPushLevel($e, GetNextLevel($e, $l), $ndr, $var_name, $env, 1, 1);
if ($l->{POINTER_TYPE} ne "ref") {
+ if ($l->{POINTER_TYPE} eq "relative") {
+ $self->pidl("NDR_CHECK(ndr_push_relative_ptr2_end($ndr, $rel_var_name));");
+ }
$self->deindent;
$self->pidl("}");
}
$self->deindent;
$self->pidl("}");
}