Einzelnen Beitrag anzeigen

Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: eigenen Pointer unterbringen in TObject?

  Alt 17. Feb 2009, 17:16
Ich denke, es ist einfacher, einen eigenen Speichermanager zu installieren und dann in FreeMem das Objekt aus der Tabelle zu nehmen. Dazu holst du dir mit GetMemoryManager(Ex) (das hängt von der Delphi-Version ab) den alten Speichermanager, ersetzt im Record den FreeMem-Zeiger und setzt das dann als neuen Speichermanager. In deinem eigenen FreeMem löschst du gegebenenfalls den Tabelleneintrag und rufst das alte FreeMem auf.

Das Hooken von TObject.FreeInstance mag zwar geringfügig schneller sein (da du beispielsweise nur Objekt-Freigaben mitbekommst und keine Feld-Wald-und-Wiesen-FreeMems), allerdings ist es auch erheblich unsauberer.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat