![]() |
Delphi Bugs mit Lösungen...
Hallo Zusammen...
Ich dache mir, ich mache mal einen Thread auf mit Bugreports die Ich gepostet habe und bei denen die Lösung schon enthalten ist... Ich habe kein Projekt bei dem ich nicht wenigstens 2-3 Source-Files aus dem Delphi Source-Dir in mein Projekt mit meinen Fixes rüber ziehe. Hier mein letzter: Memory Leak in TFontGlyphManager mein QC (RSP-17256) ist closed, daher habe ich die Infos in RSP-18012 geschrieben. Änderungen in FMX.FontGlyphs.pas
Delphi-Quellcode:
destructor TFontGlyphManager.Destroy;
begin FreeResource; if Assigned(FMethods) then // FMethods.Free; // Fehlte inherited; end; und in
Delphi-Quellcode:
class function TFontGlyphManager.InternalGetFontGlyphManager: TFontGlyphManager;
Delphi-Quellcode:
Mavarik
// end;// 2 Zeilen tiefer
FCurrentManager.FMethods := TList<TMethodDescriptor>.Create; // Nur 1x end; |
AW: Delphi Bugs mit Lösungen...
wenn ich Zeit habe und die "rechtliche Freigabe" bekomme, veröffentliche ich auch mal ein paar unserer (alten) BLE Fixes... Delphi/FMX für IoT wird groß beworben, aber da "komische" Sachen seit XE8.1 teils immer weiter führen... wird langsam anstrengend
Aber Asche auf unser Haupt: 1. klar nutzt das kaum jemand und hier ist CrossPlattform + CrossHardwareStandard(BLE4.0->4.1->4.2) ne echte Herausforderung 2. wer es "wirklich" nutzt und weiß wie es (trotzdem)geht verrät es oft nicht gern öffentlich und erstellt daher keine QC Einträge |
AW: Delphi Bugs mit Lösungen...
Zitat:
Delphi-Quellcode:
kannst du dir sparen, das macht das
if Assigned
Delphi-Quellcode:
selbst. Unter ARC wird das vom Compiler sowieso durch eine nil-Zuweisung ersetzt, was die Abfrage ebenso obsolet macht.
Free
|
AW: Delphi Bugs mit Lösungen...
Zitat:
|
AW: Delphi Bugs mit Lösungen...
Zitat:
Delphi-Quellcode:
Warum wird im Free eigentlich nicht geprüft ob ARC und dann DisposeOf aufgerufen? Würde ne Menge an Code sparen.
if Assigned(FMethods) then
{$IFDEF AUTOREFCOUNT} FMethods.DisposeOf; {$ELSE} FMethods.Free; |
AW: Delphi Bugs mit Lösungen...
Zitat:
|
AW: Delphi Bugs mit Lösungen...
Dann könnte der Compiler das doch durch disposeof ersetzen :gruebel:
|
AW: Delphi Bugs mit Lösungen...
Zitat:
Disposeof wird nur benötigt wenn da mehrere Referenzen auf das selbe Object sind, und Ressourcen freigegeben werden müssen. Ansonsten besteht keinerlei Grund das einzusetzen. |
AW: Delphi Bugs mit Lösungen...
Zitat:
|
AW: Delphi Bugs mit Lösungen...
Waddn gruseliger Code ist das denn in TFontGlyphManager :wall:
Das können nur Artefakte aus VGScene Zeiten sein, wo noch Delphi 7 und andere Versionen unterstützt wurden, die noch kein class constructor/destructor kannten...
Delphi-Quellcode:
und
RegisterCharacterHandleMethod
Delphi-Quellcode:
sind übrigens auch defekt, die krachen nämlich, wenn vorher nicht
UnRegisterCharacterHandleMethod
Delphi-Quellcode:
aufgerufen wurde. Das muss man aber nicht machen, weil das ja eh statische Methoden sind (soll heißen, ich kann
TFontGlyphManager.Current
Delphi-Quellcode:
aufrufen). Das wiederum lässt mich vermuten, dass man FMethods früher (class constructor?) erzeugen und im entsprechenden destructor wieder freigeben sollte.
TFontGlyphManager.RegisterCharacterHandleMethod
|
AW: Delphi Bugs mit Lösungen...
Zitat:
Ich hatte es nur in Apps mit mehreren 100.000 LOC... Unter mobil hat mal selten Acceleratoren... Scheinbar programmiert keine FMX auf Windows/Desktop... Mavarik |
AW: Delphi Bugs mit Lösungen...
Zitat:
FastMM mit fulldebug rein, bämm kompletter Leakreport mit Callstack und dann kleines Beispielprogramm. In der Vergangenheit hatte ich sowas auch, im code ist das Problem offensichtlich, aber QA oder wer auch immer die issues zuerst bearbeitet braucht irgendnen blödes Demo projekt um den Fehler zu sehen. :roll: |
AW: Delphi Bugs mit Lösungen...
FMX ist eine gute Idee, nur die Umsetzung ist teilweise echt (ich sag jetzt nix weiter).
Bin seit fast 30 Jahren im CAD Bereich tätig, der code würde bei uns nicht weit kommen... |
AW: Delphi Bugs mit Lösungen...
Finde den Thread eine tolle Idee! @Daniel: Könnte man hierfür nicht eine neue Kategorie einführen? GGf. findet man ja 2-3 Leute die den vorgeschlagenen Bugfix "kurz" validieren.
|
AW: Delphi Bugs mit Lösungen...
Ich habe auch schon an eine Art "CanIUse" für Fmx gedacht ...
Oder Polyfills, als "offizielle" Workarounds mit denen man das erwartete Verhalten rausbehommt. Sowas funktioniert bei JS ganz gut, könnte bei Delphi auch nicht schaden. Vielleicht ist das ja ein Vorschlag für Daniel (wenn er Zeit hat zwischen den Forentagen), ob man nicht sowas mit in das DP-Formum einbauen könnte :stupid: Rollo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz