Posté le 30/09/2012 à 23:06 Membre depuis le 18/06/2001, -26082 message
yop,


La doc de HeapDeref dit ça :
Note: HeapDeref returns garbage if Handle is H_NULL.

Ca veut dire quoi "retourner un garbage" ? Ca appelle HeapCompress et ça ne renvoie rien de précis ? J'ai pas tracé AMS pour le savoir. En tout cas, PedroM ne fait rien de particulier s'il trouve H_NULL en argument :
HeapDeref:
	moveq	#0,d0
	move.w	4(a7),d0
	lsl.w	#2,d0
	movea.l	HEAP_PTR,a0
	move.l	0(a0,d0.w),a0
	rts

Ca va juste renvoyer l'adresse du handle numéro #0, qui est d'ailleurs utilisé à je ne sais quoi... C'est un bug ?
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 30/09/2012 à 23:14Edité par Zerosquare le 30/09/2012 à 23:14 Membre depuis le 27/04/2006, 60457 messages
Ç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.
avatarZeroblog

« 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 Turbo
Posté le 30/09/2012 à 23:14 Membre depuis le 18/06/2001, -26082 message
Ok, merci bien. smile
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 30/09/2012 à 23:43 Membre depuis le 10/06/2001, 40258 messages
Je 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.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 01/10/2012 à 02:40 Membre depuis le 10/06/2001, 45094 messages
oué : http://www.wordreference.com/enfr/garbage
Rien à voir avec le "garbage collection" du tas.
Posté le 01/10/2012 à 12:04 Membre depuis le 18/06/2001, -26082 message
Okay. J'avais effectivement un problème de vocabulaire hehe
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 14/10/2012 à 17:20 Membre depuis le 24/04/2002, 4697 messages
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...
avatarMaintenant 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.
Posté le 14/10/2012 à 17:47 Membre depuis le 27/04/2006, 60457 messages
Ouais enfin faut pas être trop parano non plus tongue

La valeur de retour est dans un registre, donc la lire ne peut pas provoquer d'effet secondaire, c'est juste qu'elle peut valoir n'importe quoi.
avatarZeroblog

« 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 Turbo
Posté le 14/10/2012 à 17:50 Membre depuis le 24/04/2002, 4697 messages
Oui, c'est pourquoi j'ai dit "utiliser" et non "lire".
avatarMaintenant 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.
Posté le 14/10/2012 à 17:58 Membre depuis le 27/04/2006, 60457 messages
Hum hum cheeky
Link (./8) :
comparaison à NULL


avatarZeroblog

« 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 Turbo
Posté le 14/10/2012 à 18:15 Membre depuis le 24/04/2002, 4697 messages
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...
avatarMaintenant 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.
Posté le 14/10/2012 à 20:26 Membre depuis le 18/06/2001, -26082 message
Link (./7) :
vu que toute utilisation (déréférencement, comparaison à NULL, etc.) de la valeur de retour

déréférencement d'adresse ?

hmmmm cheeky
Link (./11) :
É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...

tst.l a0 ?

hmmmm cheeky
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 14/10/2012 à 22:58 Membre depuis le 10/06/2001, 40258 messages
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.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 14/10/2012 à 23:16 Membre depuis le 18/06/2001, -26082 message
De toute façon, moi je préfère le trap #3 tongue

(et t'inquiète, je sais que tst.l an n'existe pas, cf le "cheeky")
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !