Forum: Object-Pascal / Delphi-Language
Delphi
by negaH,
22. Nov 2005
Naja, primär hatte ich IsObject() entwickelt weil es sicherer als der Operator is ist. Wird is auf ein falsches Objekt angewendet dann ist garantiert das es AVs hagelt. IsObject() macht nun eigentlich das was ich vom is Operator erwartet hätte, es erzeugt keine AVs sondern kehrt in diesem Falle mit FALSE zurück.
Man muß sich mal die Verwendung vom is Operator vergegenwärtigen:
if...
Forum: Object-Pascal / Delphi-Language
Delphi
by negaH,
21. Nov 2005
1.) die Wahrscheinlichkeit ist bei nicht multithreaded Anweendung exakt 100%. Der Borland MM merkt sich speziell den zu letzt freigegebenen Speicherblock und überprüft bei einer erneuten Allozierung ob das Speicherbereich in den alten zuvor freigegebenen reinpasst. Er verwendet also als erste und schnellste Alternative immer den zuvor freigegebenen Speicher wieder. Im Falle das also der neue...
Forum: Object-Pascal / Delphi-Language
Delphi
by negaH,
5. Feb 2004
Hi Choose,
deine Assembler Funktionen sind buggy, leider :)
1.) Du benutzt EBX ohne es vorher zu sichern, eg. PUSH/POP
2.) IsBadReadPtr() ist zwar eine Funktion die überprüfen soll ob ein Zeiger gültig ist, sie funktioniert nur leider nicht so wie erwartet. D.h. IsBadReadPtr(KernelSpeicher) würde FALSE ergeben, ein Zugriff auf KernelSpeicher^ aber denoch eine Zugriffsverletzung auslösen
...
Forum: Object-Pascal / Delphi-Language
Delphi
by negaH,
5. Feb 2004
Hi Choose,
ich hatte hier im Forum schon mal einen solchen Code gepostet. Dieser Source konnte über alle deklarierten TypInfos der geladenenen Module iterieren. D.h. alle TypInfos die auch mit der Funktion TypInfo(XYZ) abgefragt werden können konnten mit der Funktion EnumTypeInfo() durchiteriert werden.
Nun, ich habe danch im Forum gesucht und konnte es nicht mehr finden, vielleicht findest...
Forum: Object-Pascal / Delphi-Language
Delphi
by negaH,
4. Feb 2004
Hi Choose,
deine Überprüfung auf zirkuläre Referenzen ist ebenfalls nicht 100%'tig sicher. Angenommen die Klasse ist die 10'te Klasse in einer Hirarchie. Dann würde deine Absicherung im Source nur mit 1/(10*10)'tel besser sein als garkeine Überprüfung auf zirkuläre Referenzen. Denn es kann an jeder Stelle der VTM.Parent Hierarchie die zirkulare Referenz zu jeder der anderen Klassen in der...