Browse Source

* Some nested loop improvements. fixes issue #40250

Michaël Van Canneyt 2 years ago
parent
commit
5da20fc860

+ 2 - 2
packages/fcl-image/src/fppalette.inc

@@ -38,8 +38,8 @@ begin
   if (Img.Palette <> self) then
   if (Img.Palette <> self) then
     begin
     begin
     Count := 0;
     Count := 0;
-    for x := 0 to img.width-1 do
-      for y := 0 to img.height-1 do
+    for y := 0 to img.height-1 do
+      for x := 0 to img.width-1 do
         IndexOf(img[x,y]);
         IndexOf(img[x,y]);
     end;
     end;
 end;
 end;

+ 2 - 2
packages/fcl-pdf/src/fppdf.pp

@@ -3189,8 +3189,8 @@ begin
   if not Result then
   if not Result then
     Exit;
     Exit;
 
 
-  for x := 0 to Image.Width-1 do
-    for y := 0 to Image.Height-1 do
+  for y := 0 to Image.Height-1 do
+    for x := 0 to Image.Width-1 do
       if Image.Colors[x, y] <> AImage.Colors[x, y] then
       if Image.Colors[x, y] <> AImage.Colors[x, y] then
       begin
       begin
         Result := False;
         Result := False;

+ 2 - 2
packages/fcl-report/src/fpreport.pp

@@ -9967,8 +9967,8 @@ var
   x, y: Integer;
   x, y: Integer;
 begin
 begin
   Result := True;
   Result := True;
-  for x := 0 to Image.Width-1 do
-    for y := 0 to Image.Height-1 do
+  for y := 0 to Image.Height-1 do
+    for x := 0 to Image.Width-1 do
       if Image.Pixels[x, y] <> AImage.Pixels[x, y] then
       if Image.Pixels[x, y] <> AImage.Pixels[x, y] then
       begin
       begin
         Result := False;
         Result := False;

+ 7 - 5
packages/fcl-report/src/fpreportfpimageexport.pp

@@ -172,19 +172,21 @@ type
 
 
 procedure TFPImageFriend.ReversePixelColorOrder;
 procedure TFPImageFriend.ReversePixelColorOrder;
 var
 var
-  x, y: UInt32;
+  p, x, y: UInt32;
   v: TFPCompactImgRGBA8BitValue;
   v: TFPCompactImgRGBA8BitValue;
   n: TFPCompactImgRGBA8BitValue;
   n: TFPCompactImgRGBA8BitValue;
+
 begin
 begin
-  for x := 0 to Width-1 do
-    for y := 0 to Height-1 do
+  for y := 0 to Height-1 do
+    for x := 0 to Width-1 do
     begin
     begin
-      v := FData[x+y*Width];
+      p:=x+y*Width;
+      v := FData[p];
       n.b := v.r;
       n.b := v.r;
       n.g := v.g;
       n.g := v.g;
       n.r := v.b;
       n.r := v.b;
       n.a := v.a;
       n.a := v.a;
-      FData[x+y*Width] := n;
+      FData[p] := n;
     end;
     end;
 end;
 end;