Browse Source

corrected out of bounds accesses

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7430 8c9fc860-2736-0410-a75d-ab315db34111
felixf 7 years ago
parent
commit
ec04dc9e2c
1 changed files with 3 additions and 3 deletions
  1. 3 3
      source/I386.Raster.Mod

+ 3 - 3
source/I386.Raster.Mod

@@ -3236,7 +3236,7 @@ MODULE Raster; (** non-portable *)	(* eos, TF  **)
 					img.fmt.unpack(img.fmt, adr, bit, pix);
 					img.fmt.unpack(img.fmt, adr, bit, pix);
 					pix[r] := clamp[ORD(pix[r])]; pix[g] := clamp[ORD(pix[g])]; pix[b] := clamp[ORD(pix[b])];
 					pix[r] := clamp[ORD(pix[r])]; pix[g] := clamp[ORD(pix[g])]; pix[b] := clamp[ORD(pix[b])];
 					img.fmt.pack(img.fmt, adr, bit, pix);
 					img.fmt.pack(img.fmt, adr, bit, pix);
-					bit := bit + img.fmt.bpp; INC(adr, bit); bit := bit MOD 8;
+					bit := bit + img.fmt.bpp; INC(adr, bit DIV 8); bit := bit MOD 8;
 					INC(x)
 					INC(x)
 				END;
 				END;
 				INC(y)
 				INC(y)
@@ -3265,7 +3265,7 @@ MODULE Raster; (** non-portable *)	(* eos, TF  **)
 					pix[r] := clamp[ORD(pix[r])]; pix[g] := clamp[ORD(pix[g])];
 					pix[r] := clamp[ORD(pix[r])]; pix[g] := clamp[ORD(pix[g])];
 					pix[b] := clamp[ORD(pix[b])]; pix[a] := clamp[ORD(pix[a])];
 					pix[b] := clamp[ORD(pix[b])]; pix[a] := clamp[ORD(pix[a])];
 					img.fmt.pack(img.fmt, adr, bit, pix);
 					img.fmt.pack(img.fmt, adr, bit, pix);
-					bit := bit + img.fmt.bpp; INC(adr, bit); bit := bit MOD 8;
+					bit := bit + img.fmt.bpp; INC(adr, bit DIV 8); bit := bit MOD 8;
 					INC(x)
 					INC(x)
 				END;
 				END;
 				INC(y)
 				INC(y)
@@ -3293,7 +3293,7 @@ MODULE Raster; (** non-portable *)	(* eos, TF  **)
 					img.fmt.unpack(img.fmt, adr, bit, pix);
 					img.fmt.unpack(img.fmt, adr, bit, pix);
 					pix[a] := clamp[ORD(pix[a])];
 					pix[a] := clamp[ORD(pix[a])];
 					img.fmt.pack(img.fmt, adr, bit, pix);
 					img.fmt.pack(img.fmt, adr, bit, pix);
-					bit := bit + img.fmt.bpp; INC(adr, bit); bit := bit MOD 8;
+					bit := bit + img.fmt.bpp; INC(adr, bit DIV 8); bit := bit MOD 8;
 					INC(x)
 					INC(x)
 				END;
 				END;
 				INC(y)
 				INC(y)