浏览代码

Fixed Generic object file reading and added some assertions.

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7043 8c9fc860-2736-0410-a75d-ab315db34111
skoster 8 年之前
父节点
当前提交
b81bc4fed6
共有 2 个文件被更改,包括 7 次插入2 次删除
  1. 6 2
      source/GenericLinker.Mod
  2. 1 0
      source/ObjectFile.Mod

+ 6 - 2
source/GenericLinker.Mod

@@ -492,9 +492,13 @@ BEGIN
 	requires := NIL;
 	requires := NIL;
 	IF version >= 4 THEN
 	IF version >= 4 THEN
 		IF ~binary THEN 
 		IF ~binary THEN 
-			reader.String(string); ObjectFile.ReadNameList(reader, offers, binary, poolMap);
+			reader.String(string); 
+			ASSERT(string = "offers");
+			ObjectFile.ReadNameList(reader, offers, binary, poolMap);
 			reader.SkipWhitespace;
 			reader.SkipWhitespace;
-			reader.String(string); ObjectFile.ReadNameList(reader, requires, binary, poolMap);
+			reader.String(string); 
+			ASSERT(string = "requires");
+			ObjectFile.ReadNameList(reader, requires, binary, poolMap);
 			reader.SkipWhitespace;
 			reader.SkipWhitespace;
 		ELSE
 		ELSE
 			ObjectFile.ReadNameList(reader, offers, binary, poolMap);
 			ObjectFile.ReadNameList(reader, offers, binary, poolMap);

+ 1 - 0
source/ObjectFile.Mod

@@ -669,6 +669,7 @@ VAR
 				ReadIdentifier(nameList[i]);
 				ReadIdentifier(nameList[i]);
 			END;
 			END;
 		ELSE
 		ELSE
+			reader.SkipWhitespace;
 			reader.Int(len,FALSE);
 			reader.Int(len,FALSE);
 			NEW(nameList, len);
 			NEW(nameList, len);
 			FOR i := 0 TO len-1 DO
 			FOR i := 0 TO len-1 DO