Continuing removal of unneeded virtual destructors (bug 229875). r=dougt, sr=dbaron.

This commit is contained in:
bryner%brianryner.com 2004-01-22 01:01:19 +00:00
parent 063eb3074e
commit a10a5e8383
17 changed files with 38 additions and 36 deletions

View File

@ -56,17 +56,13 @@ nsInt2StrHashtable::nsInt2StrHashtable()
{
}
nsInt2StrHashtable::~nsInt2StrHashtable()
{
}
nsresult
nsInt2StrHashtable::Put(PRUint32 key, const char* aData)
{
char* value = nsCRT::strdup(aData);
if (value == nsnull)
return NS_ERROR_OUT_OF_MEMORY;
nsVoidKey k((void*)key);
nsPRUint32Key k(key);
char* oldValue = (char*)mHashtable.Put(&k, value);
if (oldValue)
nsCRT::free(oldValue);
@ -76,7 +72,7 @@ nsInt2StrHashtable::Put(PRUint32 key, const char* aData)
char*
nsInt2StrHashtable::Get(PRUint32 key)
{
nsVoidKey k((void*)key);
nsPRUint32Key k(key);
const char* value = (const char*)mHashtable.Get(&k);
if (value == nsnull)
return nsnull;
@ -86,7 +82,7 @@ nsInt2StrHashtable::Get(PRUint32 key)
nsresult
nsInt2StrHashtable::Remove(PRUint32 key)
{
nsVoidKey k((void*)key);
nsPRUint32Key k(key);
char* oldValue = (char*)mHashtable.Remove(&k);
if (oldValue)
nsCRT::free(oldValue);

View File

@ -45,7 +45,6 @@ class nsInt2StrHashtable
{
public:
nsInt2StrHashtable();
virtual ~nsInt2StrHashtable();
nsresult Put(PRUint32 key, const char* aData);
char* Get(PRUint32 key);

View File

@ -95,6 +95,10 @@ protected:
mCount(0),
mSimpleCurItem(0),
mStringCurItem(0) { }
// A virtual destructor is needed here because subclasses of
// BaseStringEnumerator do not implement their own Release() method.
virtual ~BaseStringEnumerator()
{
if (mArray)

View File

@ -58,7 +58,6 @@ public:
// nothing else to do;
}
virtual nsresult operator()( const nsIID& aIID, void** aInstancePtr) const;
virtual ~nsCreateInstanceFromCategory() {};
private:
const char *mCategory; // Do not free. This char * is not owned.

View File

@ -413,13 +413,14 @@ public:
NS_DECL_NSIBIDIRECTIONALENUMERATOR
NS_DECL_NSISIMPLEENUMERATOR
virtual ~PLDHashTableEnumeratorImpl();
PLDHashTableEnumeratorImpl(PLDHashTable *table,
EnumeratorConverter converter,
void *converterData);
PRInt32 Count() { return mCount; }
private:
PLDHashTableEnumeratorImpl(); /* no implementation */
~PLDHashTableEnumeratorImpl();
NS_IMETHODIMP ReleaseElements();
nsVoidArray mElements;
@ -513,13 +514,15 @@ PL_NewDHashTableEnumerator(PLDHashTable *table,
if (!impl)
return NS_ERROR_OUT_OF_MEMORY;
NS_ADDREF(impl);
if (impl->Count() == -1) {
// conversion failed
delete impl;
NS_RELEASE(impl);
return NS_ERROR_FAILURE;
}
NS_ADDREF(*retval = impl);
*retval = impl;
return NS_OK;
}

View File

@ -321,7 +321,7 @@ class AutoRegEntry
{
public:
AutoRegEntry(const nsACString& name, PRInt64* modDate);
virtual ~AutoRegEntry();
~AutoRegEntry();
const nsDependentCString GetName()
{ return nsDependentCString(mName, mNameLen); }

View File

@ -56,7 +56,6 @@ class NS_COM nsGetServiceByCID : public nsCOMPtr_helper
}
virtual nsresult operator()( const nsIID&, void** ) const;
virtual ~nsGetServiceByCID() {};
private:
const nsCID& mCID;
@ -91,8 +90,6 @@ class NS_COM nsGetServiceByContractID : public nsCOMPtr_helper
virtual nsresult operator()( const nsIID&, void** ) const;
virtual ~nsGetServiceByContractID() {};
private:
const char* mContractID;
nsCOMPtr<nsIServiceManager> mServiceManager;
@ -128,7 +125,6 @@ class nsGetServiceFromCategory : public nsCOMPtr_helper
}
virtual nsresult operator()( const nsIID&, void** ) const;
virtual ~nsGetServiceFromCategory() {};
protected:
const char* mCategory;
const char* mEntry;

View File

@ -73,7 +73,7 @@ public:
{
MOZ_COUNT_CTOR(nsStaticAtomWrapper);
}
virtual ~nsStaticAtomWrapper() {
~nsStaticAtomWrapper() { // no subclasses -> not virtual
// this is arena allocated and won't be called except in debug
// builds. If this function ever does anything non-debug, be sure
// to get rid of the ifdefs in AtomTableClearEntry!
@ -200,7 +200,7 @@ AtomTableClearEntry(PLDHashTable *table, PLDHashEntryHdr *entry)
// deleted when they are removed from the table at table destruction.
// In other words, they are owned by the atom table.
if (atom->IsPermanent())
delete atom;
delete NS_STATIC_CAST(PermanentAtomImpl*, atom);
}
else {
he->GetStaticAtomWrapper()->~nsStaticAtomWrapper();

View File

@ -49,8 +49,13 @@
class AtomImpl : public nsIAtom {
public:
AtomImpl();
virtual ~AtomImpl();
protected:
// We don't need a virtual destructor here because PermanentAtomImpl
// deletions aren't handled through Release().
~AtomImpl();
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIATOM

View File

@ -59,6 +59,9 @@ class NS_COM nsHashKey {
public:
// Virtual destructor because all hash keys are |delete|d via a
// nsHashKey pointer.
virtual ~nsHashKey(void);
virtual PRUint32 HashCode(void) const = 0;
virtual PRBool Equals(const nsHashKey *aKey) const = 0;
@ -119,7 +122,7 @@ class NS_COM nsHashtable {
public:
nsHashtable(PRUint32 aSize = 16, PRBool threadSafe = PR_FALSE);
virtual ~nsHashtable();
~nsHashtable();
PRInt32 Count(void) { return mHashtable.entryCount; }
PRBool Exists(nsHashKey *aKey);

View File

@ -47,7 +47,7 @@ static const PRUint32 kAutoArraySize = 8;
class NS_COM nsSupportsArray : public nsISupportsArray {
public:
nsSupportsArray(void);
virtual ~nsSupportsArray(void);
~nsSupportsArray(void); // nonvirtual since we're not subclassed
static NS_METHOD
Create(nsISupports *aOuter, REFNSIID aIID, void **aResult);

View File

@ -543,12 +543,8 @@ NS_NewGenericModule2(nsModuleInfo* info, nsIModule* *result)
if (!m)
return NS_ERROR_OUT_OF_MEMORY;
// Increase refcnt and store away nsIModule interface to m in return_cobj
rv = m->QueryInterface(NS_GET_IID(nsIModule), (void**)result);
if (NS_FAILED(rv)) {
delete m;
m = nsnull;
}
// Increase refcnt and store away nsIModule interface to m in result
NS_ADDREF(*result = m);
return rv;
}

View File

@ -85,8 +85,10 @@ public:
nsModuleDestructorProc dtor,
const char** alibDepends);
virtual ~nsGenericModule();
private:
~nsGenericModule();
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIMODULE

View File

@ -49,7 +49,6 @@ class NS_COM nsGetInterface : public nsCOMPtr_helper
}
virtual nsresult operator()( const nsIID&, void** ) const;
virtual ~nsGetInterface() {};
private:
nsCOMPtr<nsISupports> mSource;

View File

@ -56,7 +56,6 @@ class NS_COM nsGetServiceByCID : public nsCOMPtr_helper
}
virtual nsresult operator()( const nsIID&, void** ) const;
virtual ~nsGetServiceByCID() {};
private:
const nsCID& mCID;
@ -91,8 +90,6 @@ class NS_COM nsGetServiceByContractID : public nsCOMPtr_helper
virtual nsresult operator()( const nsIID&, void** ) const;
virtual ~nsGetServiceByContractID() {};
private:
const char* mContractID;
nsCOMPtr<nsIServiceManager> mServiceManager;
@ -128,7 +125,6 @@ class nsGetServiceFromCategory : public nsCOMPtr_helper
}
virtual nsresult operator()( const nsIID&, void** ) const;
virtual ~nsGetServiceFromCategory() {};
protected:
const char* mCategory;
const char* mEntry;

View File

@ -38,10 +38,11 @@ class NS_COM nsSupportsWeakReference : public nsISupportsWeakReference
// nothing else to do here
}
inline virtual ~nsSupportsWeakReference();
NS_DECL_NSISUPPORTSWEAKREFERENCE
protected:
inline ~nsSupportsWeakReference();
private:
friend class nsWeakReference;

View File

@ -483,6 +483,9 @@ class nsAppDirectoryEnumerator : public nsISimpleEnumerator
return *result ? NS_OK : NS_ERROR_FAILURE;
}
// Virtual destructor since subclass nsPathsDirectoryEnumerator
// does not re-implement Release()
virtual ~nsAppDirectoryEnumerator()
{
}