Autor Beitrag
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 27.04.18 22:10 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Symbroson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Fr 27.04.18 22:12 
Ja ist ja gut ^^ es ging mir wie gesagt nur darum, eine einheitliche Freigabe-Funktion zu haben
An der Warnung ändert es aber nichts.

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 27.04.18 22:17 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Symbroson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Fr 27.04.18 22:19 
Von FastMM4 während des Beendens (vor Schließung der Konsole/des Ausgabefensters) dass ein TVec3 Objekt nicht freigegeben wurde, wenn ich v2 nicht am Ende manuell auf nil setze.

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 28.04.18 04:13 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Symbroson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Sa 28.04.18 08:37 
user profile iconFrühlingsrolle hat folgendes geschrieben:
Was für eine Warnung?

fmm4err


user profile iconFrühlingsrolle hat folgendes geschrieben:
An welcher Stelle?

Es ist keine Delphi Fehlermeldung die eine bestimmte Zeile im Code bemängeln könnte, sondern eine Meldung, ass nach dem Beenden des Programms noch etwas nicht freigegeben wurde. Dass FastMM4 überhaupt den Objekttyp erkennt finde ich schon gut.


user profile iconFrühlingsrolle hat folgendes geschrieben:
Auf einen Selbstversuch mit FastMM4, deiner Klasse und deinem Beispiel (mit meinen Verbesserungsvorschlägen) komme ich zu dem Entschluss, dass FastMM4 nichts zu bemängeln hat

Normalerweise macht es das auch nicht. Du musst dafür die FastMM4Options.inc anpassen. Ich hab hier mal gesammelt was bei bei mir alles eingeschaltet ist:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
{$define UseCustomFixedSizeMoveRoutines}
{$define UseCustomVariableSizeMoveRoutines}
{$define ASMVersion}
{$define DetectMMOperationsAfterUninstall}
{$define FullDebugMode}
  {$define RawStackTraces}
  {$define LogErrorsToFile}
  {$define LogMemoryLeakDetailToFile}
  {$define AlwaysAllocateTopDown}
  {$define SuppressFreeMemErrorsInsideException}
{$define EnableMemoryLeakReporting}
  {$define HideExpectedLeaksRegisteredByPointer}
  {$define ForceMMX}
{$define EnableBackwardCompatibleMMSharing}

EnableMemoryLeakReporting ist auf jeden Fall das Entscheidende.
Für FullDebugMode musste ich noch die FastMM_FullDebugMode.dll in mein Projektordner kopieren - sonst hat die Delphi nicht gefunden.


user profile iconFrühlingsrolle hat folgendes geschrieben:
Außerdem ist deine Code-Formatierung nicht so gut:

Ich möchte mich nur ungern über Formatierung streiten. Ich weiß, dass mehrere Befehle pro Zeile nicht gern gesehen sind. Das ist eh erstmal nur eine komprimierte aber übersichtliche Version (nach dem Motto 'Alles auf einen Blick'), in der ich einfacher etwas hinzufügen kann und gleichzeitig überprüfen, ob die Befehle und rechnungen mit den anderen Overloads übereinstimmen. Falls ich es irgendwann doch mal veröffentlichen möchte, oder irgendwie weitergeben, muss ich sowiso erst noch Kommentieren, und dann wird auch diese gepackte Struktur hinfällig.

Da wäre deine Variante, jeweils auf die (x,y,z)-Funktion zuzugreifen eigentlich nicht verkehrt - nur muss ich dafür erst wieder eine weitere prozedur aufrufen - das kommt mir performancemäßig nicht ganz richtig vor - aber eigentlich ist es vernünftig. Ich glaube, das werde ich übernehmen
Einloggen, um Attachments anzusehen!
_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 28.04.18 11:03 
- Nachträglich durch die Entwickler-Ecke gelöscht -