Bug 1288817, part 2 - Remove marking methods from XPCNativeScriptableShared and XPCNativeScriptableFlags. r=billm

Nothing depends on the value of the mark bit now.

MozReview-Commit-ID: 9k06XdtR9KB

--HG--
extra : rebase_source : 57c54960af71c754663575a02c4fc319dd13b505
This commit is contained in:
Andrew McCreight 2016-07-27 16:35:29 -07:00
Родитель 2c83670c32
Коммит 38bb6c7436
1 изменённых файлов: 16 добавлений и 29 удалений

Просмотреть файл

@ -1426,35 +1426,28 @@ class XPCNativeSet final
/***************************************************************************/ /***************************************************************************/
// XPCNativeScriptableFlags is a wrapper class that holds the flags returned // XPCNativeScriptableFlags is a wrapper class that holds the flags returned
// from calls to nsIXPCScriptable::GetScriptableFlags(). It has convenience // from calls to nsIXPCScriptable::GetScriptableFlags(). It has convenience
// methods to check for particular bitflags. Since we also use this class as // methods to check for particular bitflags.
// a member of the gc'd class XPCNativeScriptableShared, this class holds the
// bit and exposes the inlined methods to support marking.
#define XPC_WN_SJSFLAGS_MARK_FLAG JS_BIT(31) // only high bit of 32 is set
class XPCNativeScriptableFlags final class XPCNativeScriptableFlags final
{ {
private:
uint32_t mFlags;
public: public:
explicit XPCNativeScriptableFlags(uint32_t flags = 0) : mFlags(flags) {} explicit XPCNativeScriptableFlags(uint32_t flags = 0) : mFlags(flags) {}
uint32_t GetFlags() const {return mFlags & ~XPC_WN_SJSFLAGS_MARK_FLAG;} uint32_t GetFlags() const { return mFlags; }
void SetFlags(uint32_t flags) { mFlags = flags; } void SetFlags(uint32_t flags) { mFlags = flags; }
operator uint32_t() const { return GetFlags(); } operator uint32_t() const { return GetFlags(); }
XPCNativeScriptableFlags(const XPCNativeScriptableFlags& r) XPCNativeScriptableFlags(const XPCNativeScriptableFlags& r)
{mFlags = r.GetFlags();} {
mFlags = r.GetFlags();
}
XPCNativeScriptableFlags& operator= (const XPCNativeScriptableFlags& r) XPCNativeScriptableFlags& operator= (const XPCNativeScriptableFlags& r)
{mFlags = r.GetFlags(); return *this;} {
mFlags = r.GetFlags();
void Mark() {mFlags |= XPC_WN_SJSFLAGS_MARK_FLAG;} return *this;
void Unmark() {mFlags &= ~XPC_WN_SJSFLAGS_MARK_FLAG;} }
bool IsMarked() const {return 0 != (mFlags & XPC_WN_SJSFLAGS_MARK_FLAG);}
#ifdef GET_IT #ifdef GET_IT
#undef GET_IT #undef GET_IT
@ -1484,6 +1477,9 @@ public:
bool DontReflectInterfaceNames() GET_IT(DONT_REFLECT_INTERFACE_NAMES) bool DontReflectInterfaceNames() GET_IT(DONT_REFLECT_INTERFACE_NAMES)
#undef GET_IT #undef GET_IT
private:
uint32_t mFlags;
}; };
/***************************************************************************/ /***************************************************************************/
@ -1513,10 +1509,6 @@ public:
return name; return name;
} }
void Mark() { mFlags.Mark(); }
void Unmark() { mFlags.Unmark(); }
bool IsMarked() const { return mFlags.IsMarked(); }
private: private:
~XPCNativeScriptableShared(); ~XPCNativeScriptableShared();
@ -1550,12 +1542,7 @@ public:
void void
SetScriptableShared(already_AddRefed<XPCNativeScriptableShared>&& shared) { mShared = shared; } SetScriptableShared(already_AddRefed<XPCNativeScriptableShared>&& shared) { mShared = shared; }
void Mark() void Mark() {}
{
if (mShared)
mShared->Mark();
}
void TraceJS(JSTracer* trc) {} void TraceJS(JSTracer* trc) {}
void AutoTrace(JSTracer* trc) {} void AutoTrace(JSTracer* trc) {}