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,40 +1426,33 @@ class XPCNativeSet final
/***************************************************************************/
// XPCNativeScriptableFlags is a wrapper class that holds the flags returned
// from calls to nsIXPCScriptable::GetScriptableFlags(). It has convenience
// methods to check for particular bitflags. Since we also use this class as
// 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
// methods to check for particular bitflags.
class XPCNativeScriptableFlags final
{
private:
uint32_t mFlags;
public:
explicit XPCNativeScriptableFlags(uint32_t flags = 0) : mFlags(flags) {}
uint32_t GetFlags() const {return mFlags & ~XPC_WN_SJSFLAGS_MARK_FLAG;}
void SetFlags(uint32_t flags) {mFlags = flags;}
uint32_t GetFlags() const { return mFlags; }
void SetFlags(uint32_t flags) { mFlags = flags; }
operator uint32_t() const {return GetFlags();}
operator uint32_t() const { return GetFlags(); }
XPCNativeScriptableFlags(const XPCNativeScriptableFlags& r)
{mFlags = r.GetFlags();}
{
mFlags = r.GetFlags();
}
XPCNativeScriptableFlags& operator= (const XPCNativeScriptableFlags& r)
{mFlags = r.GetFlags(); return *this;}
void Mark() {mFlags |= XPC_WN_SJSFLAGS_MARK_FLAG;}
void Unmark() {mFlags &= ~XPC_WN_SJSFLAGS_MARK_FLAG;}
bool IsMarked() const {return 0 != (mFlags & XPC_WN_SJSFLAGS_MARK_FLAG);}
{
mFlags = r.GetFlags();
return *this;
}
#ifdef GET_IT
#undef GET_IT
#endif
#define GET_IT(f_) const {return 0 != (mFlags & nsIXPCScriptable:: f_ );}
#define GET_IT(f_) const { return 0 != (mFlags & nsIXPCScriptable:: f_ ); }
bool WantPreCreate() GET_IT(WANT_PRECREATE)
bool WantAddProperty() GET_IT(WANT_ADDPROPERTY)
@ -1484,6 +1477,9 @@ public:
bool DontReflectInterfaceNames() GET_IT(DONT_REFLECT_INTERFACE_NAMES)
#undef GET_IT
private:
uint32_t mFlags;
};
/***************************************************************************/
@ -1513,10 +1509,6 @@ public:
return name;
}
void Mark() { mFlags.Mark(); }
void Unmark() { mFlags.Unmark(); }
bool IsMarked() const { return mFlags.IsMarked(); }
private:
~XPCNativeScriptableShared();
@ -1550,12 +1542,7 @@ public:
void
SetScriptableShared(already_AddRefed<XPCNativeScriptableShared>&& shared) { mShared = shared; }
void Mark()
{
if (mShared)
mShared->Mark();
}
void Mark() {}
void TraceJS(JSTracer* trc) {}
void AutoTrace(JSTracer* trc) {}