Jürg confirms this is a bug. So I entered a new one in bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=609388
On Tue, Feb 9, 2010 at 2:17 AM, Sandino Flores Moreno <[email protected]> wrote: > In my program, I need to initialize variables that are items of an array. > It's a situation that can be roughly simplified to this: > > [test.vala] > > void modify(out int n) { > n = 5; > } > > void main() { > int[] a = new int[3]; > for(int i=0; i<a.length; i++) > modify(out a[i]); > } > > [/test.vala] > > However, I get this error: > > $ valac test.vala > test.vala:8.10-8.17: error: ref and out method arguments can only be > used with fields, parameters, and local variables > modify(out a[i]); > > > > More specifically, I had this code that is valid in C: > > OMX_BUFFERHEADERTYPE *inBufferAudioDec[2]; > for(i=0; i<2; i++) { > err = OMX_AllocateBuffer(audiodechandle, &inBufferAudioDec[i], > 0, NULL, buffer_in_size); > if (err != OMX_ErrorNone) > exit(1); > } > > That is translated to Vala as shown: > > Omx.BufferHeader[] inBufferAudioDec = new Omx.BufferHeader[2]; > for(i=0; i<2; i++) { > err = audiodechandle.allocate_buffer(out inBufferAudioDec[i], > 0, null, buffer_in_size); > if (err != Omx.Error.None) > Posix.exit(1); > } > > But, Vala fails with the error specified in the canonical example. > > So, how should I pass items of an array as out parameters of a method > or function? > _______________________________________________ Vala-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/vala-list
