Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#5

Memleak in Graphics32

  Alt 28. Nov 2013, 11:59
Danke Deddy. Demnach wäre das in diesem Fall hier eine etwas kryptische NAND-Logik. Für alle die der Hintergrund der Frage interessiert: Ich bin in Graphics32 auf ein Memleak in GR32_Blend.pas gestoßen und habe es wie folgt behoben.

Originalcode:
Delphi-Quellcode:
initialization
  RegisterBindings;
  MakeMergeTables;

{$IFNDEF PUREPASCAL}
  MMX_ACTIVE := (ciMMX in CPUFeatures);
  if [ciMMX, ciSSE2] * CPUFeatures <> [] then
    GenAlphaTable;
{$ELSE}
  MMX_ACTIVE := False;
{$ENDIF}
Geändert:
Delphi-Quellcode:
initialization
  RegisterBindings;
  MakeMergeTables;

{$IFNDEF PUREPASCAL}
  MMX_ACTIVE := (ciMMX in CPUFeatures);
  {$IFNDEF OMIT_MMX} 
  if [ciMMX, ciSSE2] * CPUFeatures <> [] then
    GenAlphaTable;
  {$ENDIF}
{$ELSE}
  MMX_ACTIVE := False;
{$ENDIF}
Zuerst dachte ich nämlich, die Bedingung vor GenAlphaTable würde nicht passen. Dann lags aber am Compilerschalter für OMIT_MMX, der im finalization gesetzt war und im initialization nicht.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat