Break in Quad-Select in Schleife in Prozedur = Crash

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Regenduft
Beiträge: 574
Registriert: 25.03.2008 15:07
Wohnort: THE LÄÄÄND!

Beitrag von Regenduft »

tranquil hat geschrieben:(...) Warum wird das nirgends dokumentiert? (...) Nun heißt es Sources überarbeiten..... :P
Sprichst mir aus der Seele.

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)
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten