Seite 1 von 1

[Bug] ProcedureReturn in Select-Verschachtelung

Verfasst: 09.06.2005 14:22
von NicTheQuick
Ich brauch da nicht viel zu erklären, auf jeden Fall ist es ein Bug. [c]TestProc2()[/c] funktioniert wunderbar, während [c]TestProc1()[/c] bei der Rückgabe scheitert.
Ich benutze allerdings noch die Version 3.93. Es kann also sein, dass es in der jetztigen Beta schon behoben ist, aber ich wollte es eben nochmal sagen. :wink:

Code: Alles auswählen

Procedure.f TestProc1(a.l)
  Protected res.f
  
  Select a
    Case 0
      res = 1.5
      ProcedureReturn res
    Case 1
      res = 1.8
      ProcedureReturn res
  EndSelect
  
  ProcedureReturn 0
EndProcedure
Procedure.f TestProc2(a.l)
  Protected res.f
  
  res = 0
  Select a
    Case 0
      res = 1.5
    Case 1
      res = 1.8
  EndSelect
  
  ProcedureReturn res
EndProcedure

Debug TestProc2(0)
Debug TestProc1(0)
[c][/c]

Verfasst: 09.06.2005 14:26
von Andre
An Fred gemeldet...

Verfasst: 10.06.2005 07:51
von Lebostein
Also der neue Debugger aus 3.94 meldet in TestProc1() unter "Case 0" in der Zeile "ProcedureReturn res" einen "Invalid memory access". Scheint ein Compilerproblem zu sein, denn an dem Code gibts ja nicht auszusetzen...

Verfasst: 10.06.2005 15:20
von NicTheQuick
Der Fehler liegt nur an der Rückgabe eines Floats. Denn mit einem Integer funktioniert es ja wunderbar, also [c]Procedure.l TestProc1()[/c].

Dank der OnError-Lib kannte ich den Fehler schon. Aber schön, dass der neue Debugger ihn auch endlich mal bemerkt und ausgibt. So langsam nervt es mich nämlich auch schon, dass ich immer die OnError-Lib für soetwas missbrauchen muss. :|

Aber die 3.94 saug ich mir erst, wenn sie keine Beta ist.