Delete Each
Übersicht BlitzBasic Allgemein
EingeproggtBetreff: Delete Each |
So, Okt 07, 2012 20:16 Antworten mit Zitat |
|
---|---|---|
Servus,
ich bin ein wenig verwundert und wollte mal fragen ob ich was übersehe oder ob hier Dinge abgehen die ich nicht verstehe... In meinem Code findet sich folgendes: BlitzBasic: [AUSKLAPPEN] Type player Natürlich schön in mein Programm verstrickt so dass es mir selbst noch nicht gelungen ist, den Fehler zu "isolieren". Die Delete-Each und For-Each Zeilen stehen jedenfalls direkt hintereinander ohne dass irgendwas mit PathNode dazwischen passiert! Und jetzt zu meiner "Frage": Ich bekomme unter Umständen (nicht immer) im Debuglog ein "HEY". Das kann es doch eigentlich gar nicht geben? Ich kann selbstverständlich das Problem beheben indem ich in die For-Each-Schleife nochmal ein Delete reinsetze aber so rein vom Prinzip her dürfte es doch keine PathNodes mehr geben nachdem Delete Each PathNode ausgeführt wurde? mfG, Christoph |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
XeresModerator |
So, Okt 07, 2012 20:41 Antworten mit Zitat |
|
---|---|---|
Keine Ahnung wie der GC dabei arbeitet, aber es kann natürlich sein, dass er nicht augenblicklich reagiert. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Lobby |
So, Okt 07, 2012 23:10 Antworten mit Zitat |
|
---|---|---|
Xeres, BlitzBasic und GC?
Das Verhalten ist in der Tat höchst sonderbar, Eingeproggt. |
||
Der Eisvogel |
Mo, Okt 08, 2012 16:26 Antworten mit Zitat |
|
---|---|---|
Hallo Eingeproggt,
für mich ist das Verhalten normal. Du löschst zwar jegliche Instanzen von PathNode und der Speicher wird vermutlich auch freigegeben. Aber die Referenzen bleiben erhalten. BlitzBasic: [AUSKLAPPEN] If pl\node<>Null Then DebugLog "HEY" Das prüft nur, ob etwas in der Variable steht, jedoch nicht, ob es valide ist. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
XeresModerator |
Mo, Okt 08, 2012 19:10 Antworten mit Zitat |
|
---|---|---|
Nein Eisvogel, so arbeitet BB nicht.
"Delete each" löscht alle Instanzen des entsprechenden types. Alle Variablen die die Instanzen Referenzieren, zeigen danach auf NULL. Keine sehr anschaulichen Variablenbezeichnungen, aber prinzipiell: BlitzBasic: [AUSKLAPPEN] Type TN |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Chester |
Mo, Okt 08, 2012 19:28 Antworten mit Zitat |
|
---|---|---|
Xeres hat Folgendes geschrieben: Keine Ahnung wie der GC dabei arbeitet, aber es kann natürlich sein, dass er nicht augenblicklich reagiert.
BB arbeitet prozedural, der nächste Befehl wird also erst ausgeführt, wenn Deleate Each vollständig abgeschlossen ist. Kann man ganz einfach ausprobieren, indem man die Zeitabhängigkeit von der Typanzahl misst. Insofern bist du hier wahrscheinlich wirklich auf was gestoßen, was nicht passieren darf oder hast sonst irgendwo was drin, was hier fehlt. Denn ich habe verschiedene Sachen ausprobiert, aber konnte deinen Fehler nicht reproduzieren. Hast du mal Debug On/Off ausprobiert (also mir Runtimeerror oder irgendwas lustigem)? |
||
Eingeproggt |
Di, Okt 09, 2012 0:12 Antworten mit Zitat |
|
---|---|---|
@Chester:
Guter Ansatz zu testen ob es eventuell am Debugmode liegt, aber hab das Problem einfach (unelegant) umgangen und es nicht näher erforscht. Wenn es mich sehr reizt oder jemand von euch sehr viel Zeit damit verbringen will... Der Code in dem das Problem ursprünglich auftrat wird im Rahmen des BCC ja bald veröffentlicht von mir Und die Stelle an der das problem auftrat is sogar noch markiert... aber keine Ahnung ob es noch immer auftritt. mfG, Christoph |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group