summaryrefslogtreecommitdiff
path: root/source4/pidl/lib/Parse/Pidl/CUtil.pm
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2008-01-31 14:57:35 +0100
committerStefan Metzmacher <metze@samba.org>2008-02-01 22:18:54 +0100
commit9e999a67a7d3ff6172a7bb5db28c2f528d74f87f (patch)
treee3162199c03f56f02382c8514c289aa238e605d0 /source4/pidl/lib/Parse/Pidl/CUtil.pm
parenta0c83e990f6dfda809600a0160e383f89bfe2f6c (diff)
downloadsamba-9e999a67a7d3ff6172a7bb5db28c2f528d74f87f.tar.gz
samba-9e999a67a7d3ff6172a7bb5db28c2f528d74f87f.tar.bz2
samba-9e999a67a7d3ff6172a7bb5db28c2f528d74f87f.zip
CHECKED... pidl/Samba4::NDR::Parser: correctly get the name of an array element
When we have "*r->out.ous" (char ***ous, a pointer to a pointer to an array). we need to use "(*r->out.ous)[3]" to access the 3rd element of the array "*r->out.ous[3]" was generated before, but that's the same as "*(r->out.ous[3])". metze (This used to be commit 13afc89a87716063180723f0e9cb4f76daca837e)
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl/CUtil.pm')
-rw-r--r--source4/pidl/lib/Parse/Pidl/CUtil.pm15
1 files changed, 14 insertions, 1 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/CUtil.pm b/source4/pidl/lib/Parse/Pidl/CUtil.pm
index bd7b16812c..9deb6ee177 100644
--- a/source4/pidl/lib/Parse/Pidl/CUtil.pm
+++ b/source4/pidl/lib/Parse/Pidl/CUtil.pm
@@ -6,7 +6,7 @@ package Parse::Pidl::CUtil;
require Exporter;
@ISA = qw(Exporter);
-@EXPORT = qw(get_pointer_to get_value_of);
+@EXPORT = qw(get_pointer_to get_value_of get_array_element);
use vars qw($VERSION);
$VERSION = '0.01';
@@ -36,4 +36,17 @@ sub get_value_of($)
}
}
+sub get_array_element($$)
+{
+ my ($var_name, $idx) = @_;
+
+ if ($var_name =~ /^\*.*$/) {
+ $var_name = "($var_name)";
+ } elsif ($var_name =~ /^\&.*$/) {
+ $var_name = "($var_name)";
+ }
+
+ return "$var_name"."[$idx]";
+}
+
1;