svn commit: samba r2933 - in branches/SAMBA_4_0/source/build/pidl: .
jelmer at samba.org
jelmer at samba.org
Tue Oct 12 10:32:55 GMT 2004
Author: jelmer
Date: 2004-10-12 10:32:54 +0000 (Tue, 12 Oct 2004)
New Revision: 2933
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/build/pidl&rev=2933&nolog=1
Log:
Only pull a union once when it occurs in a subcontext
Modified:
branches/SAMBA_4_0/source/build/pidl/parser.pm
Changeset:
Modified: branches/SAMBA_4_0/source/build/pidl/parser.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/parser.pm 2004-10-12 06:12:24 UTC (rev 2932)
+++ branches/SAMBA_4_0/source/build/pidl/parser.pm 2004-10-12 10:32:54 UTC (rev 2933)
@@ -454,7 +454,9 @@
my $sub_size = util::has_property($e, "subcontext");
if (defined $sub_size) {
- pidl "\tNDR_CHECK(ndr_pull_subcontext_union_fn(ndr, $sub_size, $switch_var, $cprefix$var_prefix$e->{NAME}, (ndr_pull_union_fn_t) ndr_pull_$e->{TYPE}));\n";
+ pidl "\tif (($ndr_flags) & NDR_SCALARS) {\n";
+ pidl "\t\tNDR_CHECK(ndr_pull_subcontext_union_fn(ndr, $sub_size, $switch_var, $cprefix$var_prefix$e->{NAME}, (ndr_pull_union_fn_t) ndr_pull_$e->{TYPE}));\n";
+ pidl "\t}\n";
} else {
pidl "\tNDR_CHECK(ndr_pull_$e->{TYPE}(ndr, $ndr_flags, $switch_var, $cprefix$var_prefix$e->{NAME}));\n";
}
@@ -484,7 +486,9 @@
my $sub_size = util::has_property($e, "subcontext");
if (defined $sub_size) {
- pidl "\tNDR_CHECK(ndr_push_subcontext_union_fn(ndr, $sub_size, $switch_var, $cprefix$var_prefix$e->{NAME}, (ndr_push_union_fn_t) ndr_push_$e->{TYPE}));\n";
+ pidl "\tif(($ndr_flags) & NDR_SCALARS) {\n";
+ pidl "\t\tNDR_CHECK(ndr_push_subcontext_union_fn(ndr, $sub_size, $switch_var, $cprefix$var_prefix$e->{NAME}, (ndr_push_union_fn_t) ndr_push_$e->{TYPE}));\n";
+ pidl "\t}\n";
} else {
pidl "\tNDR_CHECK(ndr_push_$e->{TYPE}(ndr, $ndr_flags, $switch_var, $cprefix$var_prefix$e->{NAME}));\n";
}
More information about the samba-cvs
mailing list