[Squeak-fr] Morph et triggerEvent

Stéphane Rollandin hepta at zogotounga.net
Jeu 15 Mai 20:59:43 UTC 2008


j'ai trouvé:

dans ton example1, l'object référencé par m est garbage-collecté parce 
qu'il n'est pas retourné par la méthode (le pourquoi de ce comportement 
ne m'est pas très clair); du coup, un WeakMessageSend pert son receiver, 
et la chaine de tes événements est interrompue.

pour t'en convaincre, deux choses:

1) fait MyMorph example1, ouvre un explorateur sur le morph qui apparait 
"in Hand" et regarde son actionMap (dans extension, otherProperties). 
c'est un WeakMessageSend dont le receiver est nil. donx le message 
#eventOccured n'a nulle part où aller.

2) va dans la méthode Object>>When:send:to: et remplace WeakMessageSend 
par MessageSend. ça marche.


conclusion: tu est tombé sur une configuration où la viabilité d'un de 
tes objects n'est pas suffisamment assurée (manque de référence), et 
donc il disparait prématurément, plus ou moins vite ce qui explique que 
tu puisse voir un message dans le Transcript, ou aucun.


CQFD ?

Stef



Plus d'informations sur la liste de diffusion Squeak-fr