Re: [Vala] Constructors in VAPI



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]