Преглед на файлове

Patched zero-alignment problem.

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6411 8c9fc860-2736-0410-a75d-ab315db34111
felixf преди 9 години
родител
ревизия
3309618b42
променени са 1 файла, в които са добавени 7 реда и са изтрити 3 реда
  1. 7 3
      source/FoxGlobal.Mod

+ 7 - 3
source/FoxGlobal.Mod

@@ -297,9 +297,11 @@ TYPE
 				IF~ GenerateRecordOffsets(baseType) THEN RETURN FALSE END;
 			END;
 			IF baseType # NIL THEN
-				offset := baseType.sizeInBits; alignment := baseType.alignmentInBits;
+				offset := baseType.sizeInBits; 
+				alignment := baseType.alignmentInBits;
 			ELSE
 				offset := 0; alignment := x.alignmentInBits;
+				IF alignment <= 0 THEN alignment := dataUnit END;
 			END;
 
 			variable := x.recordScope.firstVariable;
@@ -333,9 +335,11 @@ TYPE
 				IF~ GenerateRecordOffsets(baseType) THEN RETURN FALSE END;
 			END;
 			IF baseType # NIL THEN
-				offset := baseType.sizeInBits; alignment := baseType.alignmentInBits;
+				offset := baseType.sizeInBits; 
+				alignment := baseType.alignmentInBits;
 			ELSE
-				offset := 0; alignment := dataUnit;
+				offset := 0; alignment := baseType.alignmentInBits;
+				IF alignment <= 0 THEN alignment := dataUnit END;
 			END;
 
 			variable := x.cellScope.firstVariable;