[Pkg-vala-maintainers] Bug#622773: vala 0.10 doesn't handle fixed-size arrays correctly but 0.12 does

Alexander Kurtz kurtz.alex at googlemail.com
Thu Apr 14 14:59:00 UTC 2011


Package: valac-0.10
Version: 0.10.4-1
Severity: normal
Tags: upstream fixed-upstream

Hi,

vala 0.10 doesn't handle fixed-size arrays correctly as it still thinks
they need to freed after use. With the attached minimal bindings for
pulseaudio and a simple test program, I get this:

	$ valac-0.10 --vapidir=. --pkg=libpulse Test.vala 
	Test.vala:2.2-2.26: warning: field `Test.map' never used
		PulseAudio.ChannelMap map;
		^^^^^^^^^^^^^^^^^^^^^^^^^
	/tmp/ccJ40C4Z.o: In function `test_finalize':
	Test.vala.c:(.text+0x152): undefined reference to `pulse_audio_channel_map_destroy'
	collect2: ld returned 1 exit status
	error: cc exited with status 256
	Compilation failed: 1 error(s), 1 warning(s)
	$ 

vala 0.12 behaves correctly:

	$ valac-0.12 --vapidir=. --pkg=libpulse Test.vala 
	Test.vala:2.2-2.26: warning: field `Test.map' never used
		PulseAudio.ChannelMap map;
		^^^^^^^^^^^^^^^^^^^^^^^^^
	Compilation succeeded - 1 warning(s)
	$ 

I guess that one of these [1] commits fixed the issue. If you have to
use vala 0.10, you can use something like this as a workaround (thanks
to Sean McNamara![2]):

	$ diff -u libpulse.vapi.old libpulse.vapi
	--- libpulse.vapi.old	2011-04-14 16:43:04.177836648 +0200
	+++ libpulse.vapi	2011-04-14 16:43:27.258335636 +0200
	@@ -1,6 +1,6 @@
	 [CCode (cheader_filename="pulse/pulseaudio.h")]
	 namespace PulseAudio {
	-        [CCode (cname="pa_channel_map")]
	+        [CCode (cname="pa_channel_map", has_destroy_function=false)]
		 public struct ChannelMap {
		         public uint8 channels;
		         public ChannelPosition map[32];
	$ valac-0.10 --vapidir=. --pkg=libpulse Test.vala 
	Test.vala:2.2-2.26: warning: field `Test.map' never used
		PulseAudio.ChannelMap map;
		^^^^^^^^^^^^^^^^^^^^^^^^^
	Compilation succeeded - 1 warning(s)
	$ 

There is no need to take any action about this since the bug is fixed in
the latest upstream stable release, but I wanted to document it here for
later reference. If I have some spare time, I might try to exactly
pinpoint the fix and backport it to vala 0.10, so please don't close
this bug report for now.

Best regards

Alexander Kurtz

[1] http://git.gnome.org/browse/vala/log/?qt=grep&q=fixed.*array
[2] https://tango.0pointer.de/pipermail/pulseaudio-discuss/2011-March/009695.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libpulse.vapi
Type: text/x-vala
Size: 412 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-vala-maintainers/attachments/20110414/9c1643bf/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Test.vala
Type: text/x-vala
Size: 88 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-vala-maintainers/attachments/20110414/9c1643bf/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/pkg-vala-maintainers/attachments/20110414/9c1643bf/attachment.pgp>


More information about the Pkg-vala-maintainers mailing list