Bug 1044596 - Fix more bad implicit conversion constructors in the JS engine; r=jorendorff

This commit is contained in:
Ehsan Akhgari 2014-07-27 13:40:52 -04:00
parent 93ec08d11c
commit e78b481c3a
17 changed files with 28 additions and 28 deletions

View File

@ -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); }

View File

@ -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());

View File

@ -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++();

View File

@ -527,7 +527,7 @@ class AsmJSModule
RelativeLink()
{ }
RelativeLink(Kind kind)
explicit RelativeLink(Kind kind)
{
#if defined(JS_CODEGEN_MIPS)
kind_ = kind;

View File

@ -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();

View File

@ -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();

View File

@ -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)
{}

View File

@ -133,7 +133,7 @@ class UniqueScriptOSREntryIter
size_t index_;
public:
UniqueScriptOSREntryIter(const DebugModeOSREntryVector &entries)
explicit UniqueScriptOSREntryIter(const DebugModeOSREntryVector &entries)
: entries_(entries),
index_(0)
{ }

View File

@ -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);
}

View File

@ -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)
{}

View File

@ -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);
}

View File

@ -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);

View File

@ -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;

View File

@ -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();

View File

@ -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

View File

@ -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)
{ }

View File

@ -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);