Author: metze
Date: 2007-08-16 13:34:54 +0000 (Thu, 16 Aug 2007)
New Revision: 24489

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24489

Log:
only typedef enum { ... } foo; enum's should look
for has_properties() of $enum->{PARENT}

metze
Modified:
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm


Changeset:
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm   2007-08-16 
13:29:38 UTC (rev 24488)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm   2007-08-16 
13:34:54 UTC (rev 24489)
@@ -174,8 +174,18 @@
 {
        my $enum = shift;
        $enum->{TYPE} eq "ENUM" or die("not an enum");
-       if (has_property($enum->{PARENT}, "enum8bit")) {
+
+       # for typedef enum { } we need to check $enum->{PARENT}
+       if (has_property($enum, "enum8bit")) {
                return "uint8";
+       } elsif (has_property($enum, "enum16bit")) {
+               return "uint16";
+       } elsif (has_property($enum, "v1_enum")) {
+               return "uint32";
+       } elsif (has_property($enum->{PARENT}, "enum8bit")) {
+               return "uint8";
+       } elsif (has_property($enum->{PARENT}, "enum16bit")) {
+               return "uint16";
        } elsif (has_property($enum->{PARENT}, "v1_enum")) {
                return "uint32";
        }

Reply via email to