In proxy should I remove listeners explicitly?

Currently I am working on flex application where I am using multicore variant of puremvc. My question is in my proxy I am making remote call and attaching some (RESULT and FAULT) event listener. So in my event handler code should I remove listeners explicitly for making remoteObject class eligible for garbage collecton ?

   public function getTableGridData():void
   {
      var hostController:RemoteObject=this.hostController("ABC");
      hostController.addEventListener(ResultEvent.RESULT, handleResult);
      hostController.addEventListener(FaultEvent.FAULT, handleFault);
      hostController.getTableData();
   }

   private function handleResult(event:ResultEvent):void
   {
      ApplicationFacade.getInstance(key).sendNotification("abc", event.result);
   }

So here hostController holds strong reference of both the listeners. So after resultEvent does hostController is eligible for garbage collection or I have to mention weak reference for listeners for making hostController eligible for garbage collectioin ?

Answers


I think you should remove the listeners explicitly. It would at least make it easier for everyone to read the code.

I'm not sure if you keep any other references to that hostController (as you got it from hostController()). If you don't have any other references (for example, if hostController() is a simple create-forget factory) and use weak references on those listeners, that would mean it's eligible for garbage collection even before it finishes it's work -- as far as I understand it.


Need Your Help

What does OFFSET in 16 bit assembly code mean?

assembly x86 masm x86-16 16-bit

I am going through some example assembly code for 16-bit real mode.