Re: [Vala] GScanner in glib.vapi busted (Re: Parsing with Vala)
- From: Jan Hudec <bulb ucw cz>
- To: Xavier Bestel <xavier bestel free fr>
- Cc: vala-list <vala-list gnome org>
- Subject: Re: [Vala] GScanner in glib.vapi busted (Re: Parsing with Vala)
- Date: Thu, 22 Oct 2009 18:56:24 +0200
On Wed, Oct 21, 2009 at 17:15:04 +0200, Xavier Bestel wrote:
On Tue, 2009-10-20 at 19:33 +0200, Xavier Bestel wrote:
[TokenValue means GLib.TokenValue below:]
But even with that I still have a problem: TokenValue is a simple enum,
tagged with [SimpleType] in the vapi file, but Vala inserts a
(non-existing) g_token_value_destroy() and of course fails at link-time.
Could someone knowledgeable show me how to fix the vapi ?
So, I've added [CCode (destroy_function = "")] which makes it work, but
by pure luck: now the code generator inserts an "(&val)" into the code
(i.e. it tries to destroy the value with an empty function name).
That's ugly.
Hm, it probably shouldn't generate that. The need for CCode is weird --
TokenValue is declared [SimpleType] and that, being passed around by value,
shouldn't have a destroy function by default.
I think it comes from the fact that TokenValue is actually an union, but
Vala has no concept of union (even for foreign code) it it's declared as
Actually I believe it does -- *except* in foreign code.
a struct in the vapi, which it tries to destroy after use.
I see it declared as
[SimpleType]
struct TokenValue
here (vala 0.7.7), which is the right way to declare it. Because struct just
means stored by value and [SimpleType] means passed by value as well. How
it's really declared in C is irrelevant to Vala.
Is there some documentation about the code attributes somewhere ? I'd
like to fix it myself but I need some pointers.
I fear there's nothing really comprehensive. You can find some things on the
wiki (live.gnome.org/Vala) and the rest you have to look at how other things
are defined.
--
Jan 'Bulb' Hudec <bulb ucw cz>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]