summaryrefslogtreecommitdiff
path: root/source4/pidl/lib/Parse/Pidl/Typelist.pm
diff options
context:
space:
mode:
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl/Typelist.pm')
-rw-r--r--source4/pidl/lib/Parse/Pidl/Typelist.pm7
1 files changed, 7 insertions, 0 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/Typelist.pm b/source4/pidl/lib/Parse/Pidl/Typelist.pm
index 55f8390f65..b25ab62e03 100644
--- a/source4/pidl/lib/Parse/Pidl/Typelist.pm
+++ b/source4/pidl/lib/Parse/Pidl/Typelist.pm
@@ -98,7 +98,9 @@ sub addType($)
sub getType($)
{
my $t = shift;
+ return ($t) if (ref($t) eq "HASH" and not defined($t->{NAME}));
return undef if not hasType($t);
+ return $types{$t->{NAME}} if (ref($t) eq "HASH");
return $types{$t};
}
@@ -113,6 +115,11 @@ sub typeIs($$)
sub hasType($)
{
my $t = shift;
+ if (ref($t) eq "HASH") {
+ return 1 if (defined($types{$t->{NAME}}) and
+ $types{$t->{NAME}}->{TYPE} eq $t->{TYPE});
+ return 0;
+ }
return 1 if defined($types{$t});
return 0;
}