Re: [Vala] I'm missing Java's anonymous classes



Nor Jaidi Tuah wrote:
The compiled code is something like this (from memory):

   self = uazu_win_widget_construct(uazu_win_display_relayout_imp, self);

i.e. the delegate is a dual-pointer (func, target), with 'self' as the
second part.  But 'self' hasn't yet been initialised, because the
widget constructor call hasn't yet been made, so NULL is passed.

This is interesting. I can't blame the vala developers
for missing this one (or perhaps already considering
and dismissing it). Consider directly constructing a Widget
accepting its own method as a delegate:

  var x = new Widget (x.foo !!!!????);

There is no way that the Vala compiler can make this work, as far as I
can see.  A delegate which depends on 'self' can never be passed to a
constructor.

I think this can be fixed a using a separate alloc step
(like in objective-c?).

Yes, good point -- that would work.

Jim

-- 
 Jim Peters                  (_)/=\~/_(_)                 jim uazu net
                          (_)  /=\  ~/_  (_)
 UazĂș                  (_)    /=\    ~/_    (_)                http://
 in Peru            (_) ____ /=\ ____ ~/_ ____ (_)            uazu.net



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