Bonsoir,

Je suis en train de réaliser un appel du C++ vers le Java.
En suivant, le chapitre The Invocation Interface du JNI Programmer's Guide and Specification je m'en sors.

Seulement voilà, entre deux appels à la JVM je n'ai pas de raisons de l'arrêter, et avant de l'appeler, je dois obtenir quantité d'IDs, initialiser mon paramètre (un objet Toto construit à partir de 6 chaines de caractères), et à la sortie je dois récupérer les chaines contenues dans un autre objet de type Titi renvoyé par la fonction Java appelée. A priori, rien de sorcier.

Toujours dans le même bouquin, je lis que les Reférences Locales sont automatiquement collectées à la sortie de la fonction native appelée depuis Java. Sauf que ... je suis dans l'autre situation: ce n'est pas Java qui m'enveloppe, il ne peut donc pas savoir qu'il peut collecter les références à la sortie de la fonction native qu'il appelle, vu que c'est la fonction native qui appelle Java.

Comment (/dois-) dire (proprement j'entends) à la JVM de collecter mes 2 objets (le paramètre et celui retourné), ainsi que toutes les chaines intermédiaires ?
Dans le même ordre d'idée faut-il indiquer de libérer les ID intermédiaires ? (même si au fond je pourrais les mémoriser pour une utilisation ultérieure)

Si vous avez la réponse à ces questions, ou une doc qui se préoccuper plus de ces points, je suis des plus intéressés.
Merci.