Mon application est capable de pousser une fonction dans une liste Todo en utilisant un code comme: test de fonctionnement() print ("coucou") finalComment comparer 2 fonctions passées comme argument
todo:pushtask(test) -- First push
todo:pushtask(test) -- Second push
en interne, la liste de tâches est une table de C entier où je pousse une référence à la fonction passée a de:
int func = luaL_ref(L, LUA_REGISTRYINDEX);
Mais comment puis-je détecter si je pousse la même fonction? Selon mon test, luaL_ref renvoie des références différentes même si la même fonction est poussée (disons ref # 1 et # 2) Comment puis-je vérifier si # 1 et # 2 sont des références à la même fonction?
Merci
Laurent
Merci pour votre réponse. Mais, tout le traitement de la liste TODO est fait en C: est-ce un moyen simple de le faire directement à partir du code C? – destroyedlolo
Vous pouvez le faire à partir de 'C' juste très bien. Vous avez juste besoin de garder la table en lua (mais vous pouvez la gérer avec le code 'C'). Vous pouvez * éviter * la table et simplement boucler chaque élément dans la table de références à chaque fois si vous le souhaitez (mais je ** vraiment ** ne le suggère pas). –
Malheureusement, j'ai besoin de boucle: une fonction peut-être appelée une seule fois ou plusieurs fois en fonction du contexte. Cette liste de tâches conduit les événements arrivant à une interface graphique: pour certains d'entre eux, chaque instance est significative (arrivée d'une donnée), d'autres non (demande de mise à jour de l'interface avec une nouvelle donnée). Et même pour "l'arrivée des données", on ne peut considérer que le dernier dans certaines circonstances (c'est-à-dire lorsque sa fenêtre est en arrière-plan). – destroyedlolo