Procházet zdrojové kódy

Avoid some races -- improved stability of WMSimpleGraphs a lot

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7223 8c9fc860-2736-0410-a75d-ab315db34111
felixf před 8 roky
rodič
revize
4a55f11fe1
2 změnil soubory, kde provedl 4 přidání a 0 odebrání
  1. 2 0
      source/WMGraphics.Mod
  2. 2 0
      source/WMWindowManager.Mod

+ 2 - 0
source/WMGraphics.Mod

@@ -669,8 +669,10 @@ TYPE
 		PROCEDURE DrawImage*(x, y: LONGINT; img: Raster.Image; mode : LONGINT);
 		VAR imgBounds : Rectangle;
 			rm : Raster.Mode;
+			dx, dy: LONGINT;
 		BEGIN
 			IF img = NIL THEN RETURN END;
+			dx := SELF.dx; dy := SELF.dy; (* avoid race below *)
 			imgBounds := MakeRectangle(0, 0, img.width, img.height);
 
 			(* to super coordinates *)

+ 2 - 0
source/WMWindowManager.Mod

@@ -527,7 +527,9 @@ TYPE
 		END IsHit;
 
 		PROCEDURE Draw*(canvas : Graphics.Canvas; w, h, q : LONGINT);
+		VAR img: Graphics.Image;
 		BEGIN
+			img := SELF.img;
 			IF reduceQuality THEN q := 0 END;
 			IF img # NIL THEN
 				IF (w = img.width) & (h = img.height) THEN