Bug 1328948 - Add is(), as() to Cell.
parent
03415291a3
commit
df5c97aaf6
|
@ -28,6 +28,7 @@
|
||||||
#include "js/HeapAPI.h"
|
#include "js/HeapAPI.h"
|
||||||
#include "js/RootingAPI.h"
|
#include "js/RootingAPI.h"
|
||||||
#include "js/TracingAPI.h"
|
#include "js/TracingAPI.h"
|
||||||
|
#include "js/TraceKind.h"
|
||||||
|
|
||||||
struct JSRuntime;
|
struct JSRuntime;
|
||||||
|
|
||||||
|
@ -272,6 +273,23 @@ struct Cell
|
||||||
|
|
||||||
static MOZ_ALWAYS_INLINE bool needWriteBarrierPre(JS::Zone* zone);
|
static MOZ_ALWAYS_INLINE bool needWriteBarrierPre(JS::Zone* zone);
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
inline bool is() const {
|
||||||
|
return getTraceKind() == JS::MapTypeToTraceKind<T>::kind;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
inline T* as() {
|
||||||
|
MOZ_ASSERT(is<T>());
|
||||||
|
return static_cast<T*>(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
inline const T* as() const {
|
||||||
|
MOZ_ASSERT(is<T>());
|
||||||
|
return static_cast<const T*>(this);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
inline bool isAligned() const;
|
inline bool isAligned() const;
|
||||||
void dump(FILE* fp) const;
|
void dump(FILE* fp) const;
|
||||||
|
|
Loading…
Reference in New Issue