Forum: FreePascal
by Cyf,
15. Jun 2009
Ja, obiger Auszug war aus dem Delphi-Debugger, dort ist auch zu sehen, dass 2 verschiedene Vergleichsfunktionen verwendet werden. Das Resultat ist wie von dir beschrieben. Wenn ich das grade richtig interpretiere, werden vorher beim Zuweisen 2 mal je 32 Bit kopiert, also eine identische Kopie als lokale Variable auf dem Stack erstellt.
Die Funktionen erwarten danach verschiedene Parameter bzw....
Forum: FreePascal
by Cyf,
15. Jun 2009
Ansonsten, falls das nicht stimmt, hätte ich noch die Theorie, dass der Speicherinhalt verglichen wird und bei der untypisierten Variante noch eine Längenangabe des Strings davor steht. Aber ohne die Opcodes ist das nur Raten.
Project1.dpr.14: foo := const1;
004040D7 8B057C414000 mov eax,
004040DD 8905F0874000 mov ,eax
004040E3 8B0580414000 mov eax,
004040E9 8905F4874000 ...