zu 3.94-Zeiten gab es für solche Zwecke aber noch das FakeEndSelect im Nativen Befehlssatz.
Tritt das Problem denn auch mit einem Long-Select auf, oder nur mit einem Quad-Select?
Mir deucht, dass Select nicht für Quads geeignet ist, zumindest das sollte dann in die Doku.
Wenn Break und ProcedureReturn innnerhalb von Long-Selects fehlerfrei arbeitet,
müßte eigentlich nur dokumentiert werden, dass Select nicht für Quads geeignet ist.
... jedenfalls vorerst, grundsätzlich sollte das behoben werden, auch im Hinblick darauf dass es auf x64 ja Quad sein wird solange man es nicht anders definiert.
Break in Quad-Select in Schleife in Prozedur = Crash
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Sprichst mir aus der Seele.tranquil hat geschrieben:(...) Warum wird das nirgends dokumentiert? (...) Nun heißt es Sources überarbeiten..... :P
Edit: @ Kaeru Gaman: Tritt bei mir (mit dem Code aus meinem ersten Posting) nur mit Quads auf!
Regenduft hat geschrieben:Das ganze Tritt scheinbar nur in genau dieser Konstelation auf! Keine Schleife; kein Fehler. If statt Select; kein Fehler. Long statt Quad; kein Fehler. usw. usf.
PureBasic 5.73 LTE x86/x64 | Windows 7 (x64)
> Tritt bei mir nur mit Quads auf
Als ich mich mit dem Problem konfrontiert sah, benutzte ich röhlich ProcedureReturn in einer Select-Abfrage; und das auch noch mehrfach innerhalb mehrerer Threads.
Diese Select-Abfrage, lief soweit ich mich erinnere, mit Longs, denn da gab es ja keine Quads. Habt ihr das denn auch mal mit Strings getestet? Ist sicherlich ein ähnlicher 'Sonderfall' wie Quads.
> zu 3.94-Zeiten gab es für solche Zwecke aber noch das FakeEndSelect im Nativen Befehlssatz
Nein? Ich wüsste nicht, dass FakeEndSelect in 3.94 existiert; ich kenne die meisten Libs auswendig.
// Edit: Laut Geschichte wurde FakeEndSelect 2003 in der Version 3.62 entfernt. Also lange vor meiner Zeit.
> bin davon ausgegangen das ProcedureReturn den Stack, egal wo ich aus der Prozedure springe, aufräumt
Ja, der Meinung bin ich auch. Dies sind Methoden, ein Select, welches möglicherweise sogar in einer Schleife liegt, sauber zu verlassen. Mit Goto da raus zu wollen, kann ich verstehen, dass das 'unschön' ist. Dieser Bug muss wirklich behoben werden.
Als ich mich mit dem Problem konfrontiert sah, benutzte ich röhlich ProcedureReturn in einer Select-Abfrage; und das auch noch mehrfach innerhalb mehrerer Threads.
Diese Select-Abfrage, lief soweit ich mich erinnere, mit Longs, denn da gab es ja keine Quads. Habt ihr das denn auch mal mit Strings getestet? Ist sicherlich ein ähnlicher 'Sonderfall' wie Quads.
> zu 3.94-Zeiten gab es für solche Zwecke aber noch das FakeEndSelect im Nativen Befehlssatz
Nein? Ich wüsste nicht, dass FakeEndSelect in 3.94 existiert; ich kenne die meisten Libs auswendig.
// Edit: Laut Geschichte wurde FakeEndSelect 2003 in der Version 3.62 entfernt. Also lange vor meiner Zeit.
> bin davon ausgegangen das ProcedureReturn den Stack, egal wo ich aus der Prozedure springe, aufräumt
Ja, der Meinung bin ich auch. Dies sind Methoden, ein Select, welches möglicherweise sogar in einer Schleife liegt, sauber zu verlassen. Mit Goto da raus zu wollen, kann ich verstehen, dass das 'unschön' ist. Dieser Bug muss wirklich behoben werden.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End