[svn:parrot] r38460 - branches/tt528_vtinit/lib/Parrot/Pmc2c

cotto at svn.parrot.org cotto at svn.parrot.org
Mon May 4 09:55:39 UTC 2009


Author: cotto
Date: Mon May  4 09:55:38 2009
New Revision: 38460
URL: https://trac.parrot.org/parrot/changeset/38460

Log:
[pmc2c] various minor formatting fixes and cleanups

Modified:
   branches/tt528_vtinit/lib/Parrot/Pmc2c/PMCEmitter.pm

Modified: branches/tt528_vtinit/lib/Parrot/Pmc2c/PMCEmitter.pm
==============================================================================
--- branches/tt528_vtinit/lib/Parrot/Pmc2c/PMCEmitter.pm	Mon May  4 09:00:36 2009	(r38459)
+++ branches/tt528_vtinit/lib/Parrot/Pmc2c/PMCEmitter.pm	Mon May  4 09:55:38 2009	(r38460)
@@ -158,15 +158,12 @@
         $hout .= $method->generate_headers($self);
     }
 
-    # class init decl
-    $hout .= 'PARROT_DYNEXT_EXPORT ' if ( $self->is_dynamic );
-    $hout .= "void Parrot_${name}_class_init(PARROT_INTERP, int, int);\n";
-
-    $hout .= $self->is_dynamic ? 'PARROT_DYNEXT_EXPORT' : 'PARROT_EXPORT';
-    $hout .= " VTABLE* Parrot_${lc_name}_update_vtable(VTABLE*);\n";
+    my $export = $self->is_dynamic ? 'PARROT_DYNEXT_EXPORT' : '';
 
-    $hout .= $self->is_dynamic ? 'PARROT_DYNEXT_EXPORT' : 'PARROT_EXPORT';
-    $hout .= " VTABLE* Parrot_${lc_name}_get_vtable(PARROT_INTERP);\n";
+    # class init decl
+    $hout .= "$export void    Parrot_${name}_class_init(PARROT_INTERP, int, int);\n";
+    $hout .= "$export VTABLE* Parrot_${lc_name}_update_vtable(VTABLE*);\n";
+    $hout .= "$export VTABLE* Parrot_${lc_name}_get_vtable(PARROT_INTERP);\n";
 
     $self->{hdecls} .= $hout;
 
@@ -462,7 +459,7 @@
         NULL,       /* isa_hash */
         NULL,       /* class */
         NULL,       /* mro */
-        attr_defs,  /* attribute_defs */
+        NULL,       /* attribute_defs */
         NULL,       /* ro_variant_vtable */
         $methlist
     };
@@ -565,21 +562,20 @@
 
     my $flags = $self->vtable_flags;
     $cout .= <<"EOC";
-        Hash          *isa_hash;
-        /* create vtable - clone it - we have to set a few items */
-        VTABLE * vt = Parrot_${classname}_get_vtable(interp);
-        vt->base_type = $enum_name;
-        vt->flags = $flags;
+        Hash   * isa_hash;
+        VTABLE * vt        = Parrot_${classname}_get_vtable(interp);
+        vt->base_type      = $enum_name;
+        vt->flags          = $flags;
         vt->attribute_defs = attr_defs;
 
 EOC
     for my $k ( keys %extra_vt ) {
         my $k_flags = $self->$k->vtable_flags;
         $cout .= <<"EOC";
-        vt_${k} = Parrot_${classname}_${k}_get_vtable(interp);
-        vt_$k->base_type = $enum_name;
-        vt_$k->flags = $k_flags;
-        vt_$k->attribute_defs = attr_defs;
+        vt_${k}                 = Parrot_${classname}_${k}_get_vtable(interp);
+        vt_${k}->base_type      = $enum_name;
+        vt_${k}->flags          = $k_flags;
+        vt_${k}->attribute_defs = attr_defs;
 
 EOC
     }
@@ -588,8 +584,8 @@
     if ( $self->is_dynamic ) {
         $cout .= <<"EOC";
         vt->base_type    = entry;
-        vt->whoami       = string_make(interp, "$classname", @{[length($classname)]}, "ascii",
-            PObj_constant_FLAG|PObj_external_FLAG);
+        vt->whoami       = string_make(interp, "$classname", @{[length($classname)]}, 
+                                       "ascii", PObj_constant_FLAG|PObj_external_FLAG);
         vt->provides_str = Parrot_str_append(interp, vt->provides_str,
             string_make(interp, " $provides", @{[length($provides) + 1]}, "ascii",
             PObj_constant_FLAG|PObj_external_FLAG));
@@ -605,7 +601,7 @@
         vt->provides_str = CONST_STRING_GEN(interp, "$provides");
 
         /* set up isa hash */
-        isa_hash = parrot_new_hash(interp);
+        isa_hash         = parrot_new_hash(interp);
         vt->isa_hash     = isa_hash;
 EOC
     }
@@ -618,16 +614,16 @@
 EOC
     }
 
-    if ( $extra_vt{ro} ) {
+    for my $k ( keys %extra_vt ) {
         $cout .= <<"EOC";
-        vt->ro_variant_vtable    = vt_ro;
-        vt_ro->ro_variant_vtable = vt;
-        vt_ro->isa_hash          = isa_hash;
+        vt->${k}_variant_vtable    = vt_${k};
+        vt_${k}->${k}_variant_vtable = vt;
+        vt_${k}->isa_hash          = isa_hash;
 EOC
     }
 
     $cout .= <<"EOC";
-        interp->vtables[entry]         = vt;
+        interp->vtables[entry] = vt;
 EOC
 
     for my $isa ($classname, @isa) {
@@ -666,8 +662,8 @@
 
         $cout .= <<"EOC";
         {
-            PMC           *mro      = pmc_new(interp, enum_class_ResizableStringArray);
-            VTABLE * const vt = interp->vtables[entry];
+            PMC    *       mro = pmc_new(interp, enum_class_ResizableStringArray);
+            VTABLE * const vt  = interp->vtables[entry];
 
             vt->mro = mro;
 
@@ -685,7 +681,7 @@
     $cout .= <<"EOC";
         }
 
-        /* setup MRO and _namespace */
+        /* set up MRO and _namespace */
         Parrot_create_mro(interp, entry);
 EOC
 


More information about the parrot-commits mailing list