Re: [Vala] Iterate in VAPI bindings



According to:
https://github.com/freebsd/pkg/blob/d2ba38c68877e05ceb92eb372fb11e366198f895/docs/pkg_repos.3#L47

The binding should be `public static int repos(ref Repo? r);` and the
parameter should be initialised to null for the first iteration.

Your C program works because the stack happens to be zero when it starts,
but it is using undefined behaviour.

On 30 December 2016 at 11:13, Olivier Duchateau <duchateau olivier gmail com
wrote:

On Fri, 30 Dec 2016 14:48:27 +0000
Luc Chante <luc chante gmail com> wrote:

Hello,

I guess "Pkg.Repo" represents a single repo, so is it normal that
"Pkg.Repo.repos (out r)" isn't called on every iteration ?

I've just tested and FreeBSD is displayed twice (instead of FreeBSD and
Xfce).


What was the tested condition in the while-loop ?
"while (Pkg.Status.OK == Pkg.Repo.repos (out r))"

It causes an infinite loop (and core dump).


Hope it helps.

Le ven. 30 déc. 2016 à 15:24, Olivier Duchateau <
duchateau olivier gmail com>
a écrit :

Hi,

I'm trying to write Vala bindings for pkg(8), FreeBSD's packages
manager.
But I encounter weird behaviour in while loop.

Currently I try to display name of repositories (FreeBSD and Xfce).

My simple C program [1] works fine (expected result). If I use same
while
loop in my Vala program, I get an infinite loop. So I use for loop
[2], but
it's only FreeBSD which is displayed. I wonder how to iterate in loop.

Traduction of related pkg_repo* methods is here [3], and corresponding
C
[4].

Regards,

[1]
https://bitbucket.org/olivierduchateau/scripts/src/
1f34246a6bc9/pkg/repos.c?at=default
[2]
https://bitbucket.org/olivierduchateau/libpkg-vapi/
src/cc552a344dac/test.vala?at=default
[3]
https://bitbucket.org/olivierduchateau/libpkg-vapi/
src/cc552a344dac/pkg.vapi?at=default&fileviewer=file-view-
default#pkg.vapi-146
[4] https://github.com/freebsd/pkg/blob/1.9.4/libpkg/pkg.h.in#L1501

--
olivier
_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list

_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list


--
olivier
_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list




-- 
--Andre Masella<andre masella name>
http://www.masella.name/


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]