[SCM] Lisaac compiler branch, living-external, updated. lisaac-0.12-548-gf6e3b14

Mildred Ki'Lya silkensedai at online.fr
Thu Oct 8 17:06:23 UTC 2009


The following commit has been merged in the living-external branch:
commit 7b15359c043b85e6cac0351b4771183968938959
Author: Mildred Ki'Lya <silkensedai at online.fr>
Date:   Thu Oct 8 16:32:20 2009 +0200

    Added extra checks when needed

diff --git a/src/aliaser_local.li b/src/aliaser_local.li
index 030d229..efc3c7f 100644
--- a/src/aliaser_local.li
+++ b/src/aliaser_local.li
@@ -121,7 +121,14 @@ Section Public
     
     loc  := p.context;
     (is_on).if {      
-      (p.is_first).if {  
+      (
+        (p.is_first) ||
+        {loc.my_alias = NULL} // Mildred: it seems that locals generated for
+        // External slots that are not living don't get an alias but p.is_first
+        // is false. Resulting in a Call on NULL here:
+        //      result := loc.my_alias.intern_name;
+        //                             ^
+      ).if {
         top_context := top_context + 1;
         (top_context <= free_context.upper).if {          
           loc2 := free_context.item top_context;
diff --git a/src/profil.li b/src/profil.li
index f82b662..995065f 100644
--- a/src/profil.li
+++ b/src/profil.li
@@ -198,7 +198,13 @@ Section Public
     + result:LOCAL;
     
     j := argument_list.lower;
-    {(j > argument_list.upper) || {argument_list.item j.name = n}}.until_do {      
+    {
+      (j > argument_list.upper) ||
+      { + loc:LOCAL;
+        loc := argument_list.item j;
+        (loc != NULL) && {loc.name = n}
+      }
+    }.until_do {
       j := j + 1;
     };
     (j <= argument_list.upper).if {
diff --git a/src/profil_slot.li b/src/profil_slot.li
index d4dd873..38a591e 100644
--- a/src/profil_slot.li
+++ b/src/profil_slot.li
@@ -74,7 +74,7 @@ Section Public
       (result = NULL).if {            
         // For Type parametric.
         idx := slot_code.get_index_argument_type p;
-        (idx != - 1).if {
+        ((idx != - 1) && {arg_type_tmp != NULL}).if {
           result := arg_type_tmp.item idx.static_type;
         };
       };

-- 
Lisaac compiler



More information about the Lisaac-commits mailing list