From 69b2819df212e6101fe9e0428e2f07be31384d46 Mon Sep 17 00:00:00 2001 From: Andrew McCreight Date: Fri, 30 Jan 2015 10:55:11 -0800 Subject: [PATCH] Bug 1124261, part 2 - Make NS_NewXBLEventHandler infallible. r=smaug --- dom/xbl/nsXBLEventHandler.cpp | 18 +++++++----------- dom/xbl/nsXBLEventHandler.h | 5 ++--- dom/xbl/nsXBLPrototypeHandler.h | 3 +-- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/dom/xbl/nsXBLEventHandler.cpp b/dom/xbl/nsXBLEventHandler.cpp index 46cb8743b829..8d10a772bfd2 100644 --- a/dom/xbl/nsXBLEventHandler.cpp +++ b/dom/xbl/nsXBLEventHandler.cpp @@ -160,30 +160,26 @@ nsXBLKeyEventHandler::HandleEvent(nsIDOMEvent* aEvent) /////////////////////////////////////////////////////////////////////////////////// -nsresult +already_AddRefed NS_NewXBLEventHandler(nsXBLPrototypeHandler* aHandler, - nsIAtom* aEventType, - nsXBLEventHandler** aResult) + nsIAtom* aEventType) { + nsRefPtr handler; + switch (nsContentUtils::GetEventClassID(nsDependentAtomString(aEventType))) { case eDragEventClass: case eMouseEventClass: case eMouseScrollEventClass: case eWheelEventClass: case eSimpleGestureEventClass: - *aResult = new nsXBLMouseEventHandler(aHandler); + handler = new nsXBLMouseEventHandler(aHandler); break; default: - *aResult = new nsXBLEventHandler(aHandler); + handler = new nsXBLEventHandler(aHandler); break; } - if (!*aResult) - return NS_ERROR_OUT_OF_MEMORY; - - NS_ADDREF(*aResult); - - return NS_OK; + return handler.forget(); } nsresult diff --git a/dom/xbl/nsXBLEventHandler.h b/dom/xbl/nsXBLEventHandler.h index 0ae2ffebc865..7e64e44af583 100644 --- a/dom/xbl/nsXBLEventHandler.h +++ b/dom/xbl/nsXBLEventHandler.h @@ -113,10 +113,9 @@ private: bool mUsingContentXBLScope; }; -nsresult +already_AddRefed NS_NewXBLEventHandler(nsXBLPrototypeHandler* aHandler, - nsIAtom* aEventType, - nsXBLEventHandler** aResult); + nsIAtom* aEventType); nsresult NS_NewXBLKeyEventHandler(nsIAtom* aEventType, uint8_t aPhase, diff --git a/dom/xbl/nsXBLPrototypeHandler.h b/dom/xbl/nsXBLPrototypeHandler.h index d293c237a5c6..c15456818523 100644 --- a/dom/xbl/nsXBLPrototypeHandler.h +++ b/dom/xbl/nsXBLPrototypeHandler.h @@ -132,8 +132,7 @@ public: nsXBLEventHandler* GetEventHandler() { if (!mHandler) { - NS_NewXBLEventHandler(this, mEventName, getter_AddRefs(mHandler)); - // XXX Need to signal out of memory? + mHandler = NS_NewXBLEventHandler(this, mEventName); } return mHandler;