]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
pidl: add scalarTypeUsed() helper to find if a type was actually used...
authorStefan Metzmacher <metze@samba.org>
Fri, 23 Aug 2024 15:24:19 +0000 (17:24 +0200)
committerVolker Lendecke <vl@samba.org>
Tue, 27 Aug 2024 07:19:32 +0000 (07:19 +0000)
Pair-Programmed-With: Volker Lendecke <vl@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jennifer Sutton <jsutton@samba.org>
pidl/lib/Parse/Pidl/Typelist.pm

index 2a98a16b2b5fcc53121b0459239d6e35852989dc..af4ef13e7d2ec97b383c9667ff38cf7bd824848a 100644 (file)
@@ -10,7 +10,7 @@ require Exporter;
 @EXPORT_OK = qw(hasType getType resolveType mapTypeName mapTypeSpecifier scalar_is_reference expandAlias
        mapScalarType addType typeIs is_signed is_scalar enum_type_fn
        bitmap_type_fn mapType typeHasBody is_fixed_size_scalar
-       is_string_type
+       is_string_type scalarTypeUsed
 );
 use vars qw($VERSION);
 $VERSION = '0.01';
@@ -115,6 +115,8 @@ sub expandAlias($)
        return $name;
 }
 
+my %scalars_used = ();
+
 # map from a IDL type to a C header type
 sub mapScalarType($)
 {
@@ -122,11 +124,20 @@ sub mapScalarType($)
 
        # it's a bug when a type is not in the list
        # of known scalars or has no mapping
-       return $scalars{$name} if defined($scalars{$name});
+       if (defined($scalars{$name})) {
+               $scalars_used{$name} = $scalars{$name};
+               return $scalars{$name};
+       }
 
        die("Unknown scalar type $name");
 }
 
+sub scalarTypeUsed($)
+{
+       my $name = shift;
+       return defined($scalars_used{$name});
+}
+
 sub addType($)
 {
        my $t = shift;