Bug 958643, part 5 - Eliminate XPCJSObjectHolder. r=krizsa draft
authorAndrew McCreight <continuation@gmail.com>
Wed, 20 Sep 2017 10:26:16 -0700
changeset 667833 f8bc5fd9c18e272abf6ad93409768721b898dbc5
parent 667832 4980b300ccd4d1eedadc58f900c71a7ebe31dc32
child 667834 f5e56b8b2de3b804ea9446acf476f4cd0558e349
push id80866
push userbmo:continuation@gmail.com
push dateWed, 20 Sep 2017 20:39:49 +0000
reviewerskrizsa
bugs958643
milestone57.0a1
Bug 958643, part 5 - Eliminate XPCJSObjectHolder. r=krizsa It is now unused. MozReview-Commit-ID: AzXW6qHdSOW
js/xpconnect/src/XPCForwards.h
js/xpconnect/src/XPCWrappedNative.cpp
js/xpconnect/src/xpcprivate.h
--- a/js/xpconnect/src/XPCForwards.h
+++ b/js/xpconnect/src/XPCForwards.h
@@ -26,17 +26,16 @@ class XPCNativeMember;
 class XPCNativeInterface;
 class XPCNativeSet;
 
 class XPCWrappedNative;
 class XPCWrappedNativeProto;
 class XPCWrappedNativeTearOff;
 
 class XPCTraceableVariant;
-class XPCJSObjectHolder;
 
 class JSObject2WrappedJSMap;
 class Native2WrappedNativeMap;
 class IID2WrappedJSClassMap;
 class IID2NativeInterfaceMap;
 class ClassInfo2NativeSetMap;
 class ClassInfo2WrappedNativeProtoMap;
 class NativeSetMap;
--- a/js/xpconnect/src/XPCWrappedNative.cpp
+++ b/js/xpconnect/src/XPCWrappedNative.cpp
@@ -2223,23 +2223,8 @@ static void DEBUG_CheckClassInfoClaims(X
 
         if (className)
             free(className);
         if (contractID)
             free(contractID);
     }
 }
 #endif
-
-NS_IMPL_ISUPPORTS(XPCJSObjectHolder, nsIXPConnectJSObjectHolder)
-
-JSObject*
-XPCJSObjectHolder::GetJSObject()
-{
-    NS_PRECONDITION(mJSObj, "bad object state");
-    return mJSObj;
-}
-
-XPCJSObjectHolder::XPCJSObjectHolder(JSContext* cx, JSObject* obj)
-  : mJSObj(cx, obj)
-{
-    MOZ_ASSERT(obj);
-}
--- a/js/xpconnect/src/xpcprivate.h
+++ b/js/xpconnect/src/xpcprivate.h
@@ -2029,36 +2029,16 @@ private:
 
     JS::Heap<JSObject*> mJSObj;
     RefPtr<nsXPCWrappedJSClass> mClass;
     nsXPCWrappedJS* mRoot;    // If mRoot != this, it is an owning pointer.
     nsXPCWrappedJS* mNext;
     nsCOMPtr<nsISupports> mOuter;    // only set in root
 };
 
-/***************************************************************************/
-
-class XPCJSObjectHolder final : public nsIXPConnectJSObjectHolder
-{
-public:
-    // all the interface method declarations...
-    NS_DECL_ISUPPORTS
-    NS_DECL_NSIXPCONNECTJSOBJECTHOLDER
-
-    // non-interface implementation
-
-public:
-    XPCJSObjectHolder(JSContext* cx, JSObject* obj);
-
-private:
-    virtual ~XPCJSObjectHolder() {}
-    XPCJSObjectHolder() = delete;
-
-    JS::PersistentRooted<JSObject*> mJSObj;
-};
 
 /***************************************************************************
 ****************************************************************************
 *
 * All manner of utility classes follow...
 *
 ****************************************************************************
 ***************************************************************************/