Bug 1487082 - Resolve potential for build bustage regarding bad implicit conversion constructors

* Part 1: make conversion CTORs explicit.
  Minor tweaks to conform with new(ish) static analysis rule which flags up implicit single-argument conversion constructors.
* Part 2: fix a couple of double-mRefCnt declaration errors.
* Part 3: Fix unsafe use of NS_ConvertASCIItoUTF16().

Tag #1273
This commit is contained in:
Matt A. Tobin 2019-11-10 19:11:03 -05:00 • committed by Roy Tam
commit eaac1c967d
57 changed files with 71 additions and 69 deletions

View file

@ -284,7 +284,7 @@ public:
public: // empty construction does nothing
morkWeeBookAtom() { }
morkWeeBookAtom(mork_aid inAid);
explicit morkWeeBookAtom(mork_aid inAid);
void InitWeeBookAtom(morkEnv* ev, const morkBuf& inBuf,
morkAtomSpace* ioSpace, mork_aid inAid);

View file

@ -62,7 +62,7 @@ public: // morkNode virtual methods
virtual ~morkBead(); // assert that CloseBead() executed earlier
public: // special case for stack construction for map usage:
morkBead(mork_color inBeadColor); // stack-based bead instance
explicit morkBead(mork_color inBeadColor); // stack-based bead instance
protected: // special case for morkObject:
morkBead(const morkUsage& inUsage, nsIMdbHeap* ioHeap,

View file

@ -41,9 +41,9 @@ public:
morkNext* mNext_Link;
public:
morkNext(int inZero) : mNext_Link( 0 ) { }
explicit morkNext(int inZero) : mNext_Link( 0 ) { }
morkNext(morkNext* ioLink) : mNext_Link( ioLink ) { }
explicit morkNext(morkNext* ioLink) : mNext_Link( ioLink ) { }
morkNext(); // mNext_Link( 0 ), { }
@ -118,7 +118,7 @@ public:
morkLink* mLink_Prev;
public:
morkLink(int inZero) : mLink_Next( 0 ), mLink_Prev( 0 ) { }
explicit morkLink(int inZero) : mLink_Next( 0 ), mLink_Prev( 0 ) { }
morkLink(); // mLink_Next( 0 ), mLink_Prev( 0 ) { }

View file

@ -160,7 +160,7 @@ public: // morkFactory virtual methods
public: // morkYarn construction & destruction
morkFactory(); // uses orkinHeap
morkFactory(nsIMdbHeap* ioHeap); // caller supplied heap
explicit morkFactory(nsIMdbHeap* ioHeap); // caller supplied heap
morkFactory(morkEnv* ev, const morkUsage& inUsage, nsIMdbHeap* ioHeap);
void CloseFactory(morkEnv* ev); // called by CloseMorkNode();

View file

@ -56,7 +56,7 @@ public:
mork_usage mUsage_Code; // kHeap, kStack, kMember, or kGhost
public:
morkUsage(mork_usage inCode);
explicit morkUsage(mork_usage inCode);
morkUsage(); // does nothing except maybe call EnsureReadyStaticUsage()
void InitUsage( mork_usage inCode)
@ -163,7 +163,7 @@ public: // morkNode memory management operators
protected: // construction without an anv needed for first env constructed:
morkNode(const morkUsage& inUsage, nsIMdbHeap* ioHeap);
morkNode(mork_usage inCode); // usage == inCode, heap == nil
explicit morkNode(mork_usage inCode); // usage == inCode, heap == nil
// { ===== begin basic node interface =====
public: // morkNode virtual methods

View file

@ -119,7 +119,7 @@ morkParser::morkParser(morkEnv* ev,
, mParser_ColumnSpool(ev, &mParser_ColumnCoil)
, mParser_StringSpool(ev, &mParser_StringCoil)
, mParser_MidYarn(ev, morkUsage_kMember, ioSlotHeap)
, mParser_MidYarn(ev, morkUsage(morkUsage_kMember), ioSlotHeap)
{
if ( inBytesPerParseSegment < morkParser_kMinGranularity )
inBytesPerParseSegment = morkParser_kMinGranularity;

View file

@ -95,7 +95,7 @@ public: // flags bit twiddling
public: // other row methods
morkRow( ) { }
morkRow(const mdbOid* inOid) :mRow_Oid(*inOid) { }
explicit morkRow(const mdbOid* inOid) :mRow_Oid(*inOid) { }
void InitRow(morkEnv* ev, const mdbOid* inOid, morkRowSpace* ioSpace,
mork_size inLength, morkPool* ioPool);
// if inLength is nonzero, cells will be allocated from ioPool