[futurebasic] Re: [FB] FBToC and UserDialog events crash

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : June 2009 : Group Archive : Group : All Groups

From: Robert Purves <listrp@...>
Date: Tue, 2 Jun 2009 21:36:47 +1200
Robert Covington wrote:

> The below, which worked fine in FB normal, crashes badly in FB5.

[snip]

> Thread 0 Crashed:
> 0   com.apple.CoreGraphics 	0x90439ef0 CGSGetCurrentMouseButtonState  
> + 32
> 1   com.apple.HIToolbox    	0x9337bfb8 Button + 24
> 2   Do Dialog Tester       	0x000037c8 DoDialog + 100  
> (_1_Do_Dialo,Temp_Pro,Temp_Pro.c:35)
> 3   Do Dialog Tester       	0x00002d58  
> CallUserDefinedOnDialogFunction + 56 (AppThings.c:1395)
> 4   Do Dialog Tester       	0x00002e48 FBDialogStatement + 24  
> (AppThings.c:1456)
> 5   Do Dialog Tester       	0x000037e4 DoDialog + 128  
> (_1_Do_Dialo,Temp_Pro,Temp_Pro.c:48)
> 6   Do Dialog Tester       	0x00002d58  
> CallUserDefinedOnDialogFunction + 56 (AppThings.c:1395)
> 7   Do Dialog Tester       	0x00002e48 FBDialogStatement + 24  
> (AppThings.c:1456)
> 8   Do Dialog Tester       	0x000037e4 DoDialog + 128  
> (_1_Do_Dialo,Temp_Pro,Temp_Pro.c:48)
> 9   Do Dialog Tester       	0x00002d58  
> CallUserDefinedOnDialogFunction + 56 (AppThings.c:1395)
> 10  Do Dialog Tester       	0x00002e48 FBDialogStatement + 24  
> (AppThings.c:1456)
> 11  Do Dialog Tester       	0x000037e4 DoDialog + 128  
> (_1_Do_Dialo,Temp_Pro,Temp_Pro.c:48)
> 12  Do Dialog Tester       	0x00002d58  
> CallUserDefinedOnDialogFunction + 56 (AppThings.c:1395)

In FBtoC, the 'dialog =' statement immediately calls your DoDialog()  
function, by way of two runtime functions.
If DoDialog() contains 'dialog =', the ensuing recursion, if  
unlimited, blows the stack away.

'------------------
local fn DoDialog
dialog = 123456789
end fn

on dialog fn DoDialog
do
HandleEvents
until gFBQuit
'-------------------

Robert P.