mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
pidl/Samba4::NDR::Parser: fix $var_name for arrays of scalar reference types
uint32 num; nstring strings[num]; this should use 'r->strings' instead of '*r->strings' as the pointer to the array. metze
This commit is contained in:
parent
26d7f5bf96
commit
7c7acae817
@ -42,19 +42,21 @@ sub append_prefix($$)
|
||||
{
|
||||
my ($e, $var_name) = @_;
|
||||
my $pointers = 0;
|
||||
my $arrays = 0;
|
||||
|
||||
foreach my $l (@{$e->{LEVELS}}) {
|
||||
if ($l->{TYPE} eq "POINTER") {
|
||||
$pointers++;
|
||||
} elsif ($l->{TYPE} eq "ARRAY") {
|
||||
$arrays++;
|
||||
if (($pointers == 0) and
|
||||
(not $l->{IS_FIXED}) and
|
||||
(not $l->{IS_INLINE})) {
|
||||
return get_value_of($var_name);
|
||||
return get_value_of($var_name);
|
||||
}
|
||||
} elsif ($l->{TYPE} eq "DATA") {
|
||||
if (Parse::Pidl::Typelist::scalar_is_reference($l->{DATA_TYPE})) {
|
||||
return get_value_of($var_name) unless ($pointers);
|
||||
return get_value_of($var_name) unless ($pointers or $arrays);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -684,8 +686,17 @@ sub need_pointer_to($$$)
|
||||
return 1 if $scalar_only;
|
||||
}
|
||||
|
||||
my $arrays = 0;
|
||||
|
||||
foreach my $tl (@{$e->{LEVELS}}) {
|
||||
last if $l == $tl;
|
||||
if ($tl->{TYPE} eq "ARRAY") {
|
||||
$arrays++;
|
||||
}
|
||||
}
|
||||
|
||||
if (Parse::Pidl::Typelist::scalar_is_reference($t)) {
|
||||
return 1;
|
||||
return 1 unless $arrays;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user