mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 21:35:39 +00:00
Bug 1044596 - Fix more bad implicit conversion constructors in the JS engine; r=jorendorff
This commit is contained in:
parent
93ec08d11c
commit
e78b481c3a
@ -171,7 +171,7 @@ class Base {
|
||||
// properly typed 'get' member function to access this.
|
||||
void *ptr;
|
||||
|
||||
Base(void *ptr) : ptr(ptr) { }
|
||||
explicit Base(void *ptr) : ptr(ptr) { }
|
||||
|
||||
public:
|
||||
bool operator==(const Base &rhs) const {
|
||||
@ -282,7 +282,7 @@ class Node {
|
||||
}
|
||||
|
||||
// Constructors accepting SpiderMonkey's other generic-pointer-ish types.
|
||||
Node(JS::Value value);
|
||||
explicit Node(JS::Value value);
|
||||
Node(JSGCTraceKind kind, void *ptr);
|
||||
|
||||
// copy construction and copy assignment just use memcpy, since we know
|
||||
@ -433,7 +433,7 @@ class TracerConcrete : public Base {
|
||||
JSCompartment *compartment() const MOZ_OVERRIDE { return nullptr; }
|
||||
|
||||
protected:
|
||||
TracerConcrete(Referent *ptr) : Base(ptr) { }
|
||||
explicit TracerConcrete(Referent *ptr) : Base(ptr) { }
|
||||
Referent &get() const { return *static_cast<Referent *>(ptr); }
|
||||
|
||||
public:
|
||||
@ -476,7 +476,7 @@ class Concrete<void> : public Base {
|
||||
JS::Zone *zone() const MOZ_OVERRIDE;
|
||||
JSCompartment *compartment() const MOZ_OVERRIDE;
|
||||
|
||||
Concrete(void *ptr) : Base(ptr) { }
|
||||
explicit Concrete(void *ptr) : Base(ptr) { }
|
||||
|
||||
public:
|
||||
static void construct(void *storage, void *ptr) { new (storage) Concrete(ptr); }
|
||||
|
@ -189,7 +189,7 @@ struct BreadthFirst {
|
||||
js::Vector<T, 0> head, tail;
|
||||
size_t frontIndex;
|
||||
public:
|
||||
Queue(JSContext *cx) : head(cx), tail(cx), frontIndex(0) { }
|
||||
explicit Queue(JSContext *cx) : head(cx), tail(cx), frontIndex(0) { }
|
||||
bool empty() { return frontIndex >= head.length(); }
|
||||
T &front() {
|
||||
MOZ_ASSERT(!empty());
|
||||
|
@ -140,7 +140,7 @@ class AsmJSProfilingFrameIterator
|
||||
|
||||
public:
|
||||
AsmJSProfilingFrameIterator() : codeRange_(nullptr) {}
|
||||
AsmJSProfilingFrameIterator(const AsmJSActivation &activation);
|
||||
explicit AsmJSProfilingFrameIterator(const AsmJSActivation &activation);
|
||||
AsmJSProfilingFrameIterator(const AsmJSActivation &activation,
|
||||
const JS::ProfilingFrameIterator::RegisterState &state);
|
||||
void operator++();
|
||||
|
@ -527,7 +527,7 @@ class AsmJSModule
|
||||
RelativeLink()
|
||||
{ }
|
||||
|
||||
RelativeLink(Kind kind)
|
||||
explicit RelativeLink(Kind kind)
|
||||
{
|
||||
#if defined(JS_CODEGEN_MIPS)
|
||||
kind_ = kind;
|
||||
|
@ -76,7 +76,7 @@ struct ForkJoinNurseryChunk
|
||||
class ForkJoinGCShared
|
||||
{
|
||||
public:
|
||||
ForkJoinGCShared(ForkJoinShared *shared) : shared_(shared) {}
|
||||
explicit ForkJoinGCShared(ForkJoinShared *shared) : shared_(shared) {}
|
||||
|
||||
JSRuntime *runtime();
|
||||
JS::Zone *zone();
|
||||
|
@ -57,7 +57,7 @@ class ChunkPool
|
||||
|
||||
class Enum {
|
||||
public:
|
||||
Enum(ChunkPool &pool) : pool(pool), chunkp(&pool.emptyChunkListHead) {}
|
||||
explicit Enum(ChunkPool &pool) : pool(pool), chunkp(&pool.emptyChunkListHead) {}
|
||||
bool empty() { return !*chunkp; }
|
||||
Chunk *front();
|
||||
inline void popFront();
|
||||
|
@ -915,7 +915,7 @@ class HeapUsage
|
||||
mozilla::Atomic<size_t, mozilla::ReleaseAcquire> gcBytes_;
|
||||
|
||||
public:
|
||||
HeapUsage(HeapUsage *parent)
|
||||
explicit HeapUsage(HeapUsage *parent)
|
||||
: parent_(parent),
|
||||
gcBytes_(0)
|
||||
{}
|
||||
|
@ -133,7 +133,7 @@ class UniqueScriptOSREntryIter
|
||||
size_t index_;
|
||||
|
||||
public:
|
||||
UniqueScriptOSREntryIter(const DebugModeOSREntryVector &entries)
|
||||
explicit UniqueScriptOSREntryIter(const DebugModeOSREntryVector &entries)
|
||||
: entries_(entries),
|
||||
index_(0)
|
||||
{ }
|
||||
|
@ -3369,7 +3369,7 @@ class LValueToString : public LInstructionHelper<1, BOX_PIECES, 1>
|
||||
public:
|
||||
LIR_HEADER(ValueToString)
|
||||
|
||||
LValueToString(const LDefinition &tempToUnbox)
|
||||
explicit LValueToString(const LDefinition &tempToUnbox)
|
||||
{
|
||||
setTemp(0, tempToUnbox);
|
||||
}
|
||||
|
@ -2025,7 +2025,7 @@ class MTypedObjectProto
|
||||
public SingleObjectPolicy
|
||||
{
|
||||
private:
|
||||
MTypedObjectProto(MDefinition *object)
|
||||
explicit MTypedObjectProto(MDefinition *object)
|
||||
: MUnaryInstruction(object)
|
||||
{
|
||||
setResultType(MIRType_Object);
|
||||
@ -2132,7 +2132,7 @@ class MObjectState : public MVariadicInstruction
|
||||
uint32_t numSlots_;
|
||||
uint32_t numFixedSlots_;
|
||||
|
||||
MObjectState(MDefinition *obj);
|
||||
explicit MObjectState(MDefinition *obj);
|
||||
|
||||
bool init(TempAllocator &alloc, MDefinition *obj);
|
||||
|
||||
@ -2688,7 +2688,7 @@ class MApplyArgs
|
||||
class MBail : public MNullaryInstruction
|
||||
{
|
||||
protected:
|
||||
MBail(BailoutKind kind)
|
||||
explicit MBail(BailoutKind kind)
|
||||
: MNullaryInstruction()
|
||||
{
|
||||
bailoutKind_ = kind;
|
||||
@ -10936,7 +10936,7 @@ class MAsmJSHeapAccess
|
||||
bool skipBoundsCheck_;
|
||||
|
||||
public:
|
||||
MAsmJSHeapAccess(Scalar::Type vt)
|
||||
explicit MAsmJSHeapAccess(Scalar::Type vt)
|
||||
: viewType_(vt), skipBoundsCheck_(false)
|
||||
{}
|
||||
|
||||
|
@ -150,11 +150,11 @@ class TypedObjectPrediction {
|
||||
kind_ = Empty;
|
||||
}
|
||||
|
||||
TypedObjectPrediction(const TypedProto &proto) {
|
||||
explicit TypedObjectPrediction(const TypedProto &proto) {
|
||||
setProto(proto);
|
||||
}
|
||||
|
||||
TypedObjectPrediction(const TypeDescr &descr) {
|
||||
explicit TypedObjectPrediction(const TypeDescr &descr) {
|
||||
setDescr(descr);
|
||||
}
|
||||
|
||||
|
@ -1287,7 +1287,7 @@ class MOZ_STACK_CLASS AutoStableStringChars
|
||||
bool ownsChars_;
|
||||
|
||||
public:
|
||||
AutoStableStringChars(JSContext *cx)
|
||||
explicit AutoStableStringChars(JSContext *cx)
|
||||
: s_(cx), state_(Uninitialized), ownsChars_(false)
|
||||
{};
|
||||
~AutoStableStringChars();
|
||||
@ -1339,7 +1339,7 @@ ErrorReportToString(JSContext *cx, JSErrorReport *reportp);
|
||||
|
||||
struct MOZ_STACK_CLASS JS_FRIEND_API(ErrorReport)
|
||||
{
|
||||
ErrorReport(JSContext *cx);
|
||||
explicit ErrorReport(JSContext *cx);
|
||||
~ErrorReport();
|
||||
|
||||
bool init(JSContext *cx, JS::HandleValue exn);
|
||||
|
@ -1031,7 +1031,7 @@ class js::gc::AutoMaybeStartBackgroundAllocation
|
||||
MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER
|
||||
|
||||
public:
|
||||
AutoMaybeStartBackgroundAllocation(MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM)
|
||||
explicit AutoMaybeStartBackgroundAllocation(MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM)
|
||||
: runtime(nullptr)
|
||||
{
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_INIT;
|
||||
|
@ -432,7 +432,7 @@ class ArenaList {
|
||||
return *this;
|
||||
}
|
||||
|
||||
ArenaList(const SortedArenaListSegment &segment) {
|
||||
explicit ArenaList(const SortedArenaListSegment &segment) {
|
||||
head_ = segment.head;
|
||||
cursorp_ = segment.isEmpty() ? &head_ : segment.tailp;
|
||||
check();
|
||||
|
@ -1281,7 +1281,7 @@ struct JSRuntime : public JS::shadow::Runtime,
|
||||
return liveRuntimesCount > 0;
|
||||
}
|
||||
|
||||
JSRuntime(JSRuntime *parentRuntime);
|
||||
explicit JSRuntime(JSRuntime *parentRuntime);
|
||||
~JSRuntime();
|
||||
|
||||
bool init(uint32_t maxbytes, uint32_t maxNurseryBytes);
|
||||
@ -1683,7 +1683,7 @@ extern const JSSecurityCallbacks NullSecurityCallbacks;
|
||||
class AutoEnterIonCompilation
|
||||
{
|
||||
public:
|
||||
AutoEnterIonCompilation(MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM) {
|
||||
explicit AutoEnterIonCompilation(MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM) {
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_INIT;
|
||||
|
||||
#ifdef DEBUG
|
||||
|
@ -155,7 +155,7 @@ class SavedStacks {
|
||||
class MOZ_STACK_CLASS AutoLocationValueRooter : public JS::CustomAutoRooter
|
||||
{
|
||||
public:
|
||||
AutoLocationValueRooter(JSContext *cx)
|
||||
explicit AutoLocationValueRooter(JSContext *cx)
|
||||
: JS::CustomAutoRooter(cx),
|
||||
value() {}
|
||||
|
||||
@ -208,7 +208,7 @@ class SavedStacks {
|
||||
struct FrameState
|
||||
{
|
||||
FrameState() : principals(nullptr), name(nullptr), location() { }
|
||||
FrameState(const FrameIter &iter);
|
||||
explicit FrameState(const FrameIter &iter);
|
||||
FrameState(const FrameState &fs);
|
||||
|
||||
~FrameState();
|
||||
@ -222,7 +222,7 @@ class SavedStacks {
|
||||
|
||||
class MOZ_STACK_CLASS AutoFrameStateVector : public JS::CustomAutoRooter {
|
||||
public:
|
||||
AutoFrameStateVector(JSContext *cx)
|
||||
explicit AutoFrameStateVector(JSContext *cx)
|
||||
: JS::CustomAutoRooter(cx),
|
||||
frames(cx)
|
||||
{ }
|
||||
|
@ -187,7 +187,7 @@ class SimpleEdgeRange : public EdgeRange {
|
||||
}
|
||||
|
||||
public:
|
||||
SimpleEdgeRange(JSContext *cx) : edges(cx), i(0) { }
|
||||
explicit SimpleEdgeRange(JSContext *cx) : edges(cx), i(0) { }
|
||||
|
||||
bool init(JSContext *cx, void *thing, JSGCTraceKind kind) {
|
||||
SimpleEdgeVectorTracer tracer(cx, &edges);
|
||||
|
Loading…
Reference in New Issue
Block a user