Re: [Vala] [Genie] instance creation order
- From: Jamie McCracken <jamie mccrack googlemail com>
- To: Arc Riley <arcriley gmail com>
- Cc: vala-list <vala-list gnome org>
- Subject: Re: [Vala] [Genie] instance creation order
- Date: Wed, 06 Jan 2010 09:33:27 -0500
so add any initilization code to the "set" part of any construction
property - this is a gobject foible IIRC
On Wed, 2010-01-06 at 09:30 -0500, Jamie McCracken wrote:
construct block should be used for setting property values
init is called before all constructors so is shared by them all
On Wed, 2010-01-06 at 02:17 -0500, Arc Riley wrote:
Why does a class's init method get called before its construct method?
This seems very counter-intuitive to me given the limitations on the
A *construct* block is used to define a creation method which requires
parameters at construction time when being instantiated via the new
operator. Creation methods are limited to setting the properties of the
class and may perform no other task (an init block should be used to perform
any other type of initialization). A class can have many creation methods
with either different names or different parameters. A default creation
method without any parameters is always available if no explicit creation
method is defined.
Since init runs first, none of the initialization code has access to
parameters passed to it by the new function. Say, for example, an argument
passed is a parent container for the new instance to add itself to - all the
construct method is allowed to do (if I read this correctly) is set
self._parent which only happens after init has run.
Am I reading this wrong, or do we need to implement some hacked up delayed
initializer for the mainloop to handle to work around this?
Vala-list mailing list
Vala-list gnome org
] [Thread Prev