summaryrefslogtreecommitdiff
path: root/source4/build/pidl/eth_parser.pm
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/pidl/eth_parser.pm')
-rw-r--r--source4/build/pidl/eth_parser.pm10
1 files changed, 4 insertions, 6 deletions
diff --git a/source4/build/pidl/eth_parser.pm b/source4/build/pidl/eth_parser.pm
index 43ed8b841a..a285dacf23 100644
--- a/source4/build/pidl/eth_parser.pm
+++ b/source4/build/pidl/eth_parser.pm
@@ -213,8 +213,7 @@ sub append_prefix($$)
return get_value_of($var_name)
}
} elsif ($l->{TYPE} eq "DATA") {
- if ($l->{DATA_TYPE} eq "string" or
- $l->{DATA_TYPE} eq "nbt_string") {
+ if (typelist::scalar_is_reference($l->{DATA_TYPE})) {
return get_value_of($var_name) unless ($pointers);
}
}
@@ -576,18 +575,17 @@ sub ParseData($$$$$)
my $var_name = shift;
my $ndr_flags = shift;
- $var_name = get_pointer_to($var_name);
-
#
# ALAND! for packet-dcerpc-lsa.c, uncommenting this code
# produces constructs like &(&r->string), to pass to another
# function, which gives compiler errors.
#
- if ($l->{DATA_TYPE} eq "string" or
- $l->{DATA_TYPE} eq "nbt_string") {
+ if (typelist::scalar_is_reference($l->{DATA_TYPE})) {
$var_name = get_pointer_to($var_name);
}
+ $var_name = get_pointer_to($var_name);
+
pidl "offset += dissect_$l->{DATA_TYPE}(tvb, offset, pinfo, tree, drep, hf_FIXME, NULL);";
if (my $range = util::has_property($e, "range")) {