Einzelnen Beitrag anzeigen

Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
318 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Optimierung oder Compilerfehler oder was?

  Alt 16. Jul 2018, 14:44
Mir kommt das result:=FFilteredStanzprogramm; ein wenig seltsam vor.

Vor dem Addieren wird die Value vom FFilteredStandprogramm gezogen und zumal ein Clear im Code steht liegt die Vermutung nahe, dass die Liste dieselbe ist.

Aus der Sicht des Compilers ist .Value call an sich identisch.

D.h. würde man die beiden Aufrufe vertauschen müsste 6 rauskommen.


Wenn es wirklich an der Optimierung liegt, dann den Code anpassen
oder notfalls ein http://docwiki.embarcadero.com/RADSt...erung_(Delphi) drumrum, bzw. an den Anfang der Unit.
Beim Vertauschen der Anweisungen kommt tatsächlich auch 6 als Ergebnis heraus.

Für die Liste war es ja auch so gedacht, dass diese immer die selbe ist, dann brauche ich die nicht immer erzeugen und freigeben, nur der Listeninhalt soll sich ändern. Die Liste wird im constructor von TTyp einmalig erzeugt:
Code:
  FFilteredStanzprogramm:=TEinzelSchrittlist.Create;
  FFilteredStanzprogramm.OwnsObjects:=False;
und bei Programmende wieder freigegeben.

Optimierung war für das ganze Testprojekt eigentlich sowieso schon deaktiviert, auch die Compiler-Direktiven ändern nix am Ergebnis.
  Mit Zitat antworten Zitat