diff options
author | Tim Potter <tpot@samba.org> | 2005-01-04 23:15:33 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:08:17 -0500 |
commit | 328e260ca9378e83e253f5622ca84ea36b3ebf3a (patch) | |
tree | 1b792042c5b14eb1038202458525d5a9ad88d3f0 | |
parent | 8d8c21f8d0669b469b2540c3f9e91ca5d076db09 (diff) | |
download | samba-328e260ca9378e83e253f5622ca84ea36b3ebf3a.tar.gz samba-328e260ca9378e83e253f5622ca84ea36b3ebf3a.tar.bz2 samba-328e260ca9378e83e253f5622ca84ea36b3ebf3a.zip |
r4517: Revert previous commit about giving arrays of scalars their own subtree.
Generate code to display using proto_tree_add_bytes() instead.
(This used to be commit 6e480fab3a0f70ae17dd7c0b39da924361a354d5)
-rw-r--r-- | source4/build/pidl/eparser.pm | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/source4/build/pidl/eparser.pm b/source4/build/pidl/eparser.pm index a67aa0626d..0038f53123 100644 --- a/source4/build/pidl/eparser.pm +++ b/source4/build/pidl/eparser.pm @@ -173,34 +173,38 @@ sub NeededTypedef($) if ($t->{DATA}->{TYPE} eq "STRUCT") { for my $e (@{$t->{DATA}->{ELEMENTS}}) { - $e->{PARENT} = $t->{DATA}; - if ($needed{"pull_$t->{NAME}"}) { $needed{"pull_$e->{TYPE}"} = 1; } if (util::is_scalar_type($e->{TYPE})) { - + if (defined($e->{ARRAY_LEN}) or util::has_property($e, "size_is")) { - $needed{"ett_$e->{NAME}"} = 1; + # Arrays of scalar types are FT_BYTES + + $needed{"hf_$e->{NAME}_$e->{TYPE}_array"} = { + 'name' => field2name($e->{NAME}), + 'type' => $e->{TYPE}, + 'ft' => "FT_BYTES", + 'base' => elementbase($e) + }; } else { - $needed{"hf_$e->{NAME}_$e->{TYPE}"} = { 'name' => field2name($e->{NAME}), 'type' => $e->{TYPE}, 'ft' => type2ft($e->{TYPE}), 'base' => elementbase($e) }; - - $e->{PARENT} = $t->{DATA}; - - if ($needed{"pull_$t->{NAME}"}) { - $needed{"pull_$e->{TYPE}"} = 1; - } + } + + $e->{PARENT} = $t->{DATA}; + + if ($needed{"pull_$t->{NAME}"}) { + $needed{"pull_$e->{TYPE}"} = 1; } } else { @@ -433,7 +437,7 @@ sub RewriteC($$$) s/(ndr_pull_array([^\(_]*?)\(ndr, (NDR_[^,]*?), ([^\)].*?)\);)/ndr_pull_array$2( ndr, $3, tree, $4);/smg; - s/(ndr_pull_array_([^\(]*?)\(ndr, (NDR_[^,]*?), (r->((in|out).)?([^,]*?)), (.*?)\);)/ndr_pull_array_$2( ndr, $3, get_subtree(tree, \"$7\", ndr, ett_$7), $4, $8);/smg; + s/(ndr_pull_array_([^\(]*?)\(ndr, (NDR_[^,]*?), (r->((in|out).)?([^,]*?)), (.*?)\);)/ndr_pull_array_$2( ndr, $3, tree, hf_$7_$2_array, $4, $8);/smg; # Save ndr_pull_relative[12]() calls from being wrapped by the # proceeding regexp. |