コード例 #1
0
NS_IMETHODIMP
EventListenerService::GetListenerInfoFor(nsIDOMEventTarget* aEventTarget,
                                         uint32_t* aCount,
                                         nsIEventListenerInfo*** aOutArray)
{
  NS_ENSURE_ARG_POINTER(aEventTarget);
  *aCount = 0;
  *aOutArray = nullptr;
  nsCOMArray<nsIEventListenerInfo> listenerInfos;

  nsCOMPtr<EventTarget> eventTarget = do_QueryInterface(aEventTarget);
  NS_ENSURE_TRUE(eventTarget, NS_ERROR_NO_INTERFACE);

  EventListenerManager* elm = eventTarget->GetExistingListenerManager();
  if (elm) {
    elm->GetListenerInfo(&listenerInfos);
  }

  int32_t count = listenerInfos.Count();
  if (count == 0) {
    return NS_OK;
  }

  listenerInfos.Forget(aOutArray);
  *aCount = count;
  return NS_OK;
}
コード例 #2
0
NS_IMETHODIMP
EventListenerService::GetListenerInfoFor(nsIDOMEventTarget* aEventTarget,
        uint32_t* aCount,
        nsIEventListenerInfo*** aOutArray)
{
    NS_ENSURE_ARG_POINTER(aEventTarget);
    *aCount = 0;
    *aOutArray = nullptr;
    nsCOMArray<nsIEventListenerInfo> listenerInfos;

    nsCOMPtr<EventTarget> eventTarget = do_QueryInterface(aEventTarget);
    NS_ENSURE_TRUE(eventTarget, NS_ERROR_NO_INTERFACE);

    EventListenerManager* elm = eventTarget->GetExistingListenerManager();
    if (elm) {
        elm->GetListenerInfo(&listenerInfos);
    }

    int32_t count = listenerInfos.Count();
    if (count == 0) {
        return NS_OK;
    }

    *aOutArray =
        static_cast<nsIEventListenerInfo**>(
            moz_xmalloc(sizeof(nsIEventListenerInfo*) * count));
    NS_ENSURE_TRUE(*aOutArray, NS_ERROR_OUT_OF_MEMORY);

    for (int32_t i = 0; i < count; ++i) {
        NS_ADDREF((*aOutArray)[i] = listenerInfos[i]);
    }
    *aCount = count;
    return NS_OK;
}
コード例 #3
0
NS_IMETHODIMP
EventListenerService::GetListenerInfoFor(EventTarget* aEventTarget,
                                         uint32_t* aCount,
                                         nsIEventListenerInfo*** aOutArray)
{
  NS_ENSURE_ARG_POINTER(aEventTarget);
  *aCount = 0;
  *aOutArray = nullptr;
  nsCOMArray<nsIEventListenerInfo> listenerInfos;

  EventListenerManager* elm = aEventTarget->GetExistingListenerManager();
  if (elm) {
    elm->GetListenerInfo(&listenerInfos);
  }

  int32_t count = listenerInfos.Count();
  if (count == 0) {
    return NS_OK;
  }

  listenerInfos.Forget(aOutArray);
  *aCount = count;
  return NS_OK;
}