Browse Source

Fixed layout of bitmap descriptor to accomodate padding before address fields with differing sizes

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7843 8c9fc860-2736-0410-a75d-ab315db34111
negelef 7 years ago
parent
commit
fe19f6255a
2 changed files with 3 additions and 3 deletions
  1. 2 2
      source/I386.Oberon.Bitmaps.Mod
  2. 1 1
      source/Oberon.Display.Mod

+ 2 - 2
source/I386.Oberon.Bitmaps.Mod

@@ -20,8 +20,8 @@ TYPE
 	Bitmap* = POINTER TO BitmapDesc;
 	BitmapDesc* = RECORD	(* cf. Display.DisplayBlock  *)
 		width*, height*, depth*: INTEGER;	(* offset 0, 2, 4 *)
-		wth*: LONGINT; address*: ADDRESS;	(* offset 8, 12 *)
-		size: LONGINT
+		wth*, size: LONGINT;	(* offset 8, 12 *)
+		address*: ADDRESS;	(* offset 16 *)
 	END;
 
 	Buffer = RECORD bytes: ARRAY BufSize OF CHAR END;

+ 1 - 1
source/Oberon.Display.Mod

@@ -603,7 +603,7 @@ BEGIN
 		IF (w > 0) & (h > 0) THEN
 			pd := 0; SYSTEM.GET(adr+4, SYSTEM.VAL(INTEGER, pd));
 			IF pd = 8 THEN
-				SYSTEM.GET(adr+8, pw); SYSTEM.GET(adr+12, src);
+				SYSTEM.GET(adr+8, pw); SYSTEM.GET(adr+16, src);
 				INC(src, (dy+h-1)*pw + dx);	(* top left corner *)
 				IF w*h*disp.format+1 > LEN(buf^) THEN NEW(buf, w*h*disp.format+1) END;	(* +1 for *** below *)
 				dst := ADDRESSOF(buf[0]);