NS_TRY_SAFE_CALL_VOID(PR_UnloadLibrary(aLibrary), nsnull);
NS_TRY_SAFE_CALL_VOID(PR_UnloadLibrary(aLibrary), nsnull, nsnull);
nsresult PostPluginUnloadEvent (PRLibrary* aLibrary){  nsCOMPtr<nsIEventQueueService> eventService(do_GetService(kEventQueueServiceCID));  if (eventService) {    nsCOMPtr<nsIEventQueue> eventQueue;      eventService->GetThreadEventQueue(PR_GetCurrentThread(), getter_AddRefs(eventQueue));    if (eventQueue) {      nsPluginUnloadEvent * ev = new nsPluginUnloadEvent(aLibrary);      if (ev) {        PL_InitEvent(ev, nsnull, (PLHandleEventProc) ::HandlePluginUnloadPLEvent, (PLDestroyEventProc) ::DestroyPluginUnloadPLEvent);        if (NS_SUCCEEDED(eventQueue->PostEvent(ev)))          return NS_OK;                else NS_WARNING("failed to post event onto queue");      } else NS_WARNING("not able to create plugin unload event");    } else NS_WARNING("couldn't get event queue");  } else NS_WARNING("couldn't get event queue service");  // failure case  NS_TRY_SAFE_CALL_VOID(PR_UnloadLibrary(aLibrary), nsnull);  return NS_ERROR_FAILURE;}