On Saturday, 19 September 2015 at 02:45:54 UTC, Adam D. Ruppe wrote:
On Saturday, 19 September 2015 at 02:30:39 UTC, Chris wrote:
                        bmove.addOnClicked (delegate void (Button aux) {

What's the context of this call? If it is inside a struct and you are accessing local variables you can get in trouble because the context pointer may not be correct. You are using `vec` there, if `glw` is a struct/class member too, then the compiler can sometimes be a bit stupid about bringing in the correct `this` reference to the delegate.

Hi thanks for the response.

The context is inside a try block in the program's main() function. Glw is indeed a class but it doesn't look like it quite configures the problem you describe.

I think #3 will work for you here. Right above that loop, try something like

auto glw = this.glw;

There's no "this", it's the main() function. I stuck a "auto glw2 = glw" in there but it didn't help.

I found more funny stuff. If I move the code around and change the order of that snippet to before the other one I posted earlier, the first line (if (!glw...) now works *despite* the debugger saying the variable glw is "not found". So now as long as the condition evaluates to true it will work as expected. However when the condition is made to eval to false then the *next* line of code will trigger the exception as I first encountered.

So I'm going to go ahead and say I found a compiler bug.

Reply via email to