gforth
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gforth] Strange behavior in callbacks


From: Reepca Russelstein
Subject: Re: [gforth] Strange behavior in callbacks
Date: Wed, 14 Mar 2018 21:14:38 -0500

On Tue, Mar 13, 2018 at 11:59 AM, Reepca Russelstein
<address@hidden> wrote:
> Trying to get some c callbacks working and encountering some strange 
> behavior...
>
> c-library genericCallback
>     \c void genericCallback(void (*tocall)(void))
>     \c {
>     \c    tocall();
>     \c }
>     c-function genericCallback genericCallback a -- void
>     c-callback blankCallback -- void
> end-c-library
>
>
> :noname   .s s" 1 2 + ." evaluate ; blankCallback genericCallback
>
>
> That produces
>
> <-21965655376>
> uncaught exception: Stack underflow
>
>
> I initially thought to have the signature of genericCallback be func
> -- void, but swig kept calling them addresses instead. Also it
> produced the same result.
>
> Looking at the generated wrapper code, I see that a new stackpointers
> variable is created and used. It seems that whatever stack checking is
> happening isn't taking this into account, coming to some incorrect
> conclusions instead.
>
> I came across this trying to evaluate input in glutIdleFunc so that I
> could keep making changes while the program is running. Any advice on
> how to make this use case work, that doesn't involve "just don't use
> glut" (I'd love to be able to take it...)?
>
> Thanks.

I should specify, I'm using the latest git from savannah.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]