r24520: make use of the new ElementStars() and ArrayBrackets()
authorStefan Metzmacher <metze@samba.org>
Fri, 17 Aug 2007 13:08:00 +0000 (13:08 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 20:02:08 +0000 (15:02 -0500)
functions

metze

source/pidl/lib/Parse/Pidl/Samba4.pm
source/pidl/lib/Parse/Pidl/Samba4/Header.pm

index ebe74d488da130cbcda6235b4efff96cb9fa6f4c..347d288ceee24b4a3d6ca8c76d23fd51a5a58bd2 100644 (file)
@@ -7,7 +7,7 @@ package Parse::Pidl::Samba4;
 
 require Exporter;
 @ISA = qw(Exporter);
-@EXPORT = qw(is_intree choose_header DeclLong);
+@EXPORT = qw(is_intree choose_header NumStars ElementStars ArrayBrackets DeclLong);
 
 use Parse::Pidl::Util qw(has_property is_constant);
 use Parse::Pidl::NDR qw(GetNextLevel);
index 9d8b521a491c9ff54817508a832af40331a6857a..7deb3ca331a893bdb77c68a76312ef396769447c 100644 (file)
@@ -10,8 +10,7 @@ use strict;
 use Parse::Pidl qw(fatal);
 use Parse::Pidl::Typelist qw(mapTypeName scalar_is_reference);
 use Parse::Pidl::Util qw(has_property is_constant);
-use Parse::Pidl::NDR qw(GetNextLevel);
-use Parse::Pidl::Samba4 qw(is_intree);
+use Parse::Pidl::Samba4 qw(is_intree ElementStars ArrayBrackets);
 
 use vars qw($VERSION);
 $VERSION = '0.01';
@@ -64,34 +63,10 @@ sub HeaderElement($)
                } else {
                        HeaderType($element, $element->{TYPE}, "");
                }
-               pidl " ";
-               my $numstar = 0;
-               foreach my $l (@{$element->{LEVELS}}) {
-                       next unless ($l->{TYPE} eq "POINTER");
-
-                       my $nl = GetNextLevel($element, $l);
-                       next if (defined($nl) and $nl->{TYPE} eq "ARRAY");
-
-                       $numstar++;
-               }
-               if ($numstar >= 1) {
-                       $numstar-- if (scalar_is_reference($element->{TYPE}));
-               }
-               foreach my $l (@{$element->{LEVELS}}) {
-                       next unless ($l->{TYPE} eq "ARRAY");
-                       next if ($l->{IS_FIXED}) and
-                               not has_property($element, "charset");
-                       $numstar++;
-               }
-               pidl "*" foreach (1..$numstar);
+               pidl " ".ElementStars($element);
        }
        pidl $element->{NAME};
-       foreach my $l (@{$element->{LEVELS}}) {
-               next unless ($l->{TYPE} eq "ARRAY");
-               next unless ($l->{IS_FIXED} and
-                       not has_property($element, "charset"));
-               pidl "[$l->{SIZE_IS}]";
-       }
+       pidl ArrayBrackets($element);
 
        pidl ";";
        if (defined $element->{PROPERTIES}) {