Re: [Vala] Constructors in VAPI
- From: Abderrahim Kitouni <a kitouni gmail com>
- To: Marco Trevisan <mail 3v1n0 net>
- Cc: vala-list gnome org
- Subject: Re: [Vala] Constructors in VAPI
- Date: Wed, 23 Sep 2009 08:41:16 +0100
Hi,
2009/9/22 Marco Trevisan <mail 3v1n0 net>:
Abderrahim Kitouni wrote:
did you try to set [CCode (cname=g_new0)] for the constructor? You can
make it work somehow with such tricks.
Yes, I tried but it doesn't work since it generates bad c code (with no
parameters for g_new0) like:
_tmp0_ = g_new0 ();
Yes, I forgot to mention that you need to add default arguments to
make it work (IIRC, g_new0 takes a size, so you can make your
constructor
[CCode (cname = "g_new0")]
MyVirtualClass (ulong size = sizeof(int));
or something like this, the problem with this approach is that a user
can break his code (plus it's somewhat ugly)
This is what I want avoid. I just want to write a VAPI without editing
the C source code, but creating a new "virtual class" that is a kind of
wrapper to replace the missing C code.
With Vala 0.7.5 all this was possible, why isn't it any more?
It was a bug :-p
Seriously, I believe this is the intended behaviour, you declared a
*class* not a struct. A compact class' size is not always known, so it
doesn't always make sense to use g_new, but it may make sense as a
fallback.
I don't know if a struct is what you want or if you need a
constructor. How is this supposed to be used?
Abderrahim
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]