Zerosquare 2012-09-30 at 11:14pmEdited by Zerosquare On the 2012-09-30 at 11:14pm Ça veut dire que la valeur renvoyée peut être quelconque, mais à priori que la fonction ne plantera pas pour autant (vu que ce n'est pas indiqué). Donc non, l'implémentation de PedroM n'est pas buguée.

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT TurboJe confirme ce que dit Zerosquare, "return garbage" veut dire ce que ça veut dire, il retourne n'importe quoi. Et la fonction HeapDeref ne provoque jamais un HeapCompress.
Link 2012-10-14 at 05:20pm Dans tous les cas, ça veut dire qu'il ne faut pas appeler HeapDeref() avec H_NULL, vu que toute utilisation (déréférencement, comparaison à NULL, etc.) de la valeur de retour causera un comportement indéfini.
Et vu que HeapDeref n'a aucun effet de bord, la seule raison de l'appeler est d'utiliser sa valeur de retour...

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
Link 2012-10-14 at 05:50pm Oui, c'est pourquoi j'ai dit "utiliser" et non "lire".

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
Link 2012-10-14 at 06:15pm Disons que le résultat de la comparaison sera indéfini, et donc que toute action conditionnelle en dépendant le sera. Évidemment, il n'a jamais été dans mon intention d'insinuer que la comparaison elle-même causerait un plantage avant la fin de l'instruction TST...

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
tst.l %a0 n'existe pas, il faut un move.l %a0,%dn, ou si on ne veut pas détruire de registre de données, cmpa.l #0,%a0.