[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