浏览代码

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 年之前
父节点
当前提交
70e4c5c2ad
共有 1 个文件被更改,包括 1 次插入8 次删除
  1. 1 8
      source/FoxIntermediateBackend.Mod

+ 1 - 8
source/FoxIntermediateBackend.Mod

@@ -14361,14 +14361,7 @@ TYPE
 						END;
 						parameter := parameter.nextParameter;
 					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;
 					WHILE(variable # NIL) DO
 						IF ~(variable.untraced) & (variable.externalName = NIL) THEN