Selaa lähdekoodia

fof removed SELF pointers from the list of pointers for the GC (as constant references they do not need to be traced and for records it is even wrong)

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8670 8c9fc860-2736-0410-a75d-ab315db34111
eth.morozova 6 vuotta sitten
vanhempi
commit
70e4c5c2ad
1 muutettua tiedostoa jossa 1 lisäystä ja 8 poistoa
  1. 1 8
      source/FoxIntermediateBackend.Mod

+ 1 - 8
source/FoxIntermediateBackend.Mod

@@ -14361,14 +14361,7 @@ TYPE
 						END;
 						END;
 						parameter := parameter.nextParameter;
 						parameter := parameter.nextParameter;
 					END;
 					END;
-					IF scope(SyntaxTree.ProcedureScope).ownerProcedure.type(SyntaxTree.ProcedureType).isDelegate THEN 
-						parametersSize := implementationVisitor.ProcParametersSize(scope(SyntaxTree.ProcedureScope).ownerProcedure);
-						INC(parametersSize,ToMemoryUnits(module.system,module.system.addressSize));
-						IF implementationVisitor.backend.preciseGC THEN
-							INC(parametersSize,ToMemoryUnits(module.system,module.system.addressSize));
-						END;
-						Symbol(source, NIL, 0, parametersSize); INC(numberPointers);
-					END;
+					(* a self parameter does not need to be traced *)
 					variable := scope(SyntaxTree.ProcedureScope).firstVariable;
 					variable := scope(SyntaxTree.ProcedureScope).firstVariable;
 					WHILE(variable # NIL) DO
 					WHILE(variable # NIL) DO
 						IF ~(variable.untraced) & (variable.externalName = NIL) THEN
 						IF ~(variable.untraced) & (variable.externalName = NIL) THEN