]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
pidl/NDR: generate a LEVELS array for typedefs
authorStefan Metzmacher <metze@samba.org>
Wed, 20 Aug 2008 12:41:05 +0000 (14:41 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 20 Aug 2008 13:22:03 +0000 (15:22 +0200)
metze

source/pidl/lib/Parse/Pidl/NDR.pm

index 25743f512fcd282d370067c29859103100079dda..10bd29715b93be1007edb81551040e132fb26819 100644 (file)
@@ -287,6 +287,22 @@ sub GetElementLevelTable($$)
        return $order;
 }
 
+sub GetTypedefLevelTable($$$)
+{
+       my ($e, $data, $pointer_default) = @_;
+
+       my $order = [];
+
+       push (@$order, {
+               TYPE => "TYPEDEF"
+       });
+
+       my $i = 0;
+       foreach (@$order) { $_->{LEVEL_INDEX} = $i; $i+=1; }
+
+       return $order;
+}
+
 #####################################################################
 # see if a type contains any deferred data 
 sub can_contain_deferred($)
@@ -575,6 +591,7 @@ sub ParseTypedef($$)
                NAME => $d->{NAME},
                TYPE => $d->{TYPE},
                PROPERTIES => $d->{PROPERTIES},
+               LEVELS => GetTypedefLevelTable($d, $data, $pointer_default),
                DATA => $data,
                ORIGINAL => $d
        };