On Tue, Jun 07, 2011 at 12:46:09PM -0700, Joseph Montanez wrote:
> This is probably a no brainer but thought it was worth posting.
> 
>         state.on_score = () => {
>             // Reset the ball
>             ball.reset_location (engine);
>             ball.pause ();
> 
>             var c = new Circle();
>             c.x = engine.width / 2;
>             c.y = engine.height / 2;
>             c.radius = 34.00;
>             engine.sprites.add (c);
> 
>             engine.add_timer(() => {
>                 ball.unpause ();
>                 engine.sprites.remove (c); //<-- CRASH
>             }, 3000);
>         };
> 
> 
> In Vala is it correct to assume that anything defined inside an
> anonymous function is not accessible anywhere else, even inside
> another anonymous function that's inside itself? For now I ended up
> moving the object "c" outside of them both and access was fine. I also
> tried tossing around owned and unowned but same results. Is there
> maybe a flag I can use to catch this sort of issue?

If it crashes it's because the delegate parameter of add_timer is not owned,
so you shouldn't use a closure.

-- 
http://www.debian.org - The Universal Operating System
_______________________________________________
vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to