diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2006-03-24 12:40:07 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:59:09 -0500 |
commit | 5d9ea9170d2e0fd816285bd460de05f800ce26e8 (patch) | |
tree | 9f04b7c484217473abeece2f0039e44eb7b9b2cd /source4/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | |
parent | 6ba19b57290d7a625e0939563160eec0c419a91a (diff) | |
download | samba-5d9ea9170d2e0fd816285bd460de05f800ce26e8.tar.gz samba-5d9ea9170d2e0fd816285bd460de05f800ce26e8.tar.bz2 samba-5d9ea9170d2e0fd816285bd460de05f800ce26e8.zip |
r14690: Support represent_as in headers, enable represent_as() test (which works now)
(This used to be commit 31e847a0844a6871befc6091e813ae017cd6e4b4)
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm')
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source4/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm index feab825a3f..d9666a20fe 100644 --- a/source4/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +++ b/source4/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm @@ -670,8 +670,6 @@ sub ParseElementPush($$$$$$) my $var_name = $var_prefix.$e->{NAME}; - $var_name = append_prefix($e, $var_name); - return unless $primitives or ($deferred and ContainsDeferred($e, $e->{LEVELS}[0])); # Representation type is different from transmit_as @@ -680,10 +678,12 @@ sub ParseElementPush($$$$$$) indent; my $transmit_name = "_transmit_$e->{NAME}"; pidl mapType($e->{TYPE}) ." $transmit_name;"; - pidl "NDR_CHECK(ndr_$e->{REPRESENTATION_TYPE}_to_$e->{TYPE}($var_name, $transmit_name));"; + pidl "NDR_CHECK(ndr_$e->{REPRESENTATION_TYPE}_to_$e->{TYPE}($var_name, " . get_pointer_to($transmit_name) . "));"; $var_name = $transmit_name; } + $var_name = append_prefix($e, $var_name); + start_flags($e); if (my $value = has_property($e, "value")) { @@ -1073,6 +1073,7 @@ sub ParseElementPull($$$$$$) my $var_name = $var_prefix.$e->{NAME}; my $represent_name; + my $transmit_name; return unless $primitives or ($deferred and ContainsDeferred($e, $e->{LEVELS}[0])); @@ -1080,7 +1081,8 @@ sub ParseElementPull($$$$$$) pidl "{"; indent; $represent_name = $var_name; - $var_name = "_transmit_$e->{NAME}"; + $transmit_name = "_transmit_$e->{NAME}"; + $var_name = $transmit_name; pidl mapType($e->{TYPE})." $var_name;"; } @@ -1094,7 +1096,7 @@ sub ParseElementPull($$$$$$) # Representation type is different from transmit_as if ($e->{REPRESENTATION_TYPE}) { - pidl "NDR_CHECK(ndr_$e->{TYPE}_to_$e->{REPRESENTATION_TYPE}($var_name, $represent_name));"; + pidl "NDR_CHECK(ndr_$e->{TYPE}_to_$e->{REPRESENTATION_TYPE}($transmit_name, ".get_pointer_to($represent_name)."));"; deindent; pidl "}"; } |