Fix bustage from bug 900988, a=bustage-fix, CLOSED TREE for SeaMonkey.
authorJoshua Cranmer <Pidgeot18@gmail.com>
Sun, 27 Apr 2014 22:30:23 -0500
changeset 19948 a027d3e971ca6506dd2e0b82ed8839bbbcd5be79
parent 19947 7f010544c325d5102da792dcf38ee7b73a6a1676
child 19949 f5b5722c7fe108d779c374f08d2360e61b7787de
push id1151
push usermbanner@mozilla.com
push dateMon, 09 Jun 2014 22:14:36 +0000
treeherdercomm-beta@ce127428ad7d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbustage-fix, CLOSED
bugs900988
Fix bustage from bug 900988, a=bustage-fix, CLOSED TREE for SeaMonkey.
calendar/base/backend/libical/calDateTime.cpp
calendar/base/backend/libical/calDuration.cpp
calendar/base/backend/libical/calICSService.cpp
calendar/base/backend/libical/calPeriod.cpp
calendar/base/backend/libical/calRecurrenceRule.cpp
calendar/base/backend/libical/calTimezone.cpp
db/mork/build/nsMorkFactory.cpp
db/mork/src/morkCellObject.cpp
db/mork/src/morkCursor.cpp
db/mork/src/morkEnv.cpp
db/mork/src/morkFactory.cpp
db/mork/src/morkFile.cpp
db/mork/src/morkObject.cpp
db/mork/src/morkPortTableCursor.cpp
db/mork/src/morkRowCellCursor.cpp
db/mork/src/morkRowObject.cpp
db/mork/src/morkStore.cpp
db/mork/src/morkTable.cpp
db/mork/src/morkTableRowCursor.cpp
db/mork/src/morkThumb.cpp
im/components/mintrayr/trayToolkit.cpp
ldap/xpcom/src/nsLDAPBERElement.cpp
ldap/xpcom/src/nsLDAPBERValue.cpp
ldap/xpcom/src/nsLDAPConnection.cpp
ldap/xpcom/src/nsLDAPControl.cpp
ldap/xpcom/src/nsLDAPMessage.cpp
ldap/xpcom/src/nsLDAPModification.cpp
ldap/xpcom/src/nsLDAPOperation.cpp
ldap/xpcom/src/nsLDAPServer.cpp
ldap/xpcom/src/nsLDAPService.cpp
ldap/xpcom/src/nsLDAPSyncQuery.cpp
ldap/xpcom/src/nsLDAPURL.cpp
mail/components/migration/src/nsEudoraProfileMigrator.cpp
mail/components/migration/src/nsNetscapeProfileMigratorBase.cpp
mail/components/migration/src/nsOEProfileMigrator.cpp
mail/components/migration/src/nsOutlookProfileMigrator.cpp
mail/components/migration/src/nsProfileMigrator.cpp
mail/components/migration/src/nsSeamonkeyProfileMigrator.cpp
mail/components/search/nsMailWinSearchHelper.cpp
mail/components/shell/DirectoryProvider.cpp
mail/components/shell/nsMailGNOMEIntegration.cpp
mail/components/shell/nsMailMacIntegration.cpp
mail/components/shell/nsMailWinIntegration.cpp
mailnews/addrbook/src/nsAbAddressCollector.cpp
mailnews/addrbook/src/nsAbBooleanExpression.cpp
mailnews/addrbook/src/nsAbCardProperty.cpp
mailnews/addrbook/src/nsAbContentHandler.cpp
mailnews/addrbook/src/nsAbDirFactoryService.cpp
mailnews/addrbook/src/nsAbDirProperty.cpp
mailnews/addrbook/src/nsAbDirectoryQuery.cpp
mailnews/addrbook/src/nsAbDirectoryQueryProxy.cpp
mailnews/addrbook/src/nsAbLDAPCard.cpp
mailnews/addrbook/src/nsAbLDAPChangeLogQuery.cpp
mailnews/addrbook/src/nsAbLDAPDirFactory.cpp
mailnews/addrbook/src/nsAbLDAPDirectory.cpp
mailnews/addrbook/src/nsAbLDAPDirectoryModify.cpp
mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp
mailnews/addrbook/src/nsAbLDAPReplicationData.cpp
mailnews/addrbook/src/nsAbLDAPReplicationQuery.cpp
mailnews/addrbook/src/nsAbLDAPReplicationService.cpp
mailnews/addrbook/src/nsAbLDIFService.cpp
mailnews/addrbook/src/nsAbMDBDirFactory.cpp
mailnews/addrbook/src/nsAbMDBDirProperty.cpp
mailnews/addrbook/src/nsAbMDBDirectory.cpp
mailnews/addrbook/src/nsAbManager.cpp
mailnews/addrbook/src/nsAbOSXCard.mm
mailnews/addrbook/src/nsAbOSXDirFactory.cpp
mailnews/addrbook/src/nsAbOSXDirectory.mm
mailnews/addrbook/src/nsAbOutlookDirFactory.cpp
mailnews/addrbook/src/nsAbOutlookDirectory.cpp
mailnews/addrbook/src/nsAbView.cpp
mailnews/addrbook/src/nsAddbookProtocolHandler.cpp
mailnews/addrbook/src/nsAddbookUrl.cpp
mailnews/addrbook/src/nsAddrDatabase.cpp
mailnews/addrbook/src/nsDirPrefs.cpp
mailnews/addrbook/src/nsMsgVCardService.cpp
mailnews/base/search/src/nsMsgFilter.cpp
mailnews/base/search/src/nsMsgFilterList.cpp
mailnews/base/search/src/nsMsgFilterService.cpp
mailnews/base/search/src/nsMsgLocalSearch.cpp
mailnews/base/search/src/nsMsgSearchAdapter.cpp
mailnews/base/search/src/nsMsgSearchSession.cpp
mailnews/base/search/src/nsMsgSearchTerm.cpp
mailnews/base/search/src/nsMsgSearchValue.cpp
mailnews/base/src/MailNewsDLF.cpp
mailnews/base/src/nsCidProtocolHandler.cpp
mailnews/base/src/nsCopyMessageStreamListener.cpp
mailnews/base/src/nsMailDirProvider.cpp
mailnews/base/src/nsMessenger.cpp
mailnews/base/src/nsMessengerBootstrap.cpp
mailnews/base/src/nsMessengerContentHandler.cpp
mailnews/base/src/nsMessengerUnixIntegration.cpp
mailnews/base/src/nsMsgAccount.cpp
mailnews/base/src/nsMsgAccountManager.cpp
mailnews/base/src/nsMsgBiffManager.cpp
mailnews/base/src/nsMsgContentPolicy.cpp
mailnews/base/src/nsMsgCopyService.cpp
mailnews/base/src/nsMsgDBView.cpp
mailnews/base/src/nsMsgFolderCache.cpp
mailnews/base/src/nsMsgFolderCacheElement.cpp
mailnews/base/src/nsMsgFolderCompactor.cpp
mailnews/base/src/nsMsgFolderDataSource.cpp
mailnews/base/src/nsMsgFolderNotificationService.cpp
mailnews/base/src/nsMsgGroupThread.cpp
mailnews/base/src/nsMsgMailSession.cpp
mailnews/base/src/nsMsgOfflineManager.cpp
mailnews/base/src/nsMsgPrintEngine.cpp
mailnews/base/src/nsMsgProgress.cpp
mailnews/base/src/nsMsgPurgeService.cpp
mailnews/base/src/nsMsgQuickSearchDBView.cpp
mailnews/base/src/nsMsgSearchDBView.cpp
mailnews/base/src/nsMsgServiceProvider.cpp
mailnews/base/src/nsMsgStatusFeedback.cpp
mailnews/base/src/nsMsgTagService.cpp
mailnews/base/src/nsMsgWindow.cpp
mailnews/base/src/nsMsgXFViewThread.cpp
mailnews/base/src/nsSpamSettings.cpp
mailnews/base/src/nsStatusBarBiffManager.cpp
mailnews/base/src/nsSubscribableServer.cpp
mailnews/base/src/nsSubscribeDataSource.cpp
mailnews/base/util/Services.cpp
mailnews/base/util/nsImapMoveCoalescer.cpp
mailnews/base/util/nsMsgCompressIStream.cpp
mailnews/base/util/nsMsgCompressOStream.cpp
mailnews/base/util/nsMsgDBFolder.cpp
mailnews/base/util/nsMsgFileStream.cpp
mailnews/base/util/nsMsgIdentity.cpp
mailnews/base/util/nsMsgIncomingServer.cpp
mailnews/base/util/nsMsgKeyArray.cpp
mailnews/base/util/nsMsgMailNewsUrl.cpp
mailnews/base/util/nsMsgProtocol.cpp
mailnews/base/util/nsMsgTxn.cpp
mailnews/base/util/nsMsgUtils.cpp
mailnews/base/util/nsStopwatch.cpp
mailnews/compose/src/nsMsgAttachment.cpp
mailnews/compose/src/nsMsgCompFields.cpp
mailnews/compose/src/nsMsgCompUtils.cpp
mailnews/compose/src/nsMsgCompose.cpp
mailnews/compose/src/nsMsgComposeContentHandler.cpp
mailnews/compose/src/nsMsgComposeParams.cpp
mailnews/compose/src/nsMsgComposeProgressParams.cpp
mailnews/compose/src/nsMsgComposeService.cpp
mailnews/compose/src/nsMsgCopy.cpp
mailnews/compose/src/nsMsgQuote.cpp
mailnews/compose/src/nsMsgSend.cpp
mailnews/compose/src/nsMsgSendLater.cpp
mailnews/compose/src/nsMsgSendReport.cpp
mailnews/compose/src/nsSmtpService.cpp
mailnews/compose/src/nsSmtpUrl.cpp
mailnews/compose/src/nsURLFetcher.cpp
mailnews/db/msgdb/src/nsDBFolderInfo.cpp
mailnews/db/msgdb/src/nsMailDatabase.cpp
mailnews/db/msgdb/src/nsMsgDatabase.cpp
mailnews/db/msgdb/src/nsMsgHdr.cpp
mailnews/db/msgdb/src/nsMsgOfflineImapOperation.cpp
mailnews/db/msgdb/src/nsMsgThread.cpp
mailnews/extensions/bayesian-spam-filter/src/nsBayesianFilter.cpp
mailnews/extensions/fts3/src/nsFts3Tokenizer.cpp
mailnews/extensions/fts3/src/nsGlodaRankerFunction.cpp
mailnews/extensions/mailviews/src/nsMsgMailViewList.cpp
mailnews/extensions/mdn/src/nsMsgMdnGenerator.cpp
mailnews/extensions/smime/src/nsEncryptedSMIMEURIsService.cpp
mailnews/extensions/smime/src/nsMsgComposeSecure.cpp
mailnews/extensions/smime/src/nsSMimeJSHelper.cpp
mailnews/imap/src/nsAutoSyncManager.cpp
mailnews/imap/src/nsAutoSyncState.cpp
mailnews/imap/src/nsIMAPHostSessionList.cpp
mailnews/imap/src/nsImapFlagAndUidState.cpp
mailnews/imap/src/nsImapMailFolder.cpp
mailnews/imap/src/nsImapOfflineSync.cpp
mailnews/imap/src/nsImapProtocol.cpp
mailnews/imap/src/nsImapService.cpp
mailnews/imap/src/nsImapUndoTxn.cpp
mailnews/imap/src/nsImapUtils.cpp
mailnews/imap/src/nsSyncRunnableHelpers.cpp
mailnews/import/applemail/src/nsAppleMailImport.cpp
mailnews/import/eudora/src/nsEudoraCompose.cpp
mailnews/import/eudora/src/nsEudoraFilters.cpp
mailnews/import/eudora/src/nsEudoraImport.cpp
mailnews/import/eudora/src/nsEudoraSettings.cpp
mailnews/import/oexpress/nsOEImport.cpp
mailnews/import/oexpress/nsOESettings.cpp
mailnews/import/outlook/src/nsOutlookCompose.cpp
mailnews/import/outlook/src/nsOutlookImport.cpp
mailnews/import/outlook/src/nsOutlookSettings.cpp
mailnews/import/src/nsImportABDescriptor.cpp
mailnews/import/src/nsImportAddressBooks.cpp
mailnews/import/src/nsImportEmbeddedImageData.cpp
mailnews/import/src/nsImportFieldMap.cpp
mailnews/import/src/nsImportMail.cpp
mailnews/import/src/nsImportMailboxDescriptor.cpp
mailnews/import/src/nsImportMimeEncode.cpp
mailnews/import/src/nsImportService.cpp
mailnews/import/text/src/nsTextImport.cpp
mailnews/import/vcard/src/nsVCardImport.cpp
mailnews/import/winlivemail/nsWMImport.cpp
mailnews/import/winlivemail/nsWMSettings.cpp
mailnews/local/src/nsLocalMailFolder.cpp
mailnews/local/src/nsLocalUndoTxn.cpp
mailnews/local/src/nsMailboxService.cpp
mailnews/local/src/nsMovemailIncomingServer.cpp
mailnews/local/src/nsMovemailService.cpp
mailnews/local/src/nsMsgBrkMBoxStore.cpp
mailnews/local/src/nsMsgMaildirStore.cpp
mailnews/local/src/nsNoIncomingServer.cpp
mailnews/local/src/nsNoneService.cpp
mailnews/local/src/nsParseMailbox.cpp
mailnews/local/src/nsPop3IncomingServer.cpp
mailnews/local/src/nsPop3Service.cpp
mailnews/local/src/nsPop3Sink.cpp
mailnews/local/src/nsPop3URL.cpp
mailnews/local/src/nsRssIncomingServer.cpp
mailnews/local/src/nsRssService.cpp
mailnews/mapi/mapihook/src/msgMapiHook.cpp
mailnews/mapi/mapihook/src/msgMapiSupport.cpp
mailnews/mime/cthandlers/glue/nsMimeContentTypeHandler.cpp
mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.cpp
mailnews/mime/emitters/nsMimeBaseEmitter.cpp
mailnews/mime/emitters/nsMimeHtmlEmitter.cpp
mailnews/mime/src/mimecms.cpp
mailnews/mime/src/nsMimeConverter.cpp
mailnews/mime/src/nsMimeObjectClassAccess.cpp
mailnews/mime/src/nsMsgHeaderParser.cpp
mailnews/mime/src/nsSimpleMimeConverterStub.cpp
mailnews/mime/src/nsStreamConverter.cpp
mailnews/news/src/nsNNTPArticleList.cpp
mailnews/news/src/nsNNTPNewsgroupList.cpp
mailnews/news/src/nsNNTPNewsgroupPost.cpp
mailnews/news/src/nsNNTPProtocol.cpp
mailnews/news/src/nsNewsDownloadDialogArgs.cpp
mailnews/news/src/nsNewsDownloader.cpp
mailnews/news/src/nsNewsFolder.cpp
mailnews/news/src/nsNntpMockChannel.cpp
mailnews/news/src/nsNntpService.cpp
suite/feeds/src/nsFeedSniffer.cpp
suite/profile/migration/src/nsNetscapeProfileMigratorBase.cpp
suite/profile/migration/src/nsThunderbirdProfileMigrator.cpp
suite/profile/nsSuiteDirectoryProvider.cpp
suite/shell/src/nsGNOMEShellService.cpp
suite/shell/src/nsMacShellService.cpp
suite/shell/src/nsWindowsShellService.cpp
--- a/calendar/base/backend/libical/calDateTime.cpp
+++ b/calendar/base/backend/libical/calDateTime.cpp
@@ -20,17 +20,17 @@ extern "C" {
 #include "ical.h"
 }
 
 #define CAL_ATTR_SET_PRE NS_ENSURE_FALSE(mImmutable, NS_ERROR_OBJECT_IS_IMMUTABLE)
 #define CAL_ATTR_SET_POST Normalize()
 #include "calAttributeHelpers.h"
 
 NS_IMPL_CLASSINFO(calDateTime, NULL, 0, CAL_DATETIME_CID)
-NS_IMPL_ISUPPORTS1_CI(calDateTime, calIDateTime)
+NS_IMPL_ISUPPORTS_CI(calDateTime, calIDateTime)
 
 calDateTime::calDateTime()
     : mImmutable(false)
 {
     Reset();
 }
 
 calDateTime::calDateTime(icaltimetype const* atimeptr, calITimezone *tz)
--- a/calendar/base/backend/libical/calDuration.cpp
+++ b/calendar/base/backend/libical/calDuration.cpp
@@ -14,17 +14,17 @@
 #include "calUtils.h"
 
 #define SECONDS_PER_WEEK   604800
 #define SECONDS_PER_DAY     86400
 #define SECONDS_PER_HOUR     3600
 #define SECONDS_PER_MINUTE     60
 
 NS_IMPL_CLASSINFO(calDuration, NULL, 0, CAL_DURATION_CID)
-NS_IMPL_ISUPPORTS1_CI(calDuration, calIDuration)
+NS_IMPL_ISUPPORTS_CI(calDuration, calIDuration)
 
 calDuration::calDuration()
     : mImmutable(false)
 {
     Reset();
 }
 
 calDuration::calDuration(const calDuration& cdt)
--- a/calendar/base/backend/libical/calICSService.cpp
+++ b/calendar/base/backend/libical/calICSService.cpp
@@ -18,17 +18,17 @@ extern "C" {
 calIcalProperty::~calIcalProperty()
 {
     if (!mParent) {
         icalproperty_free(mProperty);
     }
 }
 
 NS_IMPL_CLASSINFO(calIcalProperty, NULL, 0, CAL_ICALPROPERTY_CID)
-NS_IMPL_ISUPPORTS1_CI(calIcalProperty, calIIcalProperty)
+NS_IMPL_ISUPPORTS_CI(calIcalProperty, calIIcalProperty)
 
 NS_IMETHODIMP_(icalproperty *)
 calIcalProperty::GetLibicalProperty()
 {
     return mProperty;
 }
 
 NS_IMETHODIMP_(icalcomponent *)
@@ -848,18 +848,18 @@ calIcalComponent::Get##Attrname(calIDura
     *dtp = new calDuration(&idt);                                       \
     CAL_ENSURE_MEMORY(*dtp);                                            \
     NS_ADDREF(*dtp);                                                    \
     return NS_OK;                                                       \
 }
 
 
 NS_IMPL_CLASSINFO(calIcalComponent, NULL, nsIClassInfo::THREADSAFE, CAL_ICALCOMPONENT_CID)
-NS_IMPL_ISUPPORTS2(calIcalComponent, calIIcalComponent, nsIClassInfo)
-NS_IMPL_CI_INTERFACE_GETTER1(calIcalComponent, calIIcalComponent)
+NS_IMPL_ISUPPORTS(calIcalComponent, calIIcalComponent, nsIClassInfo)
+NS_IMPL_CI_INTERFACE_GETTER(calIcalComponent, calIIcalComponent)
 NS_IMPL_THREADSAFE_CI(calIcalComponent)
 
 NS_IMETHODIMP_(icalcomponent *)
 calIcalComponent::GetLibicalComponent()
 {
     return mComponent;
 }
 
@@ -1233,18 +1233,18 @@ calIcalComponent::AddProperty(calIIcalPr
 //     // XXX like AddSubcomponent, this is questionable
 //     calIcalProperty *ical = static_cast<calIcalProperty *>(prop);
 //     icalcomponent_remove_property(mComponent, ical->mProperty);
 //     ical->mParent = nullptr;
 //     return NS_OK;
 // }
 
 NS_IMPL_CLASSINFO(calICSService, NULL, nsIClassInfo::THREADSAFE, CAL_ICSSERVICE_CID)
-NS_IMPL_ISUPPORTS2(calICSService, calIICSService, nsIClassInfo)
-NS_IMPL_CI_INTERFACE_GETTER1(calICSService, calIICSService)
+NS_IMPL_ISUPPORTS(calICSService, calIICSService, nsIClassInfo)
+NS_IMPL_CI_INTERFACE_GETTER(calICSService, calIICSService)
 NS_IMPL_THREADSAFE_CI(calICSService)
 
 calICSService::calICSService()
 {
 }
 
 NS_IMETHODIMP
 calICSService::ParseICS(const nsACString& serialized,
--- a/calendar/base/backend/libical/calPeriod.cpp
+++ b/calendar/base/backend/libical/calPeriod.cpp
@@ -6,17 +6,17 @@
 #include "calPeriod.h"
 #include "calBaseCID.h"
 
 #include "nsIClassInfoImpl.h"
 
 #include "calUtils.h"
 
 NS_IMPL_CLASSINFO(calPeriod, NULL, 0, CAL_PERIOD_CID)
-NS_IMPL_ISUPPORTS1_CI(calPeriod, calIPeriod)
+NS_IMPL_ISUPPORTS_CI(calPeriod, calIPeriod)
 
 calPeriod::calPeriod()
     : mImmutable(false)
 {
 }
 
 calPeriod::calPeriod(const calPeriod& cpt)
     : mImmutable(false)
--- a/calendar/base/backend/libical/calRecurrenceRule.cpp
+++ b/calendar/base/backend/libical/calRecurrenceRule.cpp
@@ -12,17 +12,17 @@
 
 #include "calICSService.h"
 
 #include "nsIClassInfoImpl.h"
 
 #include <climits>
 
 NS_IMPL_CLASSINFO(calRecurrenceRule, NULL, 0, CAL_RECURRENCERULE_CID)
-NS_IMPL_ISUPPORTS2_CI(calRecurrenceRule, calIRecurrenceItem, calIRecurrenceRule)
+NS_IMPL_ISUPPORTS_CI(calRecurrenceRule, calIRecurrenceItem, calIRecurrenceRule)
 
 calRecurrenceRule::calRecurrenceRule()
     : mImmutable(false),
       mIsNegative(false),
       mIsByCount(false)
 {
     icalrecurrencetype_clear(&mIcalRecur);
 }
--- a/calendar/base/backend/libical/calTimezone.cpp
+++ b/calendar/base/backend/libical/calTimezone.cpp
@@ -1,16 +1,16 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #include "calTimezone.h"
 #include "calUtils.h"
 #include "calAttributeHelpers.h"
 
-NS_IMPL_ISUPPORTS1(calTimezone, calITimezone)
+NS_IMPL_ISUPPORTS(calTimezone, calITimezone)
 
 CAL_ISUPPORTS_ATTR_GETTER(calTimezone, calIIcalComponent, IcalComponent)
 CAL_STRINGTYPE_ATTR_GETTER(calTimezone, nsACString, Tzid)
 
 NS_IMETHODIMP
 calTimezone::GetIsFloating(bool * _retval) {
     NS_ENSURE_ARG_POINTER(_retval);
     *_retval = false;
--- a/db/mork/build/nsMorkFactory.cpp
+++ b/db/mork/build/nsMorkFactory.cpp
@@ -39,17 +39,17 @@ const mozilla::Module::ContractIDEntry k
 static const mozilla::Module kMorkModule = {
   mozilla::Module::kVersion,
   kMorkCIDs,
   kMorkContracts
 };
 
 NSMODULE_DEFN(nsMorkModule) = &kMorkModule;
 
-NS_IMPL_ISUPPORTS1(nsMorkFactoryService, nsIMdbFactoryService)
+NS_IMPL_ISUPPORTS(nsMorkFactoryService, nsIMdbFactoryService)
 
 NS_IMETHODIMP nsMorkFactoryService::GetMdbFactory(nsIMdbFactory **aFactory)
 {
   if (!mMdbFactory)
     mMdbFactory = MakeMdbFactory();
   NS_IF_ADDREF(*aFactory = mMdbFactory);
   return *aFactory ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
 }
--- a/db/mork/src/morkCellObject.cpp
+++ b/db/mork/src/morkCellObject.cpp
@@ -106,17 +106,17 @@ morkCellObject::morkCellObject(morkEnv* 
       else
         ioRow->NonRowTypeError(ev);
     }
     else
       ev->NilPointerError();
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkCellObject, morkObject, nsIMdbCell)
+NS_IMPL_ISUPPORTS_INHERITED(morkCellObject, morkObject, nsIMdbCell)
 
 /*public non-poly*/ void
 morkCellObject::CloseCellObject(morkEnv* ev) // called by CloseMorkNode();
 {
   if ( this )
   {
     if ( this->IsNode() )
     {
--- a/db/mork/src/morkCursor.cpp
+++ b/db/mork/src/morkCursor.cpp
@@ -55,17 +55,17 @@ morkCursor::morkCursor(morkEnv* ev,
 , mCursor_Seed( 0 )
 , mCursor_Pos( -1 )
 , mCursor_DoFailOnSeedOutOfSync( morkBool_kFalse )
 {
   if ( ev->Good() )
     mNode_Derived = morkDerived_kCursor;
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkCursor, morkObject, nsIMdbCursor)
+NS_IMPL_ISUPPORTS_INHERITED(morkCursor, morkObject, nsIMdbCursor)
 
 /*public non-poly*/ void
 morkCursor::CloseCursor(morkEnv* ev) // called by CloseMorkNode();
 {
   if ( this )
   {
     if ( this->IsNode() )
     {
--- a/db/mork/src/morkEnv.cpp
+++ b/db/mork/src/morkEnv.cpp
@@ -154,17 +154,17 @@ morkEnv::morkEnv(morkEnv* ev, /*i*/
       mNode_Derived = morkDerived_kEnv;
       mNode_Refs += morkEnv_kWeakRefCountEnvBonus;
     }
   }
   else
     ev->NilPointerError();
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkEnv, morkObject, nsIMdbEnv)
+NS_IMPL_ISUPPORTS_INHERITED(morkEnv, morkObject, nsIMdbEnv)
 /*public non-poly*/ void
 morkEnv::CloseEnv(morkEnv* ev) /*i*/ // called by CloseMorkNode();
 {
   if ( this )
   {
     if ( this->IsNode() )
     {
       // $$$ release mEnv_SelfAsMdbEnv??
--- a/db/mork/src/morkFactory.cpp
+++ b/db/mork/src/morkFactory.cpp
@@ -106,17 +106,17 @@ morkFactory::morkFactory(morkEnv* ev, /*
 {
   if ( ev->Good() )
   {
     mNode_Derived = morkDerived_kFactory;
     mNode_Refs += morkFactory_kWeakRefCountBonus;
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkFactory, morkObject, nsIMdbFactory)
+NS_IMPL_ISUPPORTS_INHERITED(morkFactory, morkObject, nsIMdbFactory)
 
 extern "C" nsIMdbFactory* MakeMdbFactory() 
 {
   return new morkFactory(new orkinHeap());
 }
 
 
 /*public non-poly*/ void
--- a/db/mork/src/morkFile.cpp
+++ b/db/mork/src/morkFile.cpp
@@ -75,17 +75,17 @@ morkFile::morkFile(morkEnv* ev, const mo
       if ( ev->Good() )
         mNode_Derived = morkDerived_kFile;
     }
     else
       ev->NilPointerError();
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkFile, morkObject, nsIMdbFile)
+NS_IMPL_ISUPPORTS_INHERITED(morkFile, morkObject, nsIMdbFile)
 /*public non-poly*/ void
 morkFile::CloseFile(morkEnv* ev) // called by CloseMorkNode();
 {
   if ( this )
   {
     if ( this->IsNode() )
     {
       mFile_Frozen = 0;
--- a/db/mork/src/morkObject.cpp
+++ b/db/mork/src/morkObject.cpp
@@ -27,17 +27,17 @@
 #include "morkHandle.h"
 #endif
 
 #include "nsCOMPtr.h"
 
 
 //3456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789
 
-NS_IMPL_ISUPPORTS1(morkObject, nsIMdbObject)
+NS_IMPL_ISUPPORTS(morkObject, nsIMdbObject)
 
 // ````` ````` ````` ````` ````` 
 // { ===== begin morkNode interface =====
 
 /*public virtual*/ void
 morkObject::CloseMorkNode(morkEnv* ev) // CloseObject() only if open
 {
   if ( this->IsOpenNode() )
--- a/db/mork/src/morkPortTableCursor.cpp
+++ b/db/mork/src/morkPortTableCursor.cpp
@@ -81,17 +81,17 @@ morkPortTableCursor::morkPortTableCursor
       if ( ev->Good() )
         mNode_Derived = morkDerived_kPortTableCursor;
     }
     else
       ev->NilPointerError();
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkPortTableCursor, morkCursor, nsIMdbPortTableCursor)
+NS_IMPL_ISUPPORTS_INHERITED(morkPortTableCursor, morkCursor, nsIMdbPortTableCursor)
 
 morkEnv*
 morkPortTableCursor::CanUsePortTableCursor(nsIMdbEnv* mev, mork_bool inMutable,
                                            nsresult* outErr) const
 {
   morkEnv* outEnv = 0;
   morkEnv* ev = morkEnv::FromMdbEnv(mev);
   if ( ev )
--- a/db/mork/src/morkRowCellCursor.cpp
+++ b/db/mork/src/morkRowCellCursor.cpp
@@ -93,17 +93,17 @@ morkRowCellCursor::morkRowCellCursor(mor
       else
         ioRowObject->NilRowError(ev);
     }
     else
       ev->NilPointerError();
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkRowCellCursor, morkCursor, nsIMdbRowCellCursor)
+NS_IMPL_ISUPPORTS_INHERITED(morkRowCellCursor, morkCursor, nsIMdbRowCellCursor)
 
 /*public non-poly*/ void
 morkRowCellCursor::CloseRowCellCursor(morkEnv* ev) 
 {
   if ( this )
   {
     if ( this->IsNode() )
     {
--- a/db/mork/src/morkRowObject.cpp
+++ b/db/mork/src/morkRowObject.cpp
@@ -80,17 +80,17 @@ morkRowObject::morkRowObject(morkEnv* ev
       if ( ev->Good() )
         mNode_Derived = morkDerived_kRowObject;
     }
     else
       ev->NilPointerError();
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkRowObject, morkObject, nsIMdbRow)
+NS_IMPL_ISUPPORTS_INHERITED(morkRowObject, morkObject, nsIMdbRow)
 // { ===== begin nsIMdbCollection methods =====
 
 // { ----- begin attribute methods -----
 NS_IMETHODIMP
 morkRowObject::GetSeed(nsIMdbEnv* mev,
   mdb_seed* outSeed)
 {
   nsresult outErr = NS_OK;
--- a/db/mork/src/morkStore.cpp
+++ b/db/mork/src/morkStore.cpp
@@ -198,17 +198,17 @@ morkStore::morkStore(morkEnv* ev, const 
   }
   if ( ev->Good() )
   {
     mNode_Derived = morkDerived_kStore;
     
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkStore, morkObject, nsIMdbStore)
+NS_IMPL_ISUPPORTS_INHERITED(morkStore, morkObject, nsIMdbStore)
 
 /*public non-poly*/ void
 morkStore::CloseStore(morkEnv* ev) // called by CloseMorkNode();
 {
   if ( this )
   {
     if ( this->IsNode() )
     {
--- a/db/mork/src/morkTable.cpp
+++ b/db/mork/src/morkTable.cpp
@@ -137,17 +137,17 @@ morkTable::morkTable(morkEnv* ev, /*i*/
       else
         ioRowSpace->ZeroKindError(ev);
     }
     else
       ev->NilPointerError();
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkTable, morkObject, nsIMdbTable)
+NS_IMPL_ISUPPORTS_INHERITED(morkTable, morkObject, nsIMdbTable)
 
 /*public non-poly*/ void
 morkTable::CloseTable(morkEnv* ev) /*i*/ // called by CloseMorkNode();
 {
   if ( this )
   {
     if ( this->IsNode() )
     {
--- a/db/mork/src/morkTableRowCursor.cpp
+++ b/db/mork/src/morkTableRowCursor.cpp
@@ -79,17 +79,17 @@ morkTableRowCursor::morkTableRowCursor(m
       if ( ev->Good() )
         mNode_Derived = morkDerived_kTableRowCursor;
     }
     else
       ev->NilPointerError();
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkTableRowCursor, morkCursor, nsIMdbTableRowCursor)
+NS_IMPL_ISUPPORTS_INHERITED(morkTableRowCursor, morkCursor, nsIMdbTableRowCursor)
 /*public non-poly*/ void
 morkTableRowCursor::CloseTableRowCursor(morkEnv* ev) 
 {
   if ( this )
   {
     if ( this->IsNode() )
     {
       mCursor_Pos = -1;
--- a/db/mork/src/morkThumb.cpp
+++ b/db/mork/src/morkThumb.cpp
@@ -96,17 +96,17 @@ morkThumb::morkThumb(morkEnv* ev,
       mThumb_Magic = inMagic;
       mNode_Derived = morkDerived_kThumb;
     }
     else
       ev->NilPointerError();
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(morkThumb, morkObject, nsIMdbThumb)
+NS_IMPL_ISUPPORTS_INHERITED(morkThumb, morkObject, nsIMdbThumb)
 
 /*public non-poly*/ void
 morkThumb::CloseThumb(morkEnv* ev) // called by CloseMorkNode();
 {
   if ( this )
   {
     if ( this->IsNode() )
     {
--- a/im/components/mintrayr/trayToolkit.cpp
+++ b/im/components/mintrayr/trayToolkit.cpp
@@ -100,17 +100,17 @@ NS_IMETHODIMP DispatchTrustedEvent(nsIDO
   event->SetTrusted(true);
 
   bool dummy;
   return target->DispatchEvent(event, &dummy);
 }
 
 /* TrayIconImpl */
 
-NS_IMPL_ISUPPORTS2(TrayIconImpl, trayITrayIcon, nsIDOMEventListener)
+NS_IMPL_ISUPPORTS(TrayIconImpl, trayITrayIcon, nsIDOMEventListener)
 
 NS_IMETHODIMP TrayIconImpl::GetWindow(nsIDOMWindow **aWindow)
 {
   NS_ENSURE_ARG_POINTER(aWindow);
   *aWindow = mWindow;
   NS_ADDREF(*aWindow);
   return NS_OK;
 }
@@ -260,17 +260,17 @@ NS_IMETHODIMP TrayIconImpl::DispatchMous
   NS_ENSURE_SUCCESS(rv, rv);
 
   bool dummy;
   return target->DispatchEvent(mouseEvent, &dummy);
 }
 
 /* TrayServiceImpl */
 
-NS_IMPL_ISUPPORTS2(TrayServiceImpl, trayITrayService, nsIObserver)
+NS_IMPL_ISUPPORTS(TrayServiceImpl, trayITrayService, nsIObserver)
 
 TrayServiceImpl::TrayServiceImpl()
 {
   platform::Init();
 
   // Observe when the app is going down.
   // Else we might not properly clean up
   // And leave some tray icons behind
--- a/ldap/xpcom/src/nsLDAPBERElement.cpp
+++ b/ldap/xpcom/src/nsLDAPBERElement.cpp
@@ -4,17 +4,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsLDAPBERElement.h"
 #include "nsStringGlue.h"
 #include "nsCOMPtr.h"
 #include "nsLDAPBERValue.h"
 
-NS_IMPL_ISUPPORTS1(nsLDAPBERElement, nsILDAPBERElement)
+NS_IMPL_ISUPPORTS(nsLDAPBERElement, nsILDAPBERElement)
 
 nsLDAPBERElement::nsLDAPBERElement()
   : mElement(0)
 {
 }
 
 nsLDAPBERElement::~nsLDAPBERElement()
 {
--- a/ldap/xpcom/src/nsLDAPBERValue.cpp
+++ b/ldap/xpcom/src/nsLDAPBERValue.cpp
@@ -3,17 +3,17 @@
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsLDAPBERValue.h"
 #include "nsMemory.h"
 #include "nsStringGlue.h"
 
-NS_IMPL_ISUPPORTS1(nsLDAPBERValue, nsILDAPBERValue)
+NS_IMPL_ISUPPORTS(nsLDAPBERValue, nsILDAPBERValue)
 
 nsLDAPBERValue::nsLDAPBERValue() : mValue(0), mSize(0)
 {
 }
 
 nsLDAPBERValue::~nsLDAPBERValue()
 {
     if (mValue) {
--- a/ldap/xpcom/src/nsLDAPConnection.cpp
+++ b/ldap/xpcom/src/nsLDAPConnection.cpp
@@ -62,17 +62,17 @@ NS_IMPL_CLASSINFO(nsLDAPConnection, NULL
 NS_INTERFACE_MAP_BEGIN(nsLDAPConnection)
   NS_INTERFACE_MAP_ENTRY(nsILDAPConnection)
   NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
   NS_INTERFACE_MAP_ENTRY(nsIDNSListener)
   NS_INTERFACE_MAP_ENTRY(nsIObserver)
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsILDAPConnection)
   NS_IMPL_QUERY_CLASSINFO(nsLDAPConnection)
 NS_INTERFACE_MAP_END_THREADSAFE
-NS_IMPL_CI_INTERFACE_GETTER4(nsLDAPConnection, nsILDAPConnection,
+NS_IMPL_CI_INTERFACE_GETTER(nsLDAPConnection, nsILDAPConnection,
                              nsISupportsWeakReference, nsIDNSListener,
                              nsIObserver)
 
 NS_IMETHODIMP
 nsLDAPConnection::Init(nsILDAPURL *aUrl, const nsACString &aBindName,
                        nsILDAPMessageListener *aMessageListener,
                        nsISupports *aClosure, uint32_t aVersion)
 {
@@ -612,17 +612,17 @@ nsLDAPConnectionRunnable::nsLDAPConnecti
   : mOperationID(aOperationID),  mConnection(aConnection)
 {
 }
 
 nsLDAPConnectionRunnable::~nsLDAPConnectionRunnable()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsLDAPConnectionRunnable, nsIRunnable)
+NS_IMPL_ISUPPORTS(nsLDAPConnectionRunnable, nsIRunnable)
 
 NS_IMETHODIMP nsLDAPConnectionRunnable::Run()
 {
   if (!mOperationID) {
     NS_ERROR("mOperationID is null");
     return NS_ERROR_NULL_POINTER;
   }
 
--- a/ldap/xpcom/src/nsLDAPControl.cpp
+++ b/ldap/xpcom/src/nsLDAPControl.cpp
@@ -4,17 +4,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsLDAPControl.h"
 #include "prmem.h"
 #include "plstr.h"
 #include "nsLDAPBERValue.h"
 
-NS_IMPL_ISUPPORTS1(nsLDAPControl, nsILDAPControl)
+NS_IMPL_ISUPPORTS(nsLDAPControl, nsILDAPControl)
 
 nsLDAPControl::nsLDAPControl()
   : mIsCritical(false)
 {
 }
 
 nsLDAPControl::~nsLDAPControl()
 {
--- a/ldap/xpcom/src/nsLDAPMessage.cpp
+++ b/ldap/xpcom/src/nsLDAPMessage.cpp
@@ -21,17 +21,17 @@ NS_IMPL_CLASSINFO(nsLDAPMessage, NULL, n
 
 NS_IMPL_ADDREF(nsLDAPMessage)
 NS_IMPL_RELEASE(nsLDAPMessage)
 NS_INTERFACE_MAP_BEGIN(nsLDAPMessage)
   NS_INTERFACE_MAP_ENTRY(nsILDAPMessage)
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsILDAPMessage)
   NS_IMPL_QUERY_CLASSINFO(nsLDAPMessage)
 NS_INTERFACE_MAP_END_THREADSAFE
-NS_IMPL_CI_INTERFACE_GETTER1(nsLDAPMessage, nsILDAPMessage)
+NS_IMPL_CI_INTERFACE_GETTER(nsLDAPMessage, nsILDAPMessage)
 
 
 // constructor
 //
 nsLDAPMessage::nsLDAPMessage() 
     : mMsgHandle(0),
       mErrorCode(LDAP_SUCCESS),
       mMatchedDn(0),
--- a/ldap/xpcom/src/nsLDAPModification.cpp
+++ b/ldap/xpcom/src/nsLDAPModification.cpp
@@ -6,17 +6,17 @@
 #include "nsLDAPModification.h"
 #include "nsILDAPBERValue.h"
 #include "nsISimpleEnumerator.h"
 #include "nsServiceManagerUtils.h"
 #include "nsComponentManagerUtils.h"
 
 using namespace mozilla;
 
-NS_IMPL_ISUPPORTS1(nsLDAPModification, nsILDAPModification)
+NS_IMPL_ISUPPORTS(nsLDAPModification, nsILDAPModification)
 
 // constructor
 //
 nsLDAPModification::nsLDAPModification()
     : mValuesLock("nsLDAPModification.mValuesLock")
 {
 }
 
--- a/ldap/xpcom/src/nsLDAPOperation.cpp
+++ b/ldap/xpcom/src/nsLDAPOperation.cpp
@@ -71,17 +71,17 @@ NS_IMPL_CLASSINFO(nsLDAPOperation, NULL,
 
 NS_IMPL_ADDREF(nsLDAPOperation)
 NS_IMPL_RELEASE(nsLDAPOperation)
 NS_INTERFACE_MAP_BEGIN(nsLDAPOperation)
   NS_INTERFACE_MAP_ENTRY(nsILDAPOperation)
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsILDAPOperation)
   NS_IMPL_QUERY_CLASSINFO(nsLDAPOperation)
 NS_INTERFACE_MAP_END_THREADSAFE
-NS_IMPL_CI_INTERFACE_GETTER1(nsLDAPOperation, nsILDAPOperation)
+NS_IMPL_CI_INTERFACE_GETTER(nsLDAPOperation, nsILDAPOperation)
 
 /**
  * Initializes this operation.  Must be called prior to use.
  *
  * @param aConnection connection this operation should use
  * @param aMessageListener where are the results are called back to.
  */
 NS_IMETHODIMP
--- a/ldap/xpcom/src/nsLDAPServer.cpp
+++ b/ldap/xpcom/src/nsLDAPServer.cpp
@@ -1,17 +1,17 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * 
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsLDAPServer.h"
 
-NS_IMPL_ISUPPORTS1(nsLDAPServer, nsILDAPServer)
+NS_IMPL_ISUPPORTS(nsLDAPServer, nsILDAPServer)
 
 nsLDAPServer::nsLDAPServer()
     : mSizeLimit(0),
       mProtocolVersion(nsILDAPConnection::VERSION3)
 {
 }
 
 nsLDAPServer::~nsLDAPServer()
--- a/ldap/xpcom/src/nsLDAPService.cpp
+++ b/ldap/xpcom/src/nsLDAPService.cpp
@@ -162,17 +162,17 @@ bool nsLDAPServiceEntry::DeleteEntry()
 
     return true;
 }
 // This is the end of the nsLDAPServiceEntry class
 
 
 // Here begins the implementation for nsLDAPService
 // 
-NS_IMPL_ISUPPORTS2(nsLDAPService,
+NS_IMPL_ISUPPORTS(nsLDAPService,
                               nsILDAPService,
                               nsILDAPMessageListener)
 
 
 // constructor
 //
 nsLDAPService::nsLDAPService()
     : mLock("nsLDAPService.mLock")
--- a/ldap/xpcom/src/nsLDAPSyncQuery.cpp
+++ b/ldap/xpcom/src/nsLDAPSyncQuery.cpp
@@ -9,17 +9,17 @@
 #include "nsThreadUtils.h"
 #include "nsILDAPMessage.h"
 #include "nsComponentManagerUtils.h"
 #include "nsServiceManagerUtils.h"
 #include "nsMemory.h"
 
 // nsISupports Implementation
 
-NS_IMPL_ISUPPORTS2(nsLDAPSyncQuery, nsILDAPSyncQuery, nsILDAPMessageListener)
+NS_IMPL_ISUPPORTS(nsLDAPSyncQuery, nsILDAPSyncQuery, nsILDAPMessageListener)
 
 // Constructor
 //
 nsLDAPSyncQuery::nsLDAPSyncQuery() :
     mFinished(false), // This is a control variable for event loop
     mProtocolVersion(nsILDAPConnection::VERSION3)
 {
 }
--- a/ldap/xpcom/src/nsLDAPURL.cpp
+++ b/ldap/xpcom/src/nsLDAPURL.cpp
@@ -13,17 +13,17 @@
 #include "nsIStandardURL.h"
 #include "nsMsgUtils.h"
 
 // The two schemes we support, LDAP and LDAPS
 //
 NS_NAMED_LITERAL_CSTRING(LDAP_SCHEME, "ldap");
 NS_NAMED_LITERAL_CSTRING(LDAP_SSL_SCHEME, "ldaps");
 
-NS_IMPL_ISUPPORTS2(nsLDAPURL, nsILDAPURL, nsIURI)
+NS_IMPL_ISUPPORTS(nsLDAPURL, nsILDAPURL, nsIURI)
 
 nsLDAPURL::nsLDAPURL()
     : mScope(SCOPE_BASE),
       mOptions(0)
 {
 }
 
 nsLDAPURL::~nsLDAPURL()
--- a/mail/components/migration/src/nsEudoraProfileMigrator.cpp
+++ b/mail/components/migration/src/nsEudoraProfileMigrator.cpp
@@ -13,17 +13,17 @@
 #include "nsNetCID.h"
 #include "nsNetUtil.h"
 #include "nsEudoraProfileMigrator.h"
 #include "nsIProfileMigrator.h"
 #include "nsIImportSettings.h"
 #include "nsIFile.h"
 
 
-NS_IMPL_ISUPPORTS2(nsEudoraProfileMigrator, nsIMailProfileMigrator, nsITimerCallback)
+NS_IMPL_ISUPPORTS(nsEudoraProfileMigrator, nsIMailProfileMigrator, nsITimerCallback)
 
 
 nsEudoraProfileMigrator::nsEudoraProfileMigrator()
 {
   mProcessingMailFolders = false;
   // get the import service
   mImportModule = do_CreateInstance("@mozilla.org/import/import-eudora;1");
 }
--- a/mail/components/migration/src/nsNetscapeProfileMigratorBase.cpp
+++ b/mail/components/migration/src/nsNetscapeProfileMigratorBase.cpp
@@ -31,17 +31,17 @@
 nsNetscapeProfileMigratorBase::nsNetscapeProfileMigratorBase()
 {
   mObserverService = do_GetService("@mozilla.org/observer-service;1");
   mMaxProgress = 0;
   mCurrentProgress = 0;
   mFileCopyTransactionIndex = 0;
 }
 
-NS_IMPL_ISUPPORTS2(nsNetscapeProfileMigratorBase, nsIMailProfileMigrator,
+NS_IMPL_ISUPPORTS(nsNetscapeProfileMigratorBase, nsIMailProfileMigrator,
                    nsITimerCallback)
 
 nsresult
 nsNetscapeProfileMigratorBase::GetProfileDataFromProfilesIni(nsIFile* aDataDir,
                                                              nsIMutableArray* aProfileNames,
                                                              nsIMutableArray* aProfileLocations)
 {
   nsCOMPtr<nsIFile> profileIni;
--- a/mail/components/migration/src/nsOEProfileMigrator.cpp
+++ b/mail/components/migration/src/nsOEProfileMigrator.cpp
@@ -9,17 +9,17 @@
 #include "nsIServiceManager.h"
 #include "nsISupportsPrimitives.h"
 #include "nsOEProfileMigrator.h"
 #include "nsIProfileMigrator.h"
 #include "nsIImportSettings.h"
 #include "nsIFile.h"
 #include "nsComponentManagerUtils.h"
 
-NS_IMPL_ISUPPORTS2(nsOEProfileMigrator, nsIMailProfileMigrator, nsITimerCallback)
+NS_IMPL_ISUPPORTS(nsOEProfileMigrator, nsIMailProfileMigrator, nsITimerCallback)
 
 
 nsOEProfileMigrator::nsOEProfileMigrator()
 {
   mProcessingMailFolders = false;
   // get the import service
   mImportModule = do_CreateInstance("@mozilla.org/import/import-oe;1");
 }
--- a/mail/components/migration/src/nsOutlookProfileMigrator.cpp
+++ b/mail/components/migration/src/nsOutlookProfileMigrator.cpp
@@ -6,17 +6,17 @@
 #include "nsMailProfileMigratorUtils.h"
 #include "nsIServiceManager.h"
 #include "nsOutlookProfileMigrator.h"
 #include "nsIProfileMigrator.h"
 #include "nsIImportSettings.h"
 #include "nsIFile.h"
 #include "nsComponentManagerUtils.h"
 
-NS_IMPL_ISUPPORTS2(nsOutlookProfileMigrator, nsIMailProfileMigrator, nsITimerCallback)
+NS_IMPL_ISUPPORTS(nsOutlookProfileMigrator, nsIMailProfileMigrator, nsITimerCallback)
 
 
 nsOutlookProfileMigrator::nsOutlookProfileMigrator()
 {
   mProcessingMailFolders = false;
   // get the import service
   mImportModule = do_CreateInstance("@mozilla.org/import/import-outlook;1");
 }
--- a/mail/components/migration/src/nsProfileMigrator.cpp
+++ b/mail/components/migration/src/nsProfileMigrator.cpp
@@ -21,17 +21,17 @@
 #include "nsMailMigrationCID.h"
 
 #ifdef XP_WIN
 #include <windows.h>
 #else
 #include <limits.h>
 #endif
 
-NS_IMPL_ISUPPORTS1(nsProfileMigrator, nsIProfileMigrator)
+NS_IMPL_ISUPPORTS(nsProfileMigrator, nsIProfileMigrator)
 
 #define MIGRATION_WIZARD_FE_URL "chrome://messenger/content/migration/migration.xul"
 #define MIGRATION_WIZARD_FE_FEATURES "chrome,dialog,modal,centerscreen"
 
 NS_IMETHODIMP
 nsProfileMigrator::Migrate(nsIProfileStartup* aStartup, const nsACString& aKey)
 {
   nsAutoCString key;
--- a/mail/components/migration/src/nsSeamonkeyProfileMigrator.cpp
+++ b/mail/components/migration/src/nsSeamonkeyProfileMigrator.cpp
@@ -40,17 +40,17 @@ struct PrefBranchStruct {
   union {
     char*       stringValue;
     int32_t     intValue;
     bool        boolValue;
     char16_t*  wstringValue;
   };
 };
 
-NS_IMPL_ISUPPORTS2(nsSeamonkeyProfileMigrator, nsIMailProfileMigrator, nsITimerCallback)
+NS_IMPL_ISUPPORTS(nsSeamonkeyProfileMigrator, nsIMailProfileMigrator, nsITimerCallback)
 
 
 nsSeamonkeyProfileMigrator::nsSeamonkeyProfileMigrator()
 {
 }
 
 nsSeamonkeyProfileMigrator::~nsSeamonkeyProfileMigrator()
 {
--- a/mail/components/search/nsMailWinSearchHelper.cpp
+++ b/mail/components/search/nsMailWinSearchHelper.cpp
@@ -38,17 +38,17 @@ nsresult nsMailWinSearchHelper::Init()
   return NS_GetSpecialDirectory("ProfD", getter_AddRefs(mProfD));
 }
 
 nsMailWinSearchHelper::~nsMailWinSearchHelper()
 {
   CoUninitialize();
 }
 
-NS_IMPL_ISUPPORTS1(nsMailWinSearchHelper, nsIMailWinSearchHelper)
+NS_IMPL_ISUPPORTS(nsMailWinSearchHelper, nsIMailWinSearchHelper)
 
 
 NS_IMETHODIMP nsMailWinSearchHelper::GetFoldersInCrawlScope(bool* aResult)
 {
   *aResult = false;
   NS_ENSURE_ARG_POINTER(mProfD);
 
   // If the service isn't present or running, we shouldn't proceed.
--- a/mail/components/shell/DirectoryProvider.cpp
+++ b/mail/components/shell/DirectoryProvider.cpp
@@ -19,17 +19,17 @@
 #include "nsServiceManagerUtils.h"
 #include "nsStringGlue.h"
 #include "nsXULAppAPI.h"
 #include "nsIPrefLocalizedString.h"
 
 namespace mozilla {
 namespace mail {
 
-NS_IMPL_ISUPPORTS2(DirectoryProvider,
+NS_IMPL_ISUPPORTS(DirectoryProvider,
                    nsIDirectoryServiceProvider,
                    nsIDirectoryServiceProvider2)
 
 NS_IMETHODIMP
 DirectoryProvider::GetFile(const char *aKey, bool *aPersist, nsIFile* *aResult)
 {
   // Not supported.
   return NS_ERROR_FAILURE;
@@ -202,17 +202,17 @@ DirectoryProvider::GetFiles(const char *
       return NS_ERROR_OUT_OF_MEMORY;
 
     return NS_NewUnionEnumerator(aResult, extEnum, baseEnum);
   }
 
   return NS_ERROR_FAILURE;
 }
 
-NS_IMPL_ISUPPORTS1(DirectoryProvider::AppendingEnumerator, nsISimpleEnumerator)
+NS_IMPL_ISUPPORTS(DirectoryProvider::AppendingEnumerator, nsISimpleEnumerator)
 
 NS_IMETHODIMP
 DirectoryProvider::AppendingEnumerator::HasMoreElements(bool *aResult)
 {
   *aResult = mNext ? true : false;
   return NS_OK;
 }
 
--- a/mail/components/shell/nsMailGNOMEIntegration.cpp
+++ b/mail/components/shell/nsMailGNOMEIntegration.cpp
@@ -95,17 +95,17 @@ nsMailGNOMEIntegration::Init()
 
   rv = appPath->AppendNative(NS_LITERAL_CSTRING(MOZ_APP_NAME));
   NS_ENSURE_SUCCESS(rv, rv);
 
   rv = appPath->GetNativePath(mAppPath);
   return rv;
 }
 
-NS_IMPL_ISUPPORTS1(nsMailGNOMEIntegration, nsIShellService)
+NS_IMPL_ISUPPORTS(nsMailGNOMEIntegration, nsIShellService)
 
 bool
 nsMailGNOMEIntegration::GetAppPathFromLauncher()
 {
   gchar *tmp;
 
   const char *launcher = PR_GetEnv("MOZ_APP_LAUNCHER");
   if (!launcher)
--- a/mail/components/shell/nsMailMacIntegration.cpp
+++ b/mail/components/shell/nsMailMacIntegration.cpp
@@ -20,17 +20,17 @@ extern "C" {
   // the given URL scheme. appURL must be released by the caller.
   extern OSStatus _LSCopyDefaultSchemeHandlerURL(CFStringRef scheme,
                                                  CFURLRef *appURL);
   extern OSStatus _LSSetDefaultSchemeHandlerURL(CFStringRef scheme,
                                                 CFURLRef appURL);
   extern OSStatus _LSSaveAndRefresh(void);
 }
 
-NS_IMPL_ISUPPORTS1(nsMailMacIntegration, nsIShellService)
+NS_IMPL_ISUPPORTS(nsMailMacIntegration, nsIShellService)
 
 nsMailMacIntegration::nsMailMacIntegration(): mCheckedThisSession(false)
 {}
 
 NS_IMETHODIMP
 nsMailMacIntegration::IsDefaultClient(bool aStartupCheck, uint16_t aApps, bool * aIsDefaultClient)
 {
   *aIsDefaultClient = true;
--- a/mail/components/shell/nsMailWinIntegration.cpp
+++ b/mail/components/shell/nsMailWinIntegration.cpp
@@ -41,17 +41,17 @@
 #define MAX_BUF 4096
 #endif
 
 #define REG_FAILED(val) \
   (val != ERROR_SUCCESS)
 
 #define NS_TASKBAR_CONTRACTID "@mozilla.org/windows-taskbar;1"
 
-NS_IMPL_ISUPPORTS2(nsWindowsShellService, nsIWindowsShellService, nsIShellService)
+NS_IMPL_ISUPPORTS(nsWindowsShellService, nsIWindowsShellService, nsIShellService)
 
 static nsresult
 OpenKeyForReading(HKEY aKeyRoot, const nsAString& aKeyName, HKEY* aKey)
 {
   const nsString &flatName = PromiseFlatString(aKeyName);
 
   DWORD res = ::RegOpenKeyExW(aKeyRoot, flatName.get(), 0, KEY_READ, aKey);
   switch (res) {
--- a/mailnews/addrbook/src/nsAbAddressCollector.cpp
+++ b/mailnews/addrbook/src/nsAbAddressCollector.cpp
@@ -15,17 +15,17 @@
 #include "prmem.h"
 #include "nsServiceManagerUtils.h"
 #include "nsComponentManagerUtils.h"
 #include "nsIAbManager.h"
 #include "mozilla/mailnews/MimeHeaderParser.h"
 
 using namespace mozilla::mailnews;
 
-NS_IMPL_ISUPPORTS2(nsAbAddressCollector, nsIAbAddressCollector, nsIObserver)
+NS_IMPL_ISUPPORTS(nsAbAddressCollector, nsIAbAddressCollector, nsIObserver)
 
 #define PREF_MAIL_COLLECT_ADDRESSBOOK "mail.collect_addressbook"
 
 nsAbAddressCollector::nsAbAddressCollector()
 {
 }
 
 nsAbAddressCollector::~nsAbAddressCollector()
--- a/mailnews/addrbook/src/nsAbBooleanExpression.cpp
+++ b/mailnews/addrbook/src/nsAbBooleanExpression.cpp
@@ -1,17 +1,17 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsAbBooleanExpression.h"
 #include "nsComponentManagerUtils.h"
 
-NS_IMPL_ISUPPORTS1(nsAbBooleanConditionString, nsIAbBooleanConditionString)
+NS_IMPL_ISUPPORTS(nsAbBooleanConditionString, nsIAbBooleanConditionString)
 
 nsAbBooleanConditionString::nsAbBooleanConditionString() :
     mCondition (nsIAbBooleanConditionTypes::Exists)
 {
 }
 
 nsAbBooleanConditionString::~nsAbBooleanConditionString()
 {
@@ -70,17 +70,17 @@ NS_IMETHODIMP nsAbBooleanConditionString
     if (!aValue)
         return NS_ERROR_NULL_POINTER;
 
     mValue = aValue;
 
     return NS_OK;
 }
 
-NS_IMPL_ISUPPORTS1(nsAbBooleanExpression, nsIAbBooleanExpression)
+NS_IMPL_ISUPPORTS(nsAbBooleanExpression, nsIAbBooleanExpression)
 
 nsAbBooleanExpression::nsAbBooleanExpression() :
     mOperation (nsIAbBooleanOperationTypes::AND)
 {
 }
 
 nsAbBooleanExpression::~nsAbBooleanExpression()
 {
--- a/mailnews/addrbook/src/nsAbCardProperty.cpp
+++ b/mailnews/addrbook/src/nsAbCardProperty.cpp
@@ -114,17 +114,17 @@ nsAbCardProperty::nsAbCardProperty()
   SetPropertyAsUint32(kLastModifiedDateProperty, 0);
   SetPropertyAsBool(kAllowRemoteContentProperty, false);
 }
 
 nsAbCardProperty::~nsAbCardProperty(void)
 {
 }
 
-NS_IMPL_ISUPPORTS2(nsAbCardProperty, nsIAbCard, nsIAbItem)
+NS_IMPL_ISUPPORTS(nsAbCardProperty, nsIAbCard, nsIAbItem)
 
 NS_IMETHODIMP nsAbCardProperty::GetUuid(nsACString &uuid)
 {
   // If we have indeterminate sub-ids, return an empty uuid.
   if (m_directoryId.Equals("") || m_localId.Equals(""))
   {
     uuid.Truncate();
     return NS_OK;
@@ -210,17 +210,17 @@ public:
 
     NS_DECL_ISUPPORTS
     NS_DECL_NSIPROPERTY
 protected:
     nsCString mName;
     nsCOMPtr<nsIVariant> mValue;
 };
 
-NS_IMPL_ISUPPORTS1(nsAbSimpleProperty, nsIProperty)
+NS_IMPL_ISUPPORTS(nsAbSimpleProperty, nsIProperty)
 
 NS_IMETHODIMP
 nsAbSimpleProperty::GetName(nsAString& aName)
 {
     aName.Assign(NS_ConvertUTF8toUTF16(mName));
     return NS_OK;
 }
 
--- a/mailnews/addrbook/src/nsAbContentHandler.cpp
+++ b/mailnews/addrbook/src/nsAbContentHandler.cpp
@@ -23,17 +23,17 @@
 nsAbContentHandler::nsAbContentHandler()
 {
 }
 
 nsAbContentHandler::~nsAbContentHandler()
 {
 }
 
-NS_IMPL_ISUPPORTS2(nsAbContentHandler, nsIContentHandler,
+NS_IMPL_ISUPPORTS(nsAbContentHandler, nsIContentHandler,
   nsIStreamLoaderObserver)
 
 NS_IMETHODIMP
 nsAbContentHandler::HandleContent(const char *aContentType,
                                   nsIInterfaceRequestor *aWindowContext,
                                   nsIRequest *request)
 {
   NS_ENSURE_ARG_POINTER(request);
--- a/mailnews/addrbook/src/nsAbDirFactoryService.cpp
+++ b/mailnews/addrbook/src/nsAbDirFactoryService.cpp
@@ -11,17 +11,17 @@
 #include "nsStringGlue.h"
 #include "plstr.h"
 
 #include "nsAbBaseCID.h"
 #include "nsAbDirFactoryService.h"
 #include "nsIAbDirFactory.h"
 #include "mozilla/Services.h"
 
-NS_IMPL_ISUPPORTS1(nsAbDirFactoryService, nsIAbDirFactoryService)
+NS_IMPL_ISUPPORTS(nsAbDirFactoryService, nsIAbDirFactoryService)
 
 nsAbDirFactoryService::nsAbDirFactoryService()
 {
 }
 
 nsAbDirFactoryService::~nsAbDirFactoryService()
 {
 }
--- a/mailnews/addrbook/src/nsAbDirProperty.cpp
+++ b/mailnews/addrbook/src/nsAbDirProperty.cpp
@@ -37,17 +37,17 @@ nsAbDirProperty::~nsAbDirProperty(void)
     NS_ASSERTION(NS_SUCCEEDED(rv), "Count failed");
     int32_t i;
     for (i = count - 1; i >= 0; i--)
       m_AddressList->RemoveElementAt(i);
   }
 #endif
 }
 
-NS_IMPL_ISUPPORTS4(nsAbDirProperty, nsIAbDirectory, nsISupportsWeakReference,
+NS_IMPL_ISUPPORTS(nsAbDirProperty, nsIAbDirectory, nsISupportsWeakReference,
                               nsIAbCollection, nsIAbItem)
 
 NS_IMETHODIMP nsAbDirProperty::GetUuid(nsACString &uuid)
 {
   // XXX: not all directories have a dirPrefId...
   nsresult rv = GetDirPrefId(uuid);
   NS_ENSURE_SUCCESS(rv, rv);
   uuid.Append('&');
--- a/mailnews/addrbook/src/nsAbDirectoryQuery.cpp
+++ b/mailnews/addrbook/src/nsAbDirectoryQuery.cpp
@@ -10,17 +10,17 @@
 #include "nsArrayUtils.h"
 #include "nsComponentManagerUtils.h"
 #include "nsStringGlue.h"
 #include "nsUnicharUtils.h"
 #include "nsIAbDirSearchListener.h"
 #include "nsISimpleEnumerator.h"
 #include "nsMsgUtils.h"
 
-NS_IMPL_ISUPPORTS1(nsAbDirectoryQuerySimpleBooleanExpression, nsIAbBooleanExpression)
+NS_IMPL_ISUPPORTS(nsAbDirectoryQuerySimpleBooleanExpression, nsIAbBooleanExpression)
 
 nsAbDirectoryQuerySimpleBooleanExpression::nsAbDirectoryQuerySimpleBooleanExpression() :
     mOperation (nsIAbBooleanOperationTypes::AND)
 {
 }
 
 nsAbDirectoryQuerySimpleBooleanExpression::~nsAbDirectoryQuerySimpleBooleanExpression()
 {
@@ -85,17 +85,17 @@ NS_IMETHODIMP nsAbDirectoryQuerySimpleBo
   }
 
   // Values ok, so we can just save and return.
   mExpressions = aExpressions;
 
   return NS_OK;
 }
 
-NS_IMPL_ISUPPORTS1(nsAbDirectoryQueryArguments, nsIAbDirectoryQueryArguments)
+NS_IMPL_ISUPPORTS(nsAbDirectoryQueryArguments, nsIAbDirectoryQueryArguments)
 
 nsAbDirectoryQueryArguments::nsAbDirectoryQueryArguments() :
     mQuerySubDirectories(true)
 {
 }
 
 nsAbDirectoryQueryArguments::~nsAbDirectoryQueryArguments()
 {
@@ -152,17 +152,17 @@ NS_IMETHODIMP nsAbDirectoryQueryArgument
 }
 
 NS_IMETHODIMP nsAbDirectoryQueryArguments::SetFilter(const nsACString & aFilter)
 {
     mFilter.Assign(aFilter);
     return NS_OK;
 }
 
-NS_IMPL_ISUPPORTS1(nsAbDirectoryQueryPropertyValue, nsIAbDirectoryQueryPropertyValue)
+NS_IMPL_ISUPPORTS(nsAbDirectoryQueryPropertyValue, nsIAbDirectoryQueryPropertyValue)
 
 nsAbDirectoryQueryPropertyValue::nsAbDirectoryQueryPropertyValue()
 {
 }
 
 nsAbDirectoryQueryPropertyValue::nsAbDirectoryQueryPropertyValue(const char* aName,
       const char16_t* aValue)
 {
@@ -205,17 +205,17 @@ NS_IMETHODIMP nsAbDirectoryQueryProperty
     if (!mValueISupports)
         return NS_ERROR_NULL_POINTER;
 
     NS_IF_ADDREF(*aValueISupports = mValueISupports);
     return NS_OK;
 }
 
 /* Implementation file */
-NS_IMPL_ISUPPORTS1(nsAbDirectoryQuery, nsIAbDirectoryQuery)
+NS_IMPL_ISUPPORTS(nsAbDirectoryQuery, nsIAbDirectoryQuery)
 
 nsAbDirectoryQuery::nsAbDirectoryQuery()
 {
 }
 
 nsAbDirectoryQuery::~nsAbDirectoryQuery()
 {
 }
--- a/mailnews/addrbook/src/nsAbDirectoryQueryProxy.cpp
+++ b/mailnews/addrbook/src/nsAbDirectoryQueryProxy.cpp
@@ -1,17 +1,17 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsAbDirectoryQuery.h"
 #include "nsAbDirectoryQueryProxy.h"
 
-NS_IMPL_ISUPPORTS2(nsAbDirectoryQueryProxy, nsIAbDirectoryQueryProxy, nsIAbDirectoryQuery)
+NS_IMPL_ISUPPORTS(nsAbDirectoryQueryProxy, nsIAbDirectoryQueryProxy, nsIAbDirectoryQuery)
 
 nsAbDirectoryQueryProxy::nsAbDirectoryQueryProxy() :
     mInitiated (false)
 {
 }
 
 nsAbDirectoryQueryProxy::~nsAbDirectoryQueryProxy()
 {
--- a/mailnews/addrbook/src/nsAbLDAPCard.cpp
+++ b/mailnews/addrbook/src/nsAbLDAPCard.cpp
@@ -23,17 +23,17 @@
 nsAbLDAPCard::nsAbLDAPCard()
 {
 }
 
 nsAbLDAPCard::~nsAbLDAPCard()
 {
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(nsAbLDAPCard, nsAbCardProperty, nsIAbLDAPCard)
+NS_IMPL_ISUPPORTS_INHERITED(nsAbLDAPCard, nsAbCardProperty, nsIAbLDAPCard)
 
 /* Retrieves the changes to the LDAP card and stores them in an LDAP
  * update message.
  *
  * Calling this method changes the LDAP card, it updates the
  * meta-properties (m_*) to reflect what the LDAP contents will be once
  * the update has been performed. This allows you to do multiple (successful)
  * consecutive edits on a card in a search result. If the meta-properties
--- a/mailnews/addrbook/src/nsAbLDAPChangeLogQuery.cpp
+++ b/mailnews/addrbook/src/nsAbLDAPChangeLogQuery.cpp
@@ -26,17 +26,17 @@ static const char * sChangeLogRootDSEAtt
 };
 static const char * sChangeLogEntryAttribs[] =
 { 
   "targetdn", 
   "changetype"
 };
 
 
-NS_IMPL_ISUPPORTS_INHERITED1(nsAbLDAPChangeLogQuery, nsAbLDAPReplicationQuery, nsIAbLDAPChangeLogQuery)
+NS_IMPL_ISUPPORTS_INHERITED(nsAbLDAPChangeLogQuery, nsAbLDAPReplicationQuery, nsIAbLDAPChangeLogQuery)
 
 nsAbLDAPChangeLogQuery::nsAbLDAPChangeLogQuery()
 {
 }
 
 nsAbLDAPChangeLogQuery::~nsAbLDAPChangeLogQuery()
 {
 
--- a/mailnews/addrbook/src/nsAbLDAPDirFactory.cpp
+++ b/mailnews/addrbook/src/nsAbLDAPDirFactory.cpp
@@ -9,17 +9,17 @@
 #include "nsServiceManagerUtils.h"
 #include "nsIAbManager.h"
 #include "nsIAbDirectory.h"
 #include "nsAbLDAPDirectory.h"
 
 #include "nsEnumeratorUtils.h"
 #include "nsAbBaseCID.h"
 
-NS_IMPL_ISUPPORTS1(nsAbLDAPDirFactory, nsIAbDirFactory)
+NS_IMPL_ISUPPORTS(nsAbLDAPDirFactory, nsIAbDirFactory)
 
 nsAbLDAPDirFactory::nsAbLDAPDirFactory()
 {
 }
 
 nsAbLDAPDirFactory::~nsAbLDAPDirFactory()
 {
 }
--- a/mailnews/addrbook/src/nsAbLDAPDirectory.cpp
+++ b/mailnews/addrbook/src/nsAbLDAPDirectory.cpp
@@ -45,17 +45,17 @@ nsAbLDAPDirectory::nsAbLDAPDirectory() :
   mLock("nsAbLDAPDirectory.mLock")
 {
 }
 
 nsAbLDAPDirectory::~nsAbLDAPDirectory()
 {
 }
 
-NS_IMPL_ISUPPORTS_INHERITED3(nsAbLDAPDirectory, nsAbDirProperty,
+NS_IMPL_ISUPPORTS_INHERITED(nsAbLDAPDirectory, nsAbDirProperty,
                              nsISupportsWeakReference, nsIAbDirSearchListener,
                              nsIAbLDAPDirectory)
 
 NS_IMETHODIMP nsAbLDAPDirectory::GetPropertiesChromeURI(nsACString &aResult)
 {
   aResult.AssignLiteral("chrome://messenger/content/addressbook/pref-directory-add.xul");
   return NS_OK;
 }
--- a/mailnews/addrbook/src/nsAbLDAPDirectoryModify.cpp
+++ b/mailnews/addrbook/src/nsAbLDAPDirectoryModify.cpp
@@ -58,17 +58,17 @@ protected:
   bool mFlagRename;
 
   nsCOMPtr<nsILDAPOperation> mModifyOperation;
   nsCOMPtr<nsIMutableArray> mServerSearchControls;
   nsCOMPtr<nsIMutableArray> mClientSearchControls;
 };
 
 
-NS_IMPL_ISUPPORTS1(nsAbModifyLDAPMessageListener, nsILDAPMessageListener)
+NS_IMPL_ISUPPORTS(nsAbModifyLDAPMessageListener, nsILDAPMessageListener)
 
 nsAbModifyLDAPMessageListener::nsAbModifyLDAPMessageListener(
     const int32_t type,
     const nsACString &cardDN,
     nsIArray* modArray,
     const nsACString &newRDN,
     const nsACString &newBaseDN,
     nsILDAPURL* directoryUrl,
--- a/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp
+++ b/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp
@@ -69,17 +69,17 @@ protected:
   bool mCanceled;
   bool mWaitingForPrevQueryToFinish;
 
   nsCOMPtr<nsIMutableArray> mServerSearchControls;
   nsCOMPtr<nsIMutableArray> mClientSearchControls;
 };
 
 
-NS_IMPL_ISUPPORTS1(nsAbQueryLDAPMessageListener, nsILDAPMessageListener)
+NS_IMPL_ISUPPORTS(nsAbQueryLDAPMessageListener, nsILDAPMessageListener)
 
 nsAbQueryLDAPMessageListener::nsAbQueryLDAPMessageListener(
         nsIAbDirectoryQueryResultListener *resultListener,
         nsILDAPURL* directoryUrl,
         nsILDAPURL* searchUrl,
         nsILDAPConnection* connection,
         nsIAbDirectoryQueryArguments* queryArguments,
         nsIMutableArray* serverSearchControls,
@@ -286,17 +286,17 @@ nsresult nsAbQueryLDAPMessageListener::O
       nsIAbDirectoryQueryResultListener::queryResultComplete, 0);
 
   return mResultListener->OnQueryResult(
       nsIAbDirectoryQueryResultListener::queryResultError, errorCode);
 }
 
 // nsAbLDAPDirectoryQuery
 
-NS_IMPL_ISUPPORTS2(nsAbLDAPDirectoryQuery, nsIAbDirectoryQuery,
+NS_IMPL_ISUPPORTS(nsAbLDAPDirectoryQuery, nsIAbDirectoryQuery,
                               nsIAbDirectoryQueryResultListener)
 
 nsAbLDAPDirectoryQuery::nsAbLDAPDirectoryQuery() :
     mInitialized(false)
 {
 }
 
 nsAbLDAPDirectoryQuery::~nsAbLDAPDirectoryQuery()
--- a/mailnews/addrbook/src/nsAbLDAPReplicationData.cpp
+++ b/mailnews/addrbook/src/nsAbLDAPReplicationData.cpp
@@ -11,17 +11,17 @@
 #include "nsAbLDAPReplicationQuery.h"
 #include "nsILDAPErrors.h"
 #include "nsComponentManagerUtils.h"
 #include "nsMsgUtils.h"
 
 // once bug # 101252 gets fixed, this should be reverted back to be non threadsafe
 // implementation is not really thread safe since each object should exist 
 // independently along with its related independent nsAbLDAPReplicationQuery object.
-NS_IMPL_ISUPPORTS2(nsAbLDAPProcessReplicationData, nsIAbLDAPProcessReplicationData, nsILDAPMessageListener)
+NS_IMPL_ISUPPORTS(nsAbLDAPProcessReplicationData, nsIAbLDAPProcessReplicationData, nsILDAPMessageListener)
 
 nsAbLDAPProcessReplicationData::nsAbLDAPProcessReplicationData() :
   nsAbLDAPListenerBase(),
   mState(kIdle),
   mProtocol(-1),
   mCount(0),
   mDBOpen(false),
   mInitialized(false)
--- a/mailnews/addrbook/src/nsAbLDAPReplicationQuery.cpp
+++ b/mailnews/addrbook/src/nsAbLDAPReplicationQuery.cpp
@@ -11,17 +11,17 @@
 #include "nsILDAPURL.h"
 #include "nsAbBaseCID.h"
 #include "nsAbUtils.h"
 #include "nsDirPrefs.h"
 #include "prmem.h"
 #include "nsComponentManagerUtils.h"
 #include "nsMsgUtils.h"
 
-NS_IMPL_ISUPPORTS1(nsAbLDAPReplicationQuery,
+NS_IMPL_ISUPPORTS(nsAbLDAPReplicationQuery,
                               nsIAbLDAPReplicationQuery)
 
 nsAbLDAPReplicationQuery::nsAbLDAPReplicationQuery()
     :  mInitialized(false)
 {
 }
 
 nsresult nsAbLDAPReplicationQuery::InitLDAPData()
--- a/mailnews/addrbook/src/nsAbLDAPReplicationService.cpp
+++ b/mailnews/addrbook/src/nsAbLDAPReplicationService.cpp
@@ -12,17 +12,17 @@
 #include "nsServiceManagerUtils.h"
 
 // XXX Change log replication doesn't work. Bug 311632 should fix it.
 //#include "nsAbLDAPChangeLogQuery.h"
 #include "nsIAbLDAPReplicationData.h"
 
 /*** implementation of the service ******/
 
-NS_IMPL_ISUPPORTS1(nsAbLDAPReplicationService, nsIAbLDAPReplicationService)
+NS_IMPL_ISUPPORTS(nsAbLDAPReplicationService, nsIAbLDAPReplicationService)
 
 nsAbLDAPReplicationService::nsAbLDAPReplicationService() 
     : mReplicating(false)
 {
 }
 
 nsAbLDAPReplicationService::~nsAbLDAPReplicationService()
 {
--- a/mailnews/addrbook/src/nsAbLDIFService.cpp
+++ b/mailnews/addrbook/src/nsAbLDIFService.cpp
@@ -12,17 +12,17 @@
 #include "mdb.h"
 #include "plstr.h"
 #include "prmem.h"
 #include "prprf.h"
 #include "nsCRTGlue.h"
 
 #include <ctype.h>
 
-NS_IMPL_ISUPPORTS1(nsAbLDIFService, nsIAbLDIFService)
+NS_IMPL_ISUPPORTS(nsAbLDIFService, nsIAbLDIFService)
 
 // If we get a line longer than 32K it's just toooooo bad!
 #define kTextAddressBufferSz    (64 * 1024)
 
 nsAbLDIFService::nsAbLDIFService()
 {
   mStoreLocAsHome = false;
   mLFCount = 0;
--- a/mailnews/addrbook/src/nsAbMDBDirFactory.cpp
+++ b/mailnews/addrbook/src/nsAbMDBDirFactory.cpp
@@ -13,17 +13,17 @@
 #include "nsAbMDBDirFactory.h"
 #include "nsIAddrDBListener.h"
 #include "nsIAddrDatabase.h"
 #include "nsEnumeratorUtils.h"
 #include "nsIMutableArray.h"
 #include "nsArrayUtils.h"
 #include "nsAbBaseCID.h"
 
-NS_IMPL_ISUPPORTS1(nsAbMDBDirFactory, nsIAbDirFactory)
+NS_IMPL_ISUPPORTS(nsAbMDBDirFactory, nsIAbDirFactory)
 
 nsAbMDBDirFactory::nsAbMDBDirFactory()
 {
 }
 
 nsAbMDBDirFactory::~nsAbMDBDirFactory()
 {
 }
--- a/mailnews/addrbook/src/nsAbMDBDirProperty.cpp
+++ b/mailnews/addrbook/src/nsAbMDBDirProperty.cpp
@@ -21,17 +21,17 @@ nsAbMDBDirProperty::nsAbMDBDirProperty(v
   m_dbRowID = 0;
 }
 
 nsAbMDBDirProperty::~nsAbMDBDirProperty(void)
 { 
 }
 
 
-NS_IMPL_ISUPPORTS_INHERITED3(nsAbMDBDirProperty, nsAbDirProperty,
+NS_IMPL_ISUPPORTS_INHERITED(nsAbMDBDirProperty, nsAbDirProperty,
                              nsIAbDirectory,
                              nsISupportsWeakReference, nsIAbMDBDirectory)
 
 ////////////////////////////////////////////////////////////////////////////////
 
 
 
 // nsIAbMDBDirectory attributes
--- a/mailnews/addrbook/src/nsAbMDBDirectory.cpp
+++ b/mailnews/addrbook/src/nsAbMDBDirectory.cpp
@@ -37,17 +37,17 @@ nsAbMDBDirectory::nsAbMDBDirectory(void)
 
 nsAbMDBDirectory::~nsAbMDBDirectory(void)
 {
   if (mDatabase) {
     mDatabase->RemoveListener(this);
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED3(nsAbMDBDirectory, nsAbMDBDirProperty,
+NS_IMPL_ISUPPORTS_INHERITED(nsAbMDBDirectory, nsAbMDBDirProperty,
                              nsIAbDirSearchListener,
                              nsIAbDirectorySearch,
                              nsIAddrDBListener)
 
 NS_IMETHODIMP nsAbMDBDirectory::Init(const char *aUri)
 {
   // We need to ensure  that the m_DirPrefId is initialized properly
   nsDependentCString uri(aUri);
--- a/mailnews/addrbook/src/nsAbManager.cpp
+++ b/mailnews/addrbook/src/nsAbManager.cpp
@@ -123,17 +123,17 @@ const ExportAttributesTableStruct EXPORT
 nsAbManager::nsAbManager()
 {
 }
 
 nsAbManager::~nsAbManager()
 {
 }
 
-NS_IMPL_ISUPPORTS3(nsAbManager, nsIAbManager, nsICommandLineHandler,
+NS_IMPL_ISUPPORTS(nsAbManager, nsIAbManager, nsICommandLineHandler,
   nsIObserver)
 
 nsresult nsAbManager::Init()
 {
   NS_ENSURE_TRUE(NS_IsMainThread(), NS_ERROR_FAILURE);
 
   nsCOMPtr<nsIObserverService> observerService =
     mozilla::services::GetObserverService();
--- a/mailnews/addrbook/src/nsAbOSXCard.mm
+++ b/mailnews/addrbook/src/nsAbOSXCard.mm
@@ -7,17 +7,17 @@
 #include "nsAbOSXDirectory.h"
 #include "nsAbOSXUtils.h"
 #include "nsAutoPtr.h"
 #include "nsIAbManager.h"
 #include "nsServiceManagerUtils.h"
 
 #include <AddressBook/AddressBook.h>
 
-NS_IMPL_ISUPPORTS_INHERITED1(nsAbOSXCard,
+NS_IMPL_ISUPPORTS_INHERITED(nsAbOSXCard,
                              nsAbCardProperty,
                              nsIAbOSXCard)
 
 #ifdef DEBUG
 static ABPropertyType
 GetPropertType(ABRecord *aCard, NSString *aProperty)
 {
   ABPropertyType propertyType = kABErrorInProperty;
--- a/mailnews/addrbook/src/nsAbOSXDirFactory.cpp
+++ b/mailnews/addrbook/src/nsAbOSXDirFactory.cpp
@@ -7,17 +7,17 @@
 #include "nsAbBaseCID.h"
 #include "nsEnumeratorUtils.h"
 #include "nsIAbDirectory.h"
 #include "nsIAbManager.h"
 #include "nsStringGlue.h"
 #include "nsServiceManagerUtils.h"
 #include "nsAbOSXDirectory.h"
 
-NS_IMPL_ISUPPORTS1(nsAbOSXDirFactory, nsIAbDirFactory)
+NS_IMPL_ISUPPORTS(nsAbOSXDirFactory, nsIAbDirFactory)
 
 NS_IMETHODIMP
 nsAbOSXDirFactory::GetDirectories(const nsAString &aDirName,
                                   const nsACString &aURI,
                                   const nsACString &aPrefName,
                                   nsISimpleEnumerator **aDirectories)
 {
   NS_ENSURE_ARG_POINTER(aDirectories);
--- a/mailnews/addrbook/src/nsAbOSXDirectory.mm
+++ b/mailnews/addrbook/src/nsAbOSXDirectory.mm
@@ -446,17 +446,17 @@ nsAbOSXDirectory::nsAbOSXDirectory()
 nsAbOSXDirectory::~nsAbOSXDirectory()
 {
   if (--sObserverCount == 0) {
     [[NSNotificationCenter defaultCenter] removeObserver:sObserver];
     [sObserver release];
   }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED2(nsAbOSXDirectory,
+NS_IMPL_ISUPPORTS_INHERITED(nsAbOSXDirectory,
                              nsAbDirProperty,
                              nsIAbOSXDirectory,
                              nsIAbDirSearchListener)
 
 NS_IMETHODIMP
 nsAbOSXDirectory::Init(const char *aUri)
 {
   nsresult rv;
--- a/mailnews/addrbook/src/nsAbOutlookDirFactory.cpp
+++ b/mailnews/addrbook/src/nsAbOutlookDirFactory.cpp
@@ -18,17 +18,17 @@
 #ifdef PR_LOGGING
 static PRLogModuleInfo* gAbOutlookDirFactoryLog
     = PR_NewLogModule("nsAbOutlookDirFactoryLog");
 #endif
 
 #define PRINTF(args) PR_LOG(nsAbOutlookDirFactoryLog, PR_LOG_DEBUG, args)
 
 
-NS_IMPL_ISUPPORTS1(nsAbOutlookDirFactory, nsIAbDirFactory)
+NS_IMPL_ISUPPORTS(nsAbOutlookDirFactory, nsIAbDirFactory)
 
 nsAbOutlookDirFactory::nsAbOutlookDirFactory(void)
 {
 }
 
 nsAbOutlookDirFactory::~nsAbOutlookDirFactory(void)
 {
 }
--- a/mailnews/addrbook/src/nsAbOutlookDirectory.cpp
+++ b/mailnews/addrbook/src/nsAbOutlookDirectory.cpp
@@ -43,17 +43,17 @@ nsAbOutlookDirectory::nsAbOutlookDirecto
 }
 
 nsAbOutlookDirectory::~nsAbOutlookDirectory(void)
 {
     if (mMapiData) { delete mMapiData ; }
     if (mProtector) { PR_DestroyLock(mProtector) ; }
 }
 
-NS_IMPL_ISUPPORTS_INHERITED3(nsAbOutlookDirectory, nsAbDirProperty,
+NS_IMPL_ISUPPORTS_INHERITED(nsAbOutlookDirectory, nsAbDirProperty,
                              nsIAbDirectoryQuery, nsIAbDirectorySearch,
                              nsIAbDirSearchListener)
 
 NS_IMETHODIMP nsAbOutlookDirectory::Init(const char *aUri)
 {
   nsresult rv = nsAbDirProperty::Init(aUri);
   NS_ENSURE_SUCCESS(rv, rv);
 
--- a/mailnews/addrbook/src/nsAbView.cpp
+++ b/mailnews/addrbook/src/nsAbView.cpp
@@ -37,17 +37,17 @@ using namespace mozilla;
 
 #define PREF_MAIL_ADDR_BOOK_LASTNAMEFIRST "mail.addr_book.lastnamefirst"
 #define PREF_MAIL_ADDR_BOOK_DISPLAYNAME_AUTOGENERATION "mail.addr_book.displayName.autoGeneration"
 #define PREF_MAIL_ADDR_BOOK_DISPLAYNAME_LASTNAMEFIRST "mail.addr_book.displayName.lastnamefirst"
 
 // Also, our default primary sort
 #define GENERATED_NAME_COLUMN_ID "GeneratedName" 
 
-NS_IMPL_ISUPPORTS4(nsAbView, nsIAbView, nsITreeView, nsIAbListener, nsIObserver)
+NS_IMPL_ISUPPORTS(nsAbView, nsIAbView, nsITreeView, nsIAbListener, nsIObserver)
 
 nsAbView::nsAbView() : mInitialized(false),
                        mSuppressSelectionChange(false),
                        mSuppressCountChange(false),
                        mGeneratedNameFormat(0)
 {
 }
 
--- a/mailnews/addrbook/src/nsAddbookProtocolHandler.cpp
+++ b/mailnews/addrbook/src/nsAddbookProtocolHandler.cpp
@@ -30,17 +30,17 @@ nsAddbookProtocolHandler::nsAddbookProto
 {
   mAddbookOperation = nsIAddbookUrlOperation::InvalidUrl;
 }
 
 nsAddbookProtocolHandler::~nsAddbookProtocolHandler()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsAddbookProtocolHandler, nsIProtocolHandler)
+NS_IMPL_ISUPPORTS(nsAddbookProtocolHandler, nsIProtocolHandler)
 
 NS_IMETHODIMP nsAddbookProtocolHandler::GetScheme(nsACString &aScheme)
 {
 	aScheme = "addbook";
 	return NS_OK; 
 }
 
 NS_IMETHODIMP nsAddbookProtocolHandler::GetDefaultPort(int32_t *aDefaultPort)
--- a/mailnews/addrbook/src/nsAddbookUrl.cpp
+++ b/mailnews/addrbook/src/nsAddbookUrl.cpp
@@ -20,17 +20,17 @@ nsAddbookUrl::nsAddbookUrl()
 
   mOperationType = nsIAddbookUrlOperation::InvalidUrl; 
 }
 
 nsAddbookUrl::~nsAddbookUrl()
 {
 }
 
-NS_IMPL_ISUPPORTS2(nsAddbookUrl, nsIAddbookUrl, nsIURI)
+NS_IMPL_ISUPPORTS(nsAddbookUrl, nsIAddbookUrl, nsIURI)
 
 NS_IMETHODIMP 
 nsAddbookUrl::SetSpec(const nsACString &aSpec)
 {
   nsresult rv = m_baseURL->SetSpec(aSpec);
   NS_ENSURE_SUCCESS(rv, rv);
   return ParseUrl();
 }
--- a/mailnews/addrbook/src/nsAddrDatabase.cpp
+++ b/mailnews/addrbook/src/nsAddrDatabase.cpp
@@ -146,17 +146,17 @@ nsAddrDatabase::~nsAddrDatabase()
     if (m_mdbPabTable)
       m_mdbPabTable->Release();
     if (m_mdbDeletedCardsTable)
       m_mdbDeletedCardsTable->Release();
     NS_IF_RELEASE(m_mdbStore);
     NS_IF_RELEASE(m_mdbEnv);
 }
 
-NS_IMPL_ISUPPORTS2(nsAddrDatabase, nsIAddrDatabase, nsIAddrDBAnnouncer)
+NS_IMPL_ISUPPORTS(nsAddrDatabase, nsIAddrDatabase, nsIAddrDBAnnouncer)
 
 NS_IMETHODIMP nsAddrDatabase::AddListener(nsIAddrDBListener *listener)
 {
   NS_ENSURE_ARG_POINTER(listener);
   return m_ChangeListeners.AppendElement(listener) ? NS_OK : NS_ERROR_FAILURE;
 }
 
 NS_IMETHODIMP nsAddrDatabase::RemoveListener(nsIAddrDBListener *listener)
@@ -2557,17 +2557,17 @@ void nsAddrDBEnumerator::Clear()
 {
   mRowCursor = nullptr;
   mCurrentRow = nullptr;
   mDbTable = nullptr;
   if (mDb)
     mDb->RemoveListener(this);
 }
 
-NS_IMPL_ISUPPORTS2(nsAddrDBEnumerator, nsISimpleEnumerator, nsIAddrDBListener)
+NS_IMPL_ISUPPORTS(nsAddrDBEnumerator, nsISimpleEnumerator, nsIAddrDBListener)
 
 NS_IMETHODIMP
 nsAddrDBEnumerator::HasMoreElements(bool *aResult)
 {
   NS_ENSURE_ARG_POINTER(aResult);
     *aResult = false;
 
     if (!mDbTable || !mDb->GetEnv())
@@ -2711,17 +2711,17 @@ nsListAddressEnumerator::nsListAddressEn
       mDbTable(aDb->GetPabTable()),
       mListRowID(aRowID),
       mAddressPos(0)
 {
     mDb->GetListRowByRowID(mListRowID, getter_AddRefs(mListRow));
     mAddressTotal = aDb->GetListAddressTotal(mListRow);
 }
 
-NS_IMPL_ISUPPORTS1(nsListAddressEnumerator, nsISimpleEnumerator)
+NS_IMPL_ISUPPORTS(nsListAddressEnumerator, nsISimpleEnumerator)
 
 NS_IMETHODIMP
 nsListAddressEnumerator::HasMoreElements(bool *aResult)
 {
   NS_ENSURE_ARG_POINTER(aResult);
 
   *aResult = false;
 
--- a/mailnews/addrbook/src/nsDirPrefs.cpp
+++ b/mailnews/addrbook/src/nsDirPrefs.cpp
@@ -76,17 +76,17 @@ nsVoidArray *dir_ServerList = nullptr;
 class DirPrefObserver : public nsSupportsWeakReference,
                         public nsIObserver
 {
 public:
   NS_DECL_ISUPPORTS
   NS_DECL_NSIOBSERVER
 };
 
-NS_IMPL_ISUPPORTS2(DirPrefObserver, nsISupportsWeakReference, nsIObserver)
+NS_IMPL_ISUPPORTS(DirPrefObserver, nsISupportsWeakReference, nsIObserver)
 
 NS_IMETHODIMP DirPrefObserver::Observe(nsISupports *aSubject, const char *aTopic, const char16_t *aData)
 {
   nsCOMPtr<nsIPrefBranch> prefBranch(do_QueryInterface(aSubject));
   nsCString strPrefName;
   strPrefName.Assign(NS_ConvertUTF16toUTF8(aData));
   const char *prefname = strPrefName.get();
 
--- a/mailnews/addrbook/src/nsMsgVCardService.cpp
+++ b/mailnews/addrbook/src/nsMsgVCardService.cpp
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsMsgVCardService.h"
 #include "nsVCard.h"
 #include "prmem.h"
 #include "plstr.h"
     
-NS_IMPL_ISUPPORTS1(nsMsgVCardService, nsIMsgVCardService)
+NS_IMPL_ISUPPORTS(nsMsgVCardService, nsIMsgVCardService)
 
 nsMsgVCardService::nsMsgVCardService()
 {
 }
 
 nsMsgVCardService::~nsMsgVCardService()
 {
 }
--- a/mailnews/base/search/src/nsMsgFilter.cpp
+++ b/mailnews/base/search/src/nsMsgFilter.cpp
@@ -35,17 +35,17 @@ static const char *kWhitespace = "\b\t\r
 nsMsgRuleAction::nsMsgRuleAction()
 {
 }
 
 nsMsgRuleAction::~nsMsgRuleAction()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgRuleAction, nsIMsgRuleAction)
+NS_IMPL_ISUPPORTS(nsMsgRuleAction, nsIMsgRuleAction)
 
 NS_IMPL_GETSET(nsMsgRuleAction, Type, nsMsgRuleActionType, m_type)
 
 NS_IMETHODIMP nsMsgRuleAction::SetPriority(nsMsgPriorityValue aPriority)
 {
   NS_ENSURE_TRUE(m_type == nsMsgFilterAction::ChangePriority,
                 NS_ERROR_ILLEGAL_VALUE);
   m_priority = aPriority;
@@ -178,17 +178,17 @@ nsMsgFilter::nsMsgFilter():
   m_type = nsMsgFilterType::InboxRule | nsMsgFilterType::Manual;
 }
 
 nsMsgFilter::~nsMsgFilter()
 {
   delete m_expressionTree;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgFilter, nsIMsgFilter)
+NS_IMPL_ISUPPORTS(nsMsgFilter, nsIMsgFilter)
 
 NS_IMPL_GETSET(nsMsgFilter, FilterType, nsMsgFilterTypeType, m_type)
 NS_IMPL_GETSET(nsMsgFilter, Enabled, bool, m_enabled)
 NS_IMPL_GETSET(nsMsgFilter, Temporary, bool, m_temporary)
 NS_IMPL_GETSET(nsMsgFilter, Unparseable, bool, m_unparseable)
 
 NS_IMETHODIMP nsMsgFilter::GetFilterName(nsAString &name)
 {
--- a/mailnews/base/search/src/nsMsgFilterList.cpp
+++ b/mailnews/base/search/src/nsMsgFilterList.cpp
@@ -39,17 +39,17 @@ nsMsgFilterList::nsMsgFilterList() :
   m_loggingEnabled = false;
   m_startWritingToBuffer = false;
   m_temporaryList = false;
   m_curFilter = nullptr;
 }
 
 NS_IMPL_ADDREF(nsMsgFilterList)
 NS_IMPL_RELEASE(nsMsgFilterList)
-NS_IMPL_QUERY_INTERFACE1(nsMsgFilterList, nsIMsgFilterList)
+NS_IMPL_QUERY_INTERFACE(nsMsgFilterList, nsIMsgFilterList)
 
 NS_IMETHODIMP nsMsgFilterList::CreateFilter(const nsAString &name,class nsIMsgFilter **aFilter)
 {
   NS_ENSURE_ARG_POINTER(aFilter);
 
   nsMsgFilter *filter = new nsMsgFilter;
   NS_ENSURE_TRUE(filter, NS_ERROR_OUT_OF_MEMORY);
 
--- a/mailnews/base/search/src/nsMsgFilterService.cpp
+++ b/mailnews/base/search/src/nsMsgFilterService.cpp
@@ -38,17 +38,17 @@
 #include "nsMsgMessageFlags.h"
 #include "nsIMsgWindow.h"
 #include "nsIMsgSearchCustomTerm.h"
 #include "nsIMsgSearchTerm.h"
 #include "nsIMsgThread.h"
 #include "nsAutoPtr.h"
 #include "nsIMsgFilter.h"
 
-NS_IMPL_ISUPPORTS1(nsMsgFilterService, nsIMsgFilterService)
+NS_IMPL_ISUPPORTS(nsMsgFilterService, nsIMsgFilterService)
 
 nsMsgFilterService::nsMsgFilterService()
 {
 }
 
 nsMsgFilterService::~nsMsgFilterService()
 {
 }
@@ -269,17 +269,17 @@ protected:
   uint32_t                    m_numFilters;
   uint32_t                    m_numFolders;
   nsTArray<nsMsgKey>          m_searchHits;
   nsCOMPtr<nsIMutableArray>   m_searchHitHdrs;
   nsCOMPtr<nsIMsgSearchSession> m_searchSession;
   uint32_t                    m_nextAction; // next filter action to perform
 };
 
-NS_IMPL_ISUPPORTS3(nsMsgFilterAfterTheFact, nsIUrlListener, nsIMsgSearchNotify, nsIMsgCopyServiceListener)
+NS_IMPL_ISUPPORTS(nsMsgFilterAfterTheFact, nsIUrlListener, nsIMsgSearchNotify, nsIMsgCopyServiceListener)
 
 nsMsgFilterAfterTheFact::nsMsgFilterAfterTheFact(nsIMsgWindow *aMsgWindow, nsIMsgFilterList *aFilterList, nsIArray *aFolderList)
 {
   m_curFilterIndex = m_curFolderIndex = m_nextAction = 0;
   m_msgWindow = aMsgWindow;
   m_filters = aFilterList;
   m_folders = aFolderList;
   m_filters->GetFilterCount(&m_numFilters);
--- a/mailnews/base/search/src/nsMsgLocalSearch.cpp
+++ b/mailnews/base/search/src/nsMsgLocalSearch.cpp
@@ -223,17 +223,17 @@ void nsMsgSearchBoolExpression::Generate
 }
 
 
 //-----------------------------------------------------------------------------
 //---------------- Adapter class for searching offline folders ----------------
 //-----------------------------------------------------------------------------
 
 
-NS_IMPL_ISUPPORTS_INHERITED1(nsMsgSearchOfflineMail, nsMsgSearchAdapter, nsIUrlListener)
+NS_IMPL_ISUPPORTS_INHERITED(nsMsgSearchOfflineMail, nsMsgSearchAdapter, nsIUrlListener)
 
 nsMsgSearchOfflineMail::nsMsgSearchOfflineMail (nsIMsgSearchScopeTerm *scope, nsISupportsArray *termList) : nsMsgSearchAdapter (scope, termList)
 {
 }
 
 nsMsgSearchOfflineMail::~nsMsgSearchOfflineMail ()
 {
   // Database should have been closed when the scope term finished.
--- a/mailnews/base/search/src/nsMsgSearchAdapter.cpp
+++ b/mailnews/base/search/src/nsMsgSearchAdapter.cpp
@@ -74,17 +74,17 @@ NS_IMETHODIMP nsMsgSearchAdapter::Modify
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 NS_IMETHODIMP nsMsgSearchAdapter::OpenResultElement(nsMsgResultElement *)
 {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgSearchAdapter, nsIMsgSearchAdapter)
+NS_IMPL_ISUPPORTS(nsMsgSearchAdapter, nsIMsgSearchAdapter)
 
 nsMsgSearchAdapter::nsMsgSearchAdapter(nsIMsgSearchScopeTerm *scope, nsISupportsArray *searchTerms)
   : m_searchTerms(searchTerms)
 {
   m_scope = scope;
 }
 
 nsMsgSearchAdapter::~nsMsgSearchAdapter()
@@ -787,17 +787,17 @@ nsMsgSearchValidityTable::nsMsgSearchVal
       SetValidButNotShown (i,j, false);
     }
   m_numAvailAttribs = 0;   // # of attributes marked with at least one available operator
   // assume default is Subject, which it is for mail and news search
   // it's not for LDAP, so we'll call SetDefaultAttrib()
   m_defaultAttrib = nsMsgSearchAttrib::Subject;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgSearchValidityTable, nsIMsgSearchValidityTable)
+NS_IMPL_ISUPPORTS(nsMsgSearchValidityTable, nsIMsgSearchValidityTable)
 
 
 nsresult
 nsMsgSearchValidityTable::GetNumAvailAttribs(int32_t *aResult)
 {
   m_numAvailAttribs = 0;
   for (int i = 0; i < nsMsgSearchAttrib::kNumMsgSearchAttributes; i++)
     for (int j = 0; j < nsMsgSearchOp::kNumMsgSearchOperators; j++) {
@@ -939,17 +939,17 @@ nsMsgSearchValidityManager::nsMsgSearchV
 }
 
 
 nsMsgSearchValidityManager::~nsMsgSearchValidityManager ()
 {
     // tables released by nsCOMPtr
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgSearchValidityManager, nsIMsgSearchValidityManager)
+NS_IMPL_ISUPPORTS(nsMsgSearchValidityManager, nsIMsgSearchValidityManager)
 
 //-----------------------------------------------------------------------------
 // Bottleneck accesses to the objects so we can allocate and initialize them
 // lazily. This way, there's no heap overhead for the validity tables until the
 // user actually searches that scope.
 //-----------------------------------------------------------------------------
 
 NS_IMETHODIMP nsMsgSearchValidityManager::GetTable (int whichTable, nsIMsgSearchValidityTable **ppOutTable)
--- a/mailnews/base/search/src/nsMsgSearchSession.cpp
+++ b/mailnews/base/search/src/nsMsgSearchSession.cpp
@@ -17,17 +17,17 @@
 #include "nsIMsgMailSession.h"
 #include "nsMsgBaseCID.h"
 #include "nsMsgFolderFlags.h"
 #include "nsMsgLocalSearch.h"
 #include "nsComponentManagerUtils.h"
 #include "nsServiceManagerUtils.h"
 #include "nsAutoPtr.h"
 
-NS_IMPL_ISUPPORTS3(nsMsgSearchSession, nsIMsgSearchSession, nsIUrlListener,
+NS_IMPL_ISUPPORTS(nsMsgSearchSession, nsIMsgSearchSession, nsIUrlListener,
                    nsISupportsWeakReference)
 
 nsMsgSearchSession::nsMsgSearchSession()
 {
   m_sortAttribute = nsMsgSearchAttrib::Sender;
   m_idxRunningScope = 0;
   m_urlQueueIndex = 0;
   m_handlingError = false;
--- a/mailnews/base/search/src/nsMsgSearchTerm.cpp
+++ b/mailnews/base/search/src/nsMsgSearchTerm.cpp
@@ -392,17 +392,17 @@ nsMsgSearchTerm::nsMsgSearchTerm (
 
 
 nsMsgSearchTerm::~nsMsgSearchTerm ()
 {
   if (IS_STRING_ATTRIBUTE (m_attribute) && m_value.string)
     NS_Free(m_value.string);
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgSearchTerm, nsIMsgSearchTerm)
+NS_IMPL_ISUPPORTS(nsMsgSearchTerm, nsIMsgSearchTerm)
 
 
 // Perhaps we could find a better place for this?
 // Caller needs to free.
 /* static */char *nsMsgSearchTerm::EscapeQuotesInStr(const char *str)
 {
   int  numQuotes = 0;
   for (const char *strPtr = str; *strPtr; strPtr++)
@@ -1821,17 +1821,17 @@ nsMsgSearchScopeTerm::nsMsgSearchScopeTe
 
 nsMsgSearchScopeTerm::~nsMsgSearchScopeTerm ()
 {
   if (m_inputStream)
     m_inputStream->Close();
   m_inputStream = nullptr;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgSearchScopeTerm, nsIMsgSearchScopeTerm)
+NS_IMPL_ISUPPORTS(nsMsgSearchScopeTerm, nsIMsgSearchScopeTerm)
 
 NS_IMETHODIMP
 nsMsgSearchScopeTerm::GetFolder(nsIMsgFolder **aResult)
 {
     NS_IF_ADDREF(*aResult = m_folder);
     return NS_OK;
 }
 
--- a/mailnews/base/search/src/nsMsgSearchValue.cpp
+++ b/mailnews/base/search/src/nsMsgSearchValue.cpp
@@ -19,17 +19,17 @@ nsMsgSearchValueImpl::nsMsgSearchValueIm
 }
 
 nsMsgSearchValueImpl::~nsMsgSearchValueImpl()
 {
   if (IS_STRING_ATTRIBUTE(mValue.attribute))
     NS_Free(mValue.string);
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgSearchValueImpl, nsIMsgSearchValue)
+NS_IMPL_ISUPPORTS(nsMsgSearchValueImpl, nsIMsgSearchValue)
 
 NS_IMPL_GETSET(nsMsgSearchValueImpl, Priority, nsMsgPriorityValue, mValue.u.priority)
 NS_IMPL_GETSET(nsMsgSearchValueImpl, Status, uint32_t, mValue.u.msgStatus)
 NS_IMPL_GETSET(nsMsgSearchValueImpl, Size, uint32_t, mValue.u.size)
 NS_IMPL_GETSET(nsMsgSearchValueImpl, MsgKey, nsMsgKey, mValue.u.key)
 NS_IMPL_GETSET(nsMsgSearchValueImpl, Age, int32_t, mValue.u.age)
 NS_IMPL_GETSET(nsMsgSearchValueImpl, Date, PRTime, mValue.u.date)
 NS_IMPL_GETSET(nsMsgSearchValueImpl, Attrib, nsMsgSearchAttribValue, mValue.attribute)
--- a/mailnews/base/src/MailNewsDLF.cpp
+++ b/mailnews/base/src/MailNewsDLF.cpp
@@ -12,17 +12,17 @@
 #include "nsIServiceManager.h"
 #include "nsIStreamConverterService.h"
 #include "nsIStreamListener.h"
 #include "nsNetCID.h"
 #include "nsMsgUtils.h"
 
 namespace mozilla {
 namespace mailnews {
-NS_IMPL_ISUPPORTS1(MailNewsDLF, nsIDocumentLoaderFactory)
+NS_IMPL_ISUPPORTS(MailNewsDLF, nsIDocumentLoaderFactory)
 
 MailNewsDLF::MailNewsDLF()
 {
 }
 
 MailNewsDLF::~MailNewsDLF()
 {
 }
--- a/mailnews/base/src/nsCidProtocolHandler.cpp
+++ b/mailnews/base/src/nsCidProtocolHandler.cpp
@@ -12,17 +12,17 @@
 nsCidProtocolHandler::nsCidProtocolHandler()
 {
 }
 
 nsCidProtocolHandler::~nsCidProtocolHandler()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsCidProtocolHandler, nsIProtocolHandler)
+NS_IMPL_ISUPPORTS(nsCidProtocolHandler, nsIProtocolHandler)
 
 NS_IMETHODIMP nsCidProtocolHandler::GetScheme(nsACString & aScheme)
 {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 NS_IMETHODIMP nsCidProtocolHandler::GetDefaultPort(int32_t *aDefaultPort)
 {
--- a/mailnews/base/src/nsCopyMessageStreamListener.cpp
+++ b/mailnews/base/src/nsCopyMessageStreamListener.cpp
@@ -7,17 +7,17 @@
 #include "nsIMsgMailNewsUrl.h"
 #include "nsIMailboxUrl.h"
 #include "nsIMsgHdr.h"
 #include "nsIMsgImapMailFolder.h"
 #include "nsIMsgMessageService.h"
 #include "nsMsgUtils.h"
 #include "netCore.h"
 
-NS_IMPL_ISUPPORTS3(nsCopyMessageStreamListener, nsIStreamListener,
+NS_IMPL_ISUPPORTS(nsCopyMessageStreamListener, nsIStreamListener,
   nsIRequestObserver, nsICopyMessageStreamListener)
 
 static nsresult GetMessage(nsIURI *aURL, nsIMsgDBHdr **message)
 {
   NS_ENSURE_ARG_POINTER(message);
 
 	nsCOMPtr<nsIMsgMessageUrl> uriURL;
 	nsresult rv;
--- a/mailnews/base/src/nsMailDirProvider.cpp
+++ b/mailnews/base/src/nsMailDirProvider.cpp
@@ -31,17 +31,17 @@ nsMailDirProvider::EnsureDirectory(nsIFi
   NS_ENSURE_SUCCESS(rv, rv);
 
   if (!exists)
     rv = aDirectory->Create(nsIFile::DIRECTORY_TYPE, 0700);
 
   return rv;
 }
 
-NS_IMPL_ISUPPORTS2(nsMailDirProvider,
+NS_IMPL_ISUPPORTS(nsMailDirProvider,
                    nsIDirectoryServiceProvider,
                    nsIDirectoryServiceProvider2)
 
 NS_IMETHODIMP
 nsMailDirProvider::GetFile(const char *aKey, bool *aPersist,
                            nsIFile **aResult)
 {
   // NOTE: This function can be reentrant through the NS_GetSpecialDirectory
@@ -125,17 +125,17 @@ nsMailDirProvider::GetFiles(const char *
 
   rv = NS_NewUnionEnumerator(getter_AddRefs(combinedEnumerator), directoryEnumerator, extensionsEnum);
   NS_ENSURE_SUCCESS(rv, rv);
 
   NS_IF_ADDREF(*aResult = new AppendingEnumerator(combinedEnumerator));
   return NS_SUCCESS_AGGREGATE_RESULT;
 }
 
-NS_IMPL_ISUPPORTS1(nsMailDirProvider::AppendingEnumerator,
+NS_IMPL_ISUPPORTS(nsMailDirProvider::AppendingEnumerator,
                    nsISimpleEnumerator)
 
 NS_IMETHODIMP
 nsMailDirProvider::AppendingEnumerator::HasMoreElements(bool *aResult)
 {
   *aResult = mNext || mNextWithLocale ? true : false;
   return NS_OK;
 }
--- a/mailnews/base/src/nsMessenger.cpp
+++ b/mailnews/base/src/nsMessenger.cpp
@@ -218,17 +218,17 @@ nsMessenger::nsMessenger()
   //  InitializeFolderRoot();
 }
 
 nsMessenger::~nsMessenger()
 {
 }
 
 
-NS_IMPL_ISUPPORTS3(nsMessenger, nsIMessenger, nsISupportsWeakReference, nsIFolderListener)
+NS_IMPL_ISUPPORTS(nsMessenger, nsIMessenger, nsISupportsWeakReference, nsIFolderListener)
 
 NS_IMETHODIMP nsMessenger::SetWindow(nsIDOMWindow *aWin, nsIMsgWindow *aMsgWindow)
 {
   nsresult rv;
 
   nsCOMPtr<nsIMsgMailSession> mailSession =
     do_GetService(NS_MSGMAILSESSION_CONTRACTID, &rv);
   NS_ENSURE_SUCCESS(rv, rv);
@@ -1571,17 +1571,17 @@ nsSaveMsgListener::nsSaveMsgListener(nsI
 
 nsSaveMsgListener::~nsSaveMsgListener()
 {
 }
 
 //
 // nsISupports
 //
-NS_IMPL_ISUPPORTS5(nsSaveMsgListener,
+NS_IMPL_ISUPPORTS(nsSaveMsgListener,
                    nsIUrlListener,
                    nsIMsgCopyServiceListener,
                    nsIStreamListener,
                    nsIRequestObserver,
                    nsICancelable)
 
 NS_IMETHODIMP
 nsSaveMsgListener::Cancel(nsresult status)
@@ -2507,17 +2507,17 @@ public:
   bool mWrittenExtra;
   bool mDetaching;
   nsTArray<nsCString> mDetachedFileUris;
 };
 
 //
 // nsISupports
 //
-NS_IMPL_ISUPPORTS4(nsDelAttachListener,
+NS_IMPL_ISUPPORTS(nsDelAttachListener,
                    nsIStreamListener,
                    nsIRequestObserver,
                    nsIUrlListener,
                    nsIMsgCopyServiceListener)
 
 //
 // nsIRequestObserver
 //
--- a/mailnews/base/src/nsMessengerBootstrap.cpp
+++ b/mailnews/base/src/nsMessengerBootstrap.cpp
@@ -10,17 +10,17 @@
 #include "nsIMsgFolder.h"
 #include "nsIWindowWatcher.h"
 #include "nsMsgUtils.h"
 #include "nsISupportsPrimitives.h"
 #include "nsIDOMWindow.h"
 #include "nsComponentManagerUtils.h"
 #include "nsServiceManagerUtils.h"
 
-NS_IMPL_ISUPPORTS1(nsMessengerBootstrap, nsIMessengerWindowService)
+NS_IMPL_ISUPPORTS(nsMessengerBootstrap, nsIMessengerWindowService)
 
 nsMessengerBootstrap::nsMessengerBootstrap()
 {
 }
 
 nsMessengerBootstrap::~nsMessengerBootstrap()
 {
 }
--- a/mailnews/base/src/nsMessengerContentHandler.cpp
+++ b/mailnews/base/src/nsMessengerContentHandler.cpp
@@ -17,17 +17,17 @@
 #include "nsIURL.h"
 #include "nsServiceManagerUtils.h"
 
 nsMessengerContentHandler::nsMessengerContentHandler()
 {
 }
 
 /* the following macro actually implement addref, release and query interface for our component. */
-NS_IMPL_ISUPPORTS1(nsMessengerContentHandler, nsIContentHandler)
+NS_IMPL_ISUPPORTS(nsMessengerContentHandler, nsIContentHandler)
 
 nsMessengerContentHandler::~nsMessengerContentHandler()
 {
 }
 
 NS_IMETHODIMP nsMessengerContentHandler::HandleContent(const char * aContentType,
                                                 nsIInterfaceRequestor* aWindowContext, nsIRequest *request)
 {
--- a/mailnews/base/src/nsMessengerUnixIntegration.cpp
+++ b/mailnews/base/src/nsMessengerUnixIntegration.cpp
@@ -102,17 +102,17 @@ static void openMailWindow(const nsACStr
 nsMessengerUnixIntegration::nsMessengerUnixIntegration()
 {
   mBiffStateAtom = MsgGetAtom("BiffState");
   mNewMailReceivedAtom = MsgGetAtom("NewMailReceived");
   mAlertInProgress = false;
   mFoldersWithNewMail = do_CreateInstance(NS_ARRAY_CONTRACTID);
 }
 
-NS_IMPL_ISUPPORTS4(nsMessengerUnixIntegration, nsIFolderListener, nsIObserver,
+NS_IMPL_ISUPPORTS(nsMessengerUnixIntegration, nsIFolderListener, nsIObserver,
                    nsIMessengerOSIntegration, nsIUrlListener)
 
 nsresult
 nsMessengerUnixIntegration::Init()
 {
   nsresult rv;
 
   nsCOMPtr<nsIMsgMailSession> mailSession = do_GetService(NS_MSGMAILSESSION_CONTRACTID, &rv);
--- a/mailnews/base/src/nsMsgAccount.cpp
+++ b/mailnews/base/src/nsMsgAccount.cpp
@@ -21,17 +21,17 @@
 #include "nsIMsgAccount.h"
 #include "nsIMsgAccountManager.h"
 #include "nsServiceManagerUtils.h"
 #include "nsMemory.h"
 #include "nsComponentManagerUtils.h"
 #include "nsMsgUtils.h"
 #include "nsArrayUtils.h"
 
-NS_IMPL_ISUPPORTS1(nsMsgAccount, nsIMsgAccount)
+NS_IMPL_ISUPPORTS(nsMsgAccount, nsIMsgAccount)
 
 nsMsgAccount::nsMsgAccount()
   : mTriedToGetServer(false)
 {
 }
 
 nsMsgAccount::~nsMsgAccount()
 {
--- a/mailnews/base/src/nsMsgAccountManager.cpp
+++ b/mailnews/base/src/nsMsgAccountManager.cpp
@@ -109,17 +109,17 @@ struct findServerEntry {
       server(nullptr)
     {}
 };
 
 static PLDHashOperator
 hashCleanupDeferral(nsCStringHashKey::KeyType aKey,
                     nsCOMPtr<nsIMsgIncomingServer>& aServer, void* aClosure);
 
-NS_IMPL_ISUPPORTS5(nsMsgAccountManager,
+NS_IMPL_ISUPPORTS(nsMsgAccountManager,
                               nsIMsgAccountManager,
                               nsIObserver,
                               nsISupportsWeakReference,
                               nsIUrlListener,
                               nsIFolderListener)
 
 nsMsgAccountManager::nsMsgAccountManager() :
   m_accountsLoaded(false),
@@ -2581,17 +2581,17 @@ public:
   }
 
 private:
   nsRefPtr<VirtualFolderChangeListener> mVFChangeListener;
   nsCOMPtr<nsIMsgFolder> mFolder;
   nsCOMPtr<nsIMsgDatabase> mDB;
 };
 
-NS_IMPL_ISUPPORTS1(VirtualFolderChangeListener, nsIDBChangeListener)
+NS_IMPL_ISUPPORTS(VirtualFolderChangeListener, nsIDBChangeListener)
 
 VirtualFolderChangeListener::VirtualFolderChangeListener() :
   m_searchOnMsgStatus(false), m_batchingEvents(false)
 {}
 
 nsresult VirtualFolderChangeListener::Init()
 {
   nsCOMPtr <nsIMsgDatabase> msgDB;
--- a/mailnews/base/src/nsMsgBiffManager.cpp
+++ b/mailnews/base/src/nsMsgBiffManager.cpp
@@ -24,17 +24,17 @@
 #include <algorithm>
 
 #define PREF_BIFF_JITTER "mail.biff.add_interval_jitter"
 
 static NS_DEFINE_CID(kStatusBarBiffManagerCID, NS_STATUSBARBIFFMANAGER_CID);
 
 static PRLogModuleInfo *MsgBiffLogModule = nullptr;
 
-NS_IMPL_ISUPPORTS4(nsMsgBiffManager, nsIMsgBiffManager,
+NS_IMPL_ISUPPORTS(nsMsgBiffManager, nsIMsgBiffManager,
                    nsIIncomingServerListener, nsIObserver,
                    nsISupportsWeakReference)
 
 void OnBiffTimer(nsITimer *timer, void *aBiffManager)
 {
   nsMsgBiffManager *biffManager = (nsMsgBiffManager*)aBiffManager;
   biffManager->PerformBiff();
 }
--- a/mailnews/base/src/nsMsgContentPolicy.cpp
+++ b/mailnews/base/src/nsMsgContentPolicy.cpp
@@ -34,17 +34,17 @@ using namespace mozilla::mailnews;
 // Per message headder flags to keep track of whether the user is allowing remote
 // content for a particular message. 
 // if you change or add more values to these constants, be sure to modify
 // the corresponding definitions in mailWindowOverlay.js
 #define kNoRemoteContentPolicy 0
 #define kBlockRemoteContent 1
 #define kAllowRemoteContent 2
 
-NS_IMPL_ISUPPORTS4(nsMsgContentPolicy, 
+NS_IMPL_ISUPPORTS(nsMsgContentPolicy, 
                    nsIContentPolicy,
                    nsIWebProgressListener,
                    nsIObserver,
                    nsISupportsWeakReference)
 
 nsMsgContentPolicy::nsMsgContentPolicy()
 {
   mAllowPlugins = false;
--- a/mailnews/base/src/nsMsgCopyService.cpp
+++ b/mailnews/base/src/nsMsgCopyService.cpp
@@ -422,17 +422,17 @@ nsMsgCopyService::FindRequest(nsISupport
         break;
     else
         copyRequest = nullptr;
   }
 
   return copyRequest;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgCopyService, nsIMsgCopyService)
+NS_IMPL_ISUPPORTS(nsMsgCopyService, nsIMsgCopyService)
 
 NS_IMETHODIMP
 nsMsgCopyService::CopyMessages(nsIMsgFolder* srcFolder, /* UI src folder */
                                nsIArray* messages,
                                nsIMsgFolder* dstFolder,
                                bool isMove,
                                nsIMsgCopyServiceListener* listener,
                                nsIMsgWindow* window,
--- a/mailnews/base/src/nsMsgDBView.cpp
+++ b/mailnews/base/src/nsMsgDBView.cpp
@@ -7636,17 +7636,17 @@ void nsMsgDBView::SetMRUTimeForFolder(ns
   uint32_t seconds;
   PRTime2Seconds(PR_Now(), &seconds);
   nsAutoCString nowStr;
   nowStr.AppendInt(seconds);
   folder->SetStringProperty(MRU_TIME_PROPERTY, nowStr);
 }
 
 
-NS_IMPL_ISUPPORTS1(nsMsgDBView::nsMsgViewHdrEnumerator, nsISimpleEnumerator)
+NS_IMPL_ISUPPORTS(nsMsgDBView::nsMsgViewHdrEnumerator, nsISimpleEnumerator)
 
 nsMsgDBView::nsMsgViewHdrEnumerator::nsMsgViewHdrEnumerator(nsMsgDBView *view)
 {
   // we need to clone the view because the caller may clear the
   // current view immediately. It also makes it easier to expand all
   // if we're working on a copy.
   nsCOMPtr<nsIMsgDBView> clonedView;
   view->CloneDBView(nullptr, nullptr, nullptr, getter_AddRefs(clonedView));
--- a/mailnews/base/src/nsMsgFolderCache.cpp
+++ b/mailnews/base/src/nsMsgFolderCache.cpp
@@ -33,17 +33,17 @@ nsMsgFolderCache::~nsMsgFolderCache()
   if (m_mdbStore)
     m_mdbStore->Release();
   NS_IF_RELEASE(gMDBFactory);
   if (m_mdbEnv)
     m_mdbEnv->Release();
 }
 
 
-NS_IMPL_ISUPPORTS1(nsMsgFolderCache, nsIMsgFolderCache)
+NS_IMPL_ISUPPORTS(nsMsgFolderCache, nsIMsgFolderCache)
 
 void nsMsgFolderCache::GetMDBFactory(nsIMdbFactory ** aMdbFactory)
 {
   if (!mMdbFactory)
   {
     nsresult rv;
     nsCOMPtr <nsIMdbFactoryService> mdbFactoryService = do_GetService(NS_MORK_CONTRACTID, &rv);
     if (NS_SUCCEEDED(rv) && mdbFactoryService)
--- a/mailnews/base/src/nsMsgFolderCacheElement.cpp
+++ b/mailnews/base/src/nsMsgFolderCacheElement.cpp
@@ -16,17 +16,17 @@ nsMsgFolderCacheElement::nsMsgFolderCach
 
 nsMsgFolderCacheElement::~nsMsgFolderCacheElement()
 {
   NS_IF_RELEASE(m_mdbRow);
   // circular reference, don't do it.
   // NS_IF_RELEASE(m_owningCache);
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgFolderCacheElement, nsIMsgFolderCacheElement)
+NS_IMPL_ISUPPORTS(nsMsgFolderCacheElement, nsIMsgFolderCacheElement)
 
 NS_IMETHODIMP nsMsgFolderCacheElement::GetKey(nsACString& aFolderKey)
 {
   aFolderKey = m_folderKey;
   return NS_OK;
 }
 
 NS_IMETHODIMP nsMsgFolderCacheElement::SetKey(const nsACString& aFolderKey)
--- a/mailnews/base/src/nsMsgFolderCompactor.cpp
+++ b/mailnews/base/src/nsMsgFolderCompactor.cpp
@@ -33,17 +33,17 @@
 #include "nsIMsgFolderNotificationService.h"
 #include "nsIMsgPluggableStore.h"
 #include "nsMsgFolderCompactor.h"
 
 //////////////////////////////////////////////////////////////////////////////
 // nsFolderCompactState
 //////////////////////////////////////////////////////////////////////////////
 
-NS_IMPL_ISUPPORTS5(nsFolderCompactState, nsIMsgFolderCompactor, nsIRequestObserver, nsIStreamListener, nsICopyMessageStreamListener, nsIUrlListener)
+NS_IMPL_ISUPPORTS(nsFolderCompactState, nsIMsgFolderCompactor, nsIRequestObserver, nsIStreamListener, nsICopyMessageStreamListener, nsIUrlListener)
 
 nsFolderCompactState::nsFolderCompactState()
 {
   m_fileStream = nullptr;
   m_size = 0;
   m_curIndex = 0;
   m_status = NS_OK;
   m_compactAll = false;
--- a/mailnews/base/src/nsMsgFolderDataSource.cpp
+++ b/mailnews/base/src/nsMsgFolderDataSource.cpp
@@ -332,17 +332,17 @@ nsresult nsMsgFolderDataSource::CreateAr
   if(NS_FAILED(rv)) return rv;
 
   return rv;
 }
 
 NS_IMPL_ADDREF_INHERITED(nsMsgFolderDataSource, nsMsgRDFDataSource)
 NS_IMPL_RELEASE_INHERITED(nsMsgFolderDataSource, nsMsgRDFDataSource)
 
-NS_IMPL_QUERY_INTERFACE_INHERITED1(nsMsgFolderDataSource, nsMsgRDFDataSource, nsIFolderListener)
+NS_IMPL_QUERY_INTERFACE_INHERITED(nsMsgFolderDataSource, nsMsgRDFDataSource, nsIFolderListener)
 
  // nsIRDFDataSource methods
 NS_IMETHODIMP nsMsgFolderDataSource::GetURI(char* *uri)
 {
   if ((*uri = strdup("rdf:mailnewsfolders")) == nullptr)
     return NS_ERROR_OUT_OF_MEMORY;
   else
     return NS_OK;
--- a/mailnews/base/src/nsMsgFolderNotificationService.cpp
+++ b/mailnews/base/src/nsMsgFolderNotificationService.cpp
@@ -9,17 +9,17 @@
 #include "nsArrayUtils.h"
 #include "nsIMsgHdr.h"
 #include "nsIMsgImapMailFolder.h"
 #include "nsIImapIncomingServer.h"
 
 //
 //  nsMsgFolderNotificationService
 //
-NS_IMPL_ISUPPORTS1(nsMsgFolderNotificationService, nsIMsgFolderNotificationService)
+NS_IMPL_ISUPPORTS(nsMsgFolderNotificationService, nsIMsgFolderNotificationService)
 
 nsMsgFolderNotificationService::nsMsgFolderNotificationService()
 {
 }
 
 nsMsgFolderNotificationService::~nsMsgFolderNotificationService()
 {
   /* destructor code */
--- a/mailnews/base/src/nsMsgGroupThread.cpp
+++ b/mailnews/base/src/nsMsgGroupThread.cpp
@@ -4,17 +4,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "msgCore.h"
 #include "nsMsgGroupThread.h"
 #include "nsMsgDBView.h"
 #include "nsMsgMessageFlags.h"
 #include "nsMsgUtils.h"
 
-NS_IMPL_ISUPPORTS1(nsMsgGroupThread, nsIMsgThread)
+NS_IMPL_ISUPPORTS(nsMsgGroupThread, nsIMsgThread)
 
 nsMsgGroupThread::nsMsgGroupThread()
 {
   Init();
 }
 nsMsgGroupThread::nsMsgGroupThread(nsIMsgDatabase *db)
 {
   m_db = db;
@@ -420,17 +420,17 @@ nsMsgGroupThreadEnumerator::nsMsgGroupTh
   NS_ADDREF(thread);
 }
 
 nsMsgGroupThreadEnumerator::~nsMsgGroupThreadEnumerator()
 {
     NS_RELEASE(mThread);
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgGroupThreadEnumerator, nsISimpleEnumerator)
+NS_IMPL_ISUPPORTS(nsMsgGroupThreadEnumerator, nsISimpleEnumerator)
 
 
 int32_t nsMsgGroupThreadEnumerator::MsgKeyFirstChildIndex(nsMsgKey inMsgKey)
 {
   //	if (msgKey != mThreadParentKey)
   //		mDone = true;
   // look through rest of thread looking for a child of this message.
   // If the inMsgKey is the first message in the thread, then all children
--- a/mailnews/base/src/nsMsgMailSession.cpp
+++ b/mailnews/base/src/nsMsgMailSession.cpp
@@ -27,17 +27,17 @@
 #include "nsIMsgMailNewsUrl.h"
 #include "prcmon.h"
 #include "nsThreadUtils.h"
 #include "nsComponentManagerUtils.h"
 #include "nsServiceManagerUtils.h"
 #include "nsIProperties.h"
 #include "mozilla/Services.h"
 
-NS_IMPL_ISUPPORTS2(nsMsgMailSession, nsIMsgMailSession, nsIFolderListener)
+NS_IMPL_ISUPPORTS(nsMsgMailSession, nsIMsgMailSession, nsIFolderListener)
 
 nsMsgMailSession::nsMsgMailSession()
 {
 }
 
 
 nsMsgMailSession::~nsMsgMailSession()
 {
@@ -497,17 +497,17 @@ nsMsgMailSession::GetDataFilesDir(const 
 
   NS_IF_ADDREF(*dataFilesDir = defaultsDir);
 
   return rv;
 }
 
 /********************************************************************************/
 
-NS_IMPL_ISUPPORTS3(nsMsgShutdownService, nsIMsgShutdownService, nsIUrlListener, nsIObserver)
+NS_IMPL_ISUPPORTS(nsMsgShutdownService, nsIMsgShutdownService, nsIUrlListener, nsIObserver)
 
 nsMsgShutdownService::nsMsgShutdownService()
 : mQuitMode(nsIAppStartup::eAttemptQuit),
   mProcessedShutdown(false),
   mQuitForced(false),
   mReadyToQuit(false)
 {
   nsCOMPtr<nsIObserverService> observerService =
--- a/mailnews/base/src/nsMsgOfflineManager.cpp
+++ b/mailnews/base/src/nsMsgOfflineManager.cpp
@@ -23,17 +23,17 @@
 #include "nsIMsgStatusFeedback.h"
 #include "nsServiceManagerUtils.h"
 #include "mozilla/Services.h"
 #include "nsIArray.h"
 #include "nsArrayUtils.h"
 
 static NS_DEFINE_CID(kMsgSendLaterCID, NS_MSGSENDLATER_CID);
 
-NS_IMPL_ISUPPORTS5(nsMsgOfflineManager,
+NS_IMPL_ISUPPORTS(nsMsgOfflineManager,
                               nsIMsgOfflineManager,
                               nsIMsgSendLaterListener,
                               nsIObserver,
                               nsISupportsWeakReference,
                               nsIUrlListener)
 
 nsMsgOfflineManager::nsMsgOfflineManager() :
   m_inProgress (false),
--- a/mailnews/base/src/nsMsgPrintEngine.cpp
+++ b/mailnews/base/src/nsMsgPrintEngine.cpp
@@ -53,17 +53,17 @@ nsMsgPrintEngine::nsMsgPrintEngine() :
 }
 
 
 nsMsgPrintEngine::~nsMsgPrintEngine()
 {
 }
 
 // Implement AddRef and Release
-NS_IMPL_ISUPPORTS4(nsMsgPrintEngine,
+NS_IMPL_ISUPPORTS(nsMsgPrintEngine,
                          nsIMsgPrintEngine, 
                          nsIWebProgressListener, 
                          nsIObserver,
                          nsISupportsWeakReference)
 
 // nsIWebProgressListener implementation
 NS_IMETHODIMP
 nsMsgPrintEngine::OnStateChange(nsIWebProgress* aWebProgress, 
--- a/mailnews/base/src/nsMsgProgress.cpp
+++ b/mailnews/base/src/nsMsgProgress.cpp
@@ -12,17 +12,17 @@
 #include "nsIComponentManager.h"
 #include "nsError.h"
 #include "nsIWindowWatcher.h"
 #include "nsServiceManagerUtils.h"
 #include "nsComponentManagerUtils.h"
 #include "nsMsgUtils.h"
 #include "mozilla/Services.h"
 
-NS_IMPL_ISUPPORTS5(nsMsgProgress, nsIMsgStatusFeedback, nsIMsgProgress,
+NS_IMPL_ISUPPORTS(nsMsgProgress, nsIMsgStatusFeedback, nsIMsgProgress,
   nsIWebProgressListener, nsIProgressEventSink, nsISupportsWeakReference)
 
 
 nsMsgProgress::nsMsgProgress()
 {
   m_closeProgress = false;
   m_processCanceled = false;
   m_pendingStateFlags = -1;
--- a/mailnews/base/src/nsMsgPurgeService.cpp
+++ b/mailnews/base/src/nsMsgPurgeService.cpp
@@ -25,17 +25,17 @@
 #include "nsMsgFolderFlags.h"
 #include <stdlib.h>
 #include "nsComponentManagerUtils.h"
 #include "nsServiceManagerUtils.h"
 #include "nsArrayUtils.h"
 
 static PRLogModuleInfo *MsgPurgeLogModule = nullptr;
 
-NS_IMPL_ISUPPORTS2(nsMsgPurgeService, nsIMsgPurgeService, nsIMsgSearchNotify)
+NS_IMPL_ISUPPORTS(nsMsgPurgeService, nsIMsgPurgeService, nsIMsgSearchNotify)
 
 void OnPurgeTimer(nsITimer *timer, void *aPurgeService)
 {
   nsMsgPurgeService *purgeService = (nsMsgPurgeService*)aPurgeService;
   purgeService->PerformPurge();
 }
 
 nsMsgPurgeService::nsMsgPurgeService()
--- a/mailnews/base/src/nsMsgQuickSearchDBView.cpp
+++ b/mailnews/base/src/nsMsgQuickSearchDBView.cpp
@@ -22,17 +22,17 @@ nsMsgQuickSearchDBView::nsMsgQuickSearch
   m_usingCachedHits = false;
   m_cacheEmpty = true;
 }
 
 nsMsgQuickSearchDBView::~nsMsgQuickSearchDBView()
 {
 }
 
-NS_IMPL_ISUPPORTS_INHERITED2(nsMsgQuickSearchDBView, nsMsgDBView, nsIMsgDBView, nsIMsgSearchNotify)
+NS_IMPL_ISUPPORTS_INHERITED(nsMsgQuickSearchDBView, nsMsgDBView, nsIMsgDBView, nsIMsgSearchNotify)
 
 NS_IMETHODIMP nsMsgQuickSearchDBView::Open(nsIMsgFolder *folder, nsMsgViewSortTypeValue sortType, nsMsgViewSortOrderValue sortOrder, nsMsgViewFlagsTypeValue viewFlags, int32_t *pCount)
 {
   nsresult rv = nsMsgDBView::Open(folder, sortType, sortOrder, viewFlags, pCount);
   NS_ENSURE_SUCCESS(rv, rv);
 
   if (!m_db)
     return NS_ERROR_NULL_POINTER;
--- a/mailnews/base/src/nsMsgSearchDBView.cpp
+++ b/mailnews/base/src/nsMsgSearchDBView.cpp
@@ -35,17 +35,17 @@ nsMsgSearchDBView::nsMsgSearchDBView()
   m_totalMessagesInView = 0;
   m_nextThreadId = 1;
 }
 
 nsMsgSearchDBView::~nsMsgSearchDBView()
 {	
 }
 
-NS_IMPL_ISUPPORTS_INHERITED3(nsMsgSearchDBView, nsMsgDBView, nsIMsgDBView, 
+NS_IMPL_ISUPPORTS_INHERITED(nsMsgSearchDBView, nsMsgDBView, nsIMsgDBView, 
                              nsIMsgCopyServiceListener, nsIMsgSearchNotify)
 
 NS_IMETHODIMP nsMsgSearchDBView::Open(nsIMsgFolder *folder, 
                                       nsMsgViewSortTypeValue sortType, 
                                       nsMsgViewSortOrderValue sortOrder, 
                                       nsMsgViewFlagsTypeValue viewFlags, 
                                       int32_t *pCount)
 {
--- a/mailnews/base/src/nsMsgServiceProvider.cpp
+++ b/mailnews/base/src/nsMsgServiceProvider.cpp
@@ -25,17 +25,17 @@ static NS_DEFINE_CID(kRDFCompositeDataSo
 static NS_DEFINE_CID(kRDFXMLDataSourceCID, NS_RDFXMLDATASOURCE_CID);
 
 nsMsgServiceProviderService::nsMsgServiceProviderService()
 {}
 
 nsMsgServiceProviderService::~nsMsgServiceProviderService()
 {}
 
-NS_IMPL_ISUPPORTS1(nsMsgServiceProviderService, nsIRDFDataSource)
+NS_IMPL_ISUPPORTS(nsMsgServiceProviderService, nsIRDFDataSource)
 
 nsresult
 nsMsgServiceProviderService::Init()
 {
   nsresult rv;
   nsCOMPtr<nsIRDFService> rdf = do_GetService(kRDFServiceCID, &rv);
   NS_ENSURE_SUCCESS(rv, rv);
   
--- a/mailnews/base/src/nsMsgStatusFeedback.cpp
+++ b/mailnews/base/src/nsMsgStatusFeedback.cpp
@@ -40,17 +40,17 @@ nsMsgStatusFeedback::nsMsgStatusFeedback
   m_msgLoadedAtom = MsgGetAtom("msgLoaded");
 }
 
 nsMsgStatusFeedback::~nsMsgStatusFeedback()
 {
   mBundle = nullptr;
 }
 
-NS_IMPL_ISUPPORTS4(nsMsgStatusFeedback, nsIMsgStatusFeedback,
+NS_IMPL_ISUPPORTS(nsMsgStatusFeedback, nsIMsgStatusFeedback,
   nsIProgressEventSink, nsIWebProgressListener, nsISupportsWeakReference)
 
 //////////////////////////////////////////////////////////////////////////////////
 // nsMsgStatusFeedback::nsIWebProgressListener
 //////////////////////////////////////////////////////////////////////////////////
 
 NS_IMETHODIMP
 nsMsgStatusFeedback::OnProgressChange(nsIWebProgress* aWebProgress,
--- a/mailnews/base/src/nsMsgTagService.cpp
+++ b/mailnews/base/src/nsMsgTagService.cpp
@@ -65,17 +65,17 @@ CompareMsgTags(const void* aTagPref1, co
 
   return strcmp(value1.get(), value2.get());
 }
 
 
 //
 //  nsMsgTag
 //
-NS_IMPL_ISUPPORTS1(nsMsgTag, nsIMsgTag)
+NS_IMPL_ISUPPORTS(nsMsgTag, nsIMsgTag)
 
 nsMsgTag::nsMsgTag(const nsACString &aKey,
                    const nsAString  &aTag,
                    const nsACString &aColor,
                    const nsACString &aOrdinal)
 : mTag(aTag),
   mKey(aKey),
   mColor(aColor),
@@ -114,17 +114,17 @@ NS_IMETHODIMP nsMsgTag::GetOrdinal(nsACS
   aOrdinal = mOrdinal;
   return NS_OK;
 }
 
 
 //
 //  nsMsgTagService
 //
-NS_IMPL_ISUPPORTS1(nsMsgTagService, nsIMsgTagService)
+NS_IMPL_ISUPPORTS(nsMsgTagService, nsIMsgTagService)
 
 nsMsgTagService::nsMsgTagService()
 {
   m_tagPrefBranch = nullptr;
   nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID));
   if (prefService)
     prefService->GetBranch("mailnews.tags.", getter_AddRefs(m_tagPrefBranch));
   // need to figure out how to migrate the tags only once.
--- a/mailnews/base/src/nsMsgWindow.cpp
+++ b/mailnews/base/src/nsMsgWindow.cpp
@@ -35,17 +35,17 @@
 #include "nsIAuthPrompt.h"
 
 // used to dispatch urls to default protocol handlers
 #include "nsCExternalHandlerService.h"
 #include "nsIExternalProtocolService.h"
 
 static NS_DEFINE_CID(kTransactionManagerCID, NS_TRANSACTIONMANAGER_CID);
 
-NS_IMPL_ISUPPORTS3(nsMsgWindow,
+NS_IMPL_ISUPPORTS(nsMsgWindow,
                               nsIMsgWindow,
                               nsIURIContentListener,
                               nsISupportsWeakReference)
 
 nsMsgWindow::nsMsgWindow()
 {
   mCharsetOverride = false;
   m_stopped = false;
--- a/mailnews/base/src/nsMsgXFViewThread.cpp
+++ b/mailnews/base/src/nsMsgXFViewThread.cpp
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "msgCore.h"
 #include "nsMsgXFViewThread.h"
 #include "nsMsgSearchDBView.h"
 #include "nsMsgMessageFlags.h"
 
-NS_IMPL_ISUPPORTS1(nsMsgXFViewThread, nsIMsgThread)
+NS_IMPL_ISUPPORTS(nsMsgXFViewThread, nsIMsgThread)
 
 nsMsgXFViewThread::nsMsgXFViewThread(nsMsgSearchDBView *view, nsMsgKey threadId)
 {
   m_numUnreadChildren = 0;
   m_numChildren = 0;
   m_flags = 0;
   m_newestMsgDate = 0;
   m_view = view;
--- a/mailnews/base/src/nsSpamSettings.cpp
+++ b/mailnews/base/src/nsSpamSettings.cpp
@@ -55,17 +55,17 @@ nsSpamSettings::nsSpamSettings()
   if (NS_SUCCEEDED(rv))
     mLogFile->Append(NS_LITERAL_STRING("junklog.html"));
 }
 
 nsSpamSettings::~nsSpamSettings()
 {
 }
 
-NS_IMPL_ISUPPORTS2(nsSpamSettings, nsISpamSettings, nsIUrlListener)
+NS_IMPL_ISUPPORTS(nsSpamSettings, nsISpamSettings, nsIUrlListener)
 
 NS_IMETHODIMP
 nsSpamSettings::GetLevel(int32_t *aLevel)
 {
   NS_ENSURE_ARG_POINTER(aLevel);
   *aLevel = mLevel;
   return NS_OK;
 }
--- a/mailnews/base/src/nsStatusBarBiffManager.cpp
+++ b/mailnews/base/src/nsStatusBarBiffManager.cpp
@@ -20,17 +20,17 @@
 #include "nsNetUtil.h"
 #include "nsIFileURL.h"
 #include "nsIFile.h"
 #include "nsMsgUtils.h"
 #include "mozilla/Services.h"
 
 // QueryInterface, AddRef, and Release
 //
-NS_IMPL_ISUPPORTS3(nsStatusBarBiffManager, nsIStatusBarBiffManager, nsIFolderListener, nsIObserver)
+NS_IMPL_ISUPPORTS(nsStatusBarBiffManager, nsIStatusBarBiffManager, nsIFolderListener, nsIObserver)
 
 nsIAtom * nsStatusBarBiffManager::kBiffStateAtom = nullptr;
 
 nsStatusBarBiffManager::nsStatusBarBiffManager()
 : mInitialized(false), mCurrentBiffState(nsIMsgFolder::nsMsgBiffState_Unknown)
 {
 }
 
--- a/mailnews/base/src/nsSubscribableServer.cpp
+++ b/mailnews/base/src/nsSubscribableServer.cpp
@@ -53,17 +53,17 @@ nsSubscribableServer::~nsSubscribableSer
     nsresult rv = NS_OK;
 #ifdef DEBUG_seth
     printf("free subscribe tree\n");
 #endif
     rv = FreeSubtree(mTreeRoot);
     NS_ASSERTION(NS_SUCCEEDED(rv),"failed to free tree");
 }
 
-NS_IMPL_ISUPPORTS1(nsSubscribableServer, nsISubscribableServer)
+NS_IMPL_ISUPPORTS(nsSubscribableServer, nsISubscribableServer)
 
 NS_IMETHODIMP
 nsSubscribableServer::SetIncomingServer(nsIMsgIncomingServer *aServer)
 {
   mIncomingServer = aServer;
   return NS_OK;
 }
 
--- a/mailnews/base/src/nsSubscribeDataSource.cpp
+++ b/mailnews/base/src/nsSubscribeDataSource.cpp
@@ -26,17 +26,17 @@ static NS_DEFINE_CID(kRDFServiceCID, NS_
 nsSubscribeDataSource::nsSubscribeDataSource()
 {
 }
 
 nsSubscribeDataSource::~nsSubscribeDataSource()
 {
 }
 
-NS_IMPL_ISUPPORTS2(nsSubscribeDataSource, nsIRDFDataSource, nsISubscribeDataSource) 
+NS_IMPL_ISUPPORTS(nsSubscribeDataSource, nsIRDFDataSource, nsISubscribeDataSource) 
 
 nsresult
 nsSubscribeDataSource::Init()
 {
     nsresult rv;
 
     mRDFService = do_GetService(kRDFServiceCID, &rv);
     NS_ASSERTION(NS_SUCCEEDED(rv) && mRDFService, "failed to get rdf service");
--- a/mailnews/base/util/Services.cpp
+++ b/mailnews/base/util/Services.cpp
@@ -61,17 +61,17 @@ ShutdownObserver *ShutdownObserver::sShu
       MOZ_ASSERT(g##NAME, "This service is unexpectedly missing."); \
     } \
     nsCOMPtr<TYPE> ret = g##NAME; \
     return ret.forget(); \
   }
 #include "mozilla/mailnews/ServiceList.h"
 #undef MOZ_SERVICE
 
-NS_IMPL_ISUPPORTS1(ShutdownObserver, nsIObserver)
+NS_IMPL_ISUPPORTS(ShutdownObserver, nsIObserver)
 
 NS_IMETHODIMP ShutdownObserver::Observe(nsISupports *aSubject,
     const char *aTopic, const char16_t *aData)
 {
   if (!strcmp(aTopic, "xpcom-shutdown-threads"))
     ShutdownServices();
   return NS_OK;
 }
--- a/mailnews/base/util/nsImapMoveCoalescer.cpp
+++ b/mailnews/base/util/nsImapMoveCoalescer.cpp
@@ -15,17 +15,17 @@
 #include "nsIMsgImapMailFolder.h"
 #include "nsThreadUtils.h"
 #include "nsServiceManagerUtils.h"
 #include "nsIMutableArray.h"
 #include "nsArrayUtils.h"
 #include "nsComponentManagerUtils.h"
 #include "mozilla/ArrayUtils.h"
 
-NS_IMPL_ISUPPORTS1(nsImapMoveCoalescer, nsIUrlListener)
+NS_IMPL_ISUPPORTS(nsImapMoveCoalescer, nsIUrlListener)
 
 nsImapMoveCoalescer::nsImapMoveCoalescer(nsIMsgFolder *sourceFolder, nsIMsgWindow *msgWindow)
 {
   m_sourceFolder = sourceFolder; 
   m_msgWindow = msgWindow;
   m_hasPendingMoves = false;
 }
 
@@ -158,17 +158,17 @@ nsImapMoveCoalescer::OnStopRunningUrl(ns
 nsTArray<nsMsgKey> *nsImapMoveCoalescer::GetKeyBucket(uint32_t keyArrayIndex)
 {
   NS_ASSERTION(keyArrayIndex < MOZ_ARRAY_LENGTH(m_keyBuckets), "invalid index");
 
   return keyArrayIndex < mozilla::ArrayLength(m_keyBuckets) ?
            &(m_keyBuckets[keyArrayIndex]) : nullptr;
 }
 
-NS_IMPL_ISUPPORTS1(nsMoveCoalescerCopyListener, nsIMsgCopyServiceListener)
+NS_IMPL_ISUPPORTS(nsMoveCoalescerCopyListener, nsIMsgCopyServiceListener)
 
 nsMoveCoalescerCopyListener::nsMoveCoalescerCopyListener(nsImapMoveCoalescer * coalescer, 
                                                          nsIMsgFolder *destFolder)
 {
   m_destFolder = destFolder;
   m_coalescer = coalescer;
 }
 
--- a/mailnews/base/util/nsMsgCompressIStream.cpp
+++ b/mailnews/base/util/nsMsgCompressIStream.cpp
@@ -17,17 +17,17 @@ nsMsgCompressIStream::nsMsgCompressIStre
 {
 }
 
 nsMsgCompressIStream::~nsMsgCompressIStream()
 {
   Close();
 }
 
-NS_IMPL_ISUPPORTS2(nsMsgCompressIStream, nsIInputStream,
+NS_IMPL_ISUPPORTS(nsMsgCompressIStream, nsIInputStream,
                               nsIAsyncInputStream)
 
 nsresult nsMsgCompressIStream::InitInputStream(nsIInputStream *rawStream)
 {
   // protect against repeat calls
   if (m_iStream)
     return NS_ERROR_UNEXPECTED;
 
--- a/mailnews/base/util/nsMsgCompressOStream.cpp
+++ b/mailnews/base/util/nsMsgCompressOStream.cpp
@@ -13,17 +13,17 @@ nsMsgCompressOStream::nsMsgCompressOStre
 {
 }
 
 nsMsgCompressOStream::~nsMsgCompressOStream()
 {
   Close();
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgCompressOStream, nsIOutputStream)
+NS_IMPL_ISUPPORTS(nsMsgCompressOStream, nsIOutputStream)
 
 nsresult nsMsgCompressOStream::InitOutputStream(nsIOutputStream *rawStream)
 {
   // protect against repeat calls
   if (m_oStream)
     return NS_ERROR_UNEXPECTED;
 
   // allocate some memory for a buffer
--- a/mailnews/base/util/nsMsgDBFolder.cpp
+++ b/mailnews/base/util/nsMsgDBFolder.cpp
@@ -96,17 +96,17 @@ char16_t *nsMsgDBFolder::kLocalizedTempl
 char16_t *nsMsgDBFolder::kLocalizedUnsentName;
 char16_t *nsMsgDBFolder::kLocalizedJunkName;
 char16_t *nsMsgDBFolder::kLocalizedArchivesName;
 
 char16_t *nsMsgDBFolder::kLocalizedBrandShortName;
 
 nsrefcnt nsMsgDBFolder::mInstanceCount=0;
 
-NS_IMPL_ISUPPORTS_INHERITED6(nsMsgDBFolder, nsRDFResource, 
+NS_IMPL_ISUPPORTS_INHERITED(nsMsgDBFolder, nsRDFResource, 
                              nsISupportsWeakReference, nsIMsgFolder,
                              nsIDBChangeListener, nsIUrlListener,
                              nsIJunkMailClassificationListener,
                              nsIMsgTraitClassificationListener)
 
 #define MSGDBFOLDER_ATOM(name_, value_) nsIAtom* nsMsgDBFolder::name_ = nullptr;
 #include "nsMsgDBFolderAtomList.h"
 #undef MSGDBFOLDER_ATOM
--- a/mailnews/base/util/nsMsgFileStream.cpp
+++ b/mailnews/base/util/nsMsgFileStream.cpp
@@ -38,17 +38,17 @@ nsMsgFileStream::nsMsgFileStream()
 }
 
 nsMsgFileStream::~nsMsgFileStream()
 {
   if (mFileDesc)
     PR_Close(mFileDesc);
 }
 
-NS_IMPL_ISUPPORTS3(nsMsgFileStream, nsIInputStream, nsIOutputStream, nsISeekableStream)
+NS_IMPL_ISUPPORTS(nsMsgFileStream, nsIInputStream, nsIOutputStream, nsISeekableStream)
 
 nsresult nsMsgFileStream::InitWithFile(nsIFile *file)
 {
   return file->OpenNSPRFileDesc(PR_RDWR|PR_CREATE_FILE, 0664, &mFileDesc);
 }
 
 NS_IMETHODIMP
 nsMsgFileStream::Seek(int32_t whence, int64_t offset)
--- a/mailnews/base/util/nsMsgIdentity.cpp
+++ b/mailnews/base/util/nsMsgIdentity.cpp
@@ -23,17 +23,17 @@
 #include "nsServiceManagerUtils.h"
 #include "nsComponentManagerUtils.h"
 #include "nsArrayUtils.h"
 
 static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
 
 #define REL_FILE_PREF_SUFFIX "-rel"
 
-NS_IMPL_ISUPPORTS1(nsMsgIdentity,
+NS_IMPL_ISUPPORTS(nsMsgIdentity,
                    nsIMsgIdentity)
 
 /*
  * accessors for pulling values directly out of preferences
  * instead of member variables, etc
  */
 
 NS_IMETHODIMP
--- a/mailnews/base/util/nsMsgIncomingServer.cpp
+++ b/mailnews/base/util/nsMsgIncomingServer.cpp
@@ -63,17 +63,17 @@ nsMsgIncomingServer::nsMsgIncomingServer
     mPerformingBiff(false)
 { 
 }
 
 nsMsgIncomingServer::~nsMsgIncomingServer()
 {
 }
 
-NS_IMPL_ISUPPORTS2(nsMsgIncomingServer, nsIMsgIncomingServer,
+NS_IMPL_ISUPPORTS(nsMsgIncomingServer, nsIMsgIncomingServer,
   nsISupportsWeakReference)
 
 NS_IMETHODIMP
 nsMsgIncomingServer::SetServerBusy(bool aServerBusy)
 {
   m_serverBusy = aServerBusy;
   return NS_OK;
 }
--- a/mailnews/base/util/nsMsgKeyArray.cpp
+++ b/mailnews/base/util/nsMsgKeyArray.cpp
@@ -1,17 +1,17 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsMsgKeyArray.h"
 #include "nsMemory.h"
 
-NS_IMPL_ISUPPORTS1(nsMsgKeyArray, nsIMsgKeyArray)
+NS_IMPL_ISUPPORTS(nsMsgKeyArray, nsIMsgKeyArray)
 
 nsMsgKeyArray::nsMsgKeyArray()
 {
 }
 
 nsMsgKeyArray::~nsMsgKeyArray()
 {
 }
--- a/mailnews/base/util/nsMsgMailNewsUrl.cpp
+++ b/mailnews/base/util/nsMsgMailNewsUrl.cpp
@@ -49,17 +49,17 @@ nsMsgMailNewsUrl::nsMsgMailNewsUrl()
   }                                                                    \
   PR_END_MACRO
 
 nsMsgMailNewsUrl::~nsMsgMailNewsUrl()
 {
   PR_FREEIF(m_errorMessage);
 }
   
-NS_IMPL_ISUPPORTS3(nsMsgMailNewsUrl, nsIMsgMailNewsUrl, nsIURL, nsIURI)
+NS_IMPL_ISUPPORTS(nsMsgMailNewsUrl, nsIMsgMailNewsUrl, nsIURL, nsIURI)
 
 ////////////////////////////////////////////////////////////////////////////////////
 // Begin nsIMsgMailNewsUrl specific support
 ////////////////////////////////////////////////////////////////////////////////////
 
 nsresult nsMsgMailNewsUrl::GetUrlState(bool * aRunningUrl)
 {
   if (aRunningUrl)
@@ -761,17 +761,17 @@ protected:
   nsCOMPtr<nsIFile> m_outputFile;
   bool m_addDummyEnvelope;
   bool m_writtenData;
   uint32_t m_leftOver;
   char m_dataBuffer[SAVE_BUF_SIZE+1]; // temporary buffer for this save operation
 
 };
 
-NS_IMPL_ISUPPORTS2(nsMsgSaveAsListener,
+NS_IMPL_ISUPPORTS(nsMsgSaveAsListener,
                    nsIStreamListener,
                    nsIRequestObserver)
 
 nsMsgSaveAsListener::nsMsgSaveAsListener(nsIFile *aFile, bool addDummyEnvelope)
 {
   m_outputFile = aFile;
   m_writtenData = false;
   m_addDummyEnvelope = addDummyEnvelope;
--- a/mailnews/base/util/nsMsgProtocol.cpp
+++ b/mailnews/base/util/nsMsgProtocol.cpp
@@ -38,17 +38,17 @@
 #include "nsAlgorithm.h"
 #include "mozilla/Services.h"
 #include <algorithm>
 
 #undef PostMessage // avoid to collision with WinUser.h
 
 using namespace mozilla;
 
-NS_IMPL_ISUPPORTS5(nsMsgProtocol, nsIChannel, nsIStreamListener,
+NS_IMPL_ISUPPORTS(nsMsgProtocol, nsIChannel, nsIStreamListener,
   nsIRequestObserver, nsIRequest, nsITransportEventSink)
 
 static char16_t *FormatStringWithHostNameByID(int32_t stringID, nsIMsgMailNewsUrl *msgUri);
 
 
 nsMsgProtocol::nsMsgProtocol(nsIURI * aURL)
 {
   m_flags = 0;
@@ -1101,17 +1101,17 @@ public:
     }
 
 
 protected:
   nsCOMPtr<nsIWeakReference> mMsgProtocol;
   nsCOMPtr<nsIInputStream>  mInStream;
 };
 
-NS_IMPL_ISUPPORTS1(nsMsgProtocolStreamProvider,
+NS_IMPL_ISUPPORTS(nsMsgProtocolStreamProvider,
                               nsIOutputStreamCallback)
 
 class nsMsgFilePostHelper : public nsIStreamListener
 {
 public:
   NS_DECL_THREADSAFE_ISUPPORTS
   NS_DECL_NSIREQUESTOBSERVER
   NS_DECL_NSISTREAMLISTENER
@@ -1122,17 +1122,17 @@ public:
   nsCOMPtr<nsIRequest> mPostFileRequest;
   bool mSuspendedPostFileRead;
   void CloseSocket() { mProtInstance = nullptr; }
 protected:
   nsCOMPtr<nsIOutputStream> mOutStream;
   nsCOMPtr<nsIWeakReference> mProtInstance;
 };
 
-NS_IMPL_ISUPPORTS2(nsMsgFilePostHelper, nsIStreamListener, nsIRequestObserver)
+NS_IMPL_ISUPPORTS(nsMsgFilePostHelper, nsIStreamListener, nsIRequestObserver)
 
 nsresult nsMsgFilePostHelper::Init(nsIOutputStream * aOutStream, nsMsgAsyncWriteProtocol * aProtInstance, nsIFile *aFileToPost)
 {
   nsresult rv = NS_OK;
   mOutStream = aOutStream;
   mProtInstance = do_GetWeakReference(static_cast<nsIStreamListener*> (aProtInstance));
 
   nsCOMPtr<nsIInputStream> stream;
--- a/mailnews/base/util/nsMsgTxn.cpp
+++ b/mailnews/base/util/nsMsgTxn.cpp
@@ -87,17 +87,17 @@ public:
 
   NS_DECL_ISUPPORTS
   NS_DECL_NSIPROPERTY
 protected:
   nsString mName;
   nsCOMPtr<nsIVariant> mValue;
 };
 
-NS_IMPL_ISUPPORTS1(nsMailSimpleProperty, nsIProperty)
+NS_IMPL_ISUPPORTS(nsMailSimpleProperty, nsIProperty)
 
 NS_IMETHODIMP nsMailSimpleProperty::GetName(nsAString& aName)
 {
   aName.Assign(mName);
   return NS_OK;
 }
 
 NS_IMETHODIMP nsMailSimpleProperty::GetValue(nsIVariant* *aValue)
--- a/mailnews/base/util/nsMsgUtils.cpp
+++ b/mailnews/base/util/nsMsgUtils.cpp
@@ -1986,17 +1986,17 @@ public:
                            nsIInterfaceRequestor *aSecond)
     : mFirst(aFirst)
     , mSecond(aSecond) {}
 
   nsCOMPtr<nsIInterfaceRequestor> mFirst, mSecond;
 };
 
 // XXX This needs to support threadsafe refcounting until we fix bug 243591.
-NS_IMPL_ISUPPORTS1(MsgInterfaceRequestorAgg, nsIInterfaceRequestor)
+NS_IMPL_ISUPPORTS(MsgInterfaceRequestorAgg, nsIInterfaceRequestor)
 
 NS_IMETHODIMP
 MsgInterfaceRequestorAgg::GetInterface(const nsIID &aIID, void **aResult)
 {
   nsresult rv = NS_ERROR_NO_INTERFACE;
   if (mFirst)
     rv = mFirst->GetInterface(aIID, aResult);
   if (mSecond && NS_FAILED(rv))
@@ -2282,17 +2282,17 @@ public:
     return NS_OK;
   };
   const char *GetDetectedCharset() { return mCharset.get(); }
 
 private:
   nsCString mCharset;
 };
 
-NS_IMPL_ISUPPORTS1(CharsetDetectionObserver, nsICharsetDetectionObserver)
+NS_IMPL_ISUPPORTS(CharsetDetectionObserver, nsICharsetDetectionObserver)
 
 NS_MSG_BASE nsresult
 MsgDetectCharsetFromFile(nsIFile *aFile, nsACString &aCharset)
 {
   // First try the universal charset detector
   nsCOMPtr<nsICharsetDetector> detector
     = do_CreateInstance(NS_CHARSET_DETECTOR_CONTRACTID_BASE
                         "universal_charset_detector");
--- a/mailnews/base/util/nsStopwatch.cpp
+++ b/mailnews/base/util/nsStopwatch.cpp
@@ -23,17 +23,17 @@
  * It was no longer used in the mozilla tree, and is being migrated to
  * comm-central where we actually have a need for it.  ("Being" in the sense
  * that it will not be removed immediately from mozilla-central.)
  * 
  * Simplification and general clean-up has been performed and the fix for
  * bug 96669 has been integrated.
  */
 
-NS_IMPL_ISUPPORTS1(nsStopwatch, nsIStopwatch)
+NS_IMPL_ISUPPORTS(nsStopwatch, nsIStopwatch)
 
 #if defined(XP_UNIX)
 /** the number of ticks per second */
 static double gTicks = 0;
 #define MICRO_SECONDS_TO_SECONDS_MULT static_cast<double>(1.0e-6)
 #elif defined(WIN32)
 #ifdef DEBUG
 #ifdef MOZILLA_INTERNAL_API
--- a/mailnews/compose/src/nsMsgAttachment.cpp
+++ b/mailnews/compose/src/nsMsgAttachment.cpp
@@ -2,17 +2,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsMsgAttachment.h"
 #include "nsIFile.h"
 #include "nsNetUtil.h"
 
-NS_IMPL_ISUPPORTS1(nsMsgAttachment, nsIMsgAttachment)
+NS_IMPL_ISUPPORTS(nsMsgAttachment, nsIMsgAttachment)
 
 nsMsgAttachment::nsMsgAttachment()
 {
   mTemporary = false;
   mSendViaCloud = false;
   mSize = -1;
 }
 
--- a/mailnews/compose/src/nsMsgCompFields.cpp
+++ b/mailnews/compose/src/nsMsgCompFields.cpp
@@ -14,17 +14,17 @@
 #include "nsMsgMimeCID.h"
 #include "nsArrayEnumerator.h"
 #include "nsMemory.h"
 #include "mozilla/mailnews/MimeHeaderParser.h"
 
 using namespace mozilla::mailnews;
 
 /* the following macro actually implement addref, release and query interface for our component. */
-NS_IMPL_ISUPPORTS1(nsMsgCompFields, nsIMsgCompFields)
+NS_IMPL_ISUPPORTS(nsMsgCompFields, nsIMsgCompFields)
 
 nsMsgCompFields::nsMsgCompFields()
 {
   int16_t i;
   for (i = 0; i < MSG_MAX_HEADERS; i ++)
     m_headers[i] = nullptr;
 
   m_body.Truncate();
--- a/mailnews/compose/src/nsMsgCompUtils.cpp
+++ b/mailnews/compose/src/nsMsgCompUtils.cpp
@@ -27,17 +27,17 @@
 #include "nsServiceManagerUtils.h"
 #include "nsComponentManagerUtils.h"
 #include "nsMemory.h"
 #include "nsCRTGlue.h"
 #include <ctype.h>
 #include "mozilla/Services.h"
 #include "nsIMIMEInfo.h"
 
-NS_IMPL_ISUPPORTS1(nsMsgCompUtils, nsIMsgCompUtils)
+NS_IMPL_ISUPPORTS(nsMsgCompUtils, nsIMsgCompUtils)
 
 nsMsgCompUtils::nsMsgCompUtils()
 {
 }
 
 nsMsgCompUtils::~nsMsgCompUtils()
 {
 }
--- a/mailnews/compose/src/nsMsgCompose.cpp
+++ b/mailnews/compose/src/nsMsgCompose.cpp
@@ -191,17 +191,17 @@ nsMsgCompose::nsMsgCompose()
 
 nsMsgCompose::~nsMsgCompose()
 {
   NS_IF_RELEASE(m_compFields);
   NS_IF_RELEASE(mQuoteStreamListener);
 }
 
 /* the following macro actually implement addref, release and query interface for our component. */
-NS_IMPL_ISUPPORTS3(nsMsgCompose, nsIMsgCompose, nsIMsgSendListener,
+NS_IMPL_ISUPPORTS(nsMsgCompose, nsIMsgCompose, nsIMsgSendListener,
   nsISupportsWeakReference)
 
 //
 // Once we are here, convert the data which we know to be UTF-8 to UTF-16
 // for insertion into the editor
 //
 nsresult
 GetChildOffset(nsIDOMNode *aChild, nsIDOMNode *aParent, int32_t &aOffset)
@@ -3066,17 +3066,17 @@ bool IsInDomainList(const nsAString &aDo
     if (StringEndsWith(aDomain, dotDomain, nsCaseInsensitiveStringComparator()))
       return true;
 
     left = right + 1;
   }
   return false;
 }
 
-NS_IMPL_ISUPPORTS3(QuotingOutputStreamListener,
+NS_IMPL_ISUPPORTS(QuotingOutputStreamListener,
                    nsIMsgQuotingOutputStreamListener,
                    nsIRequestObserver,
                    nsIStreamListener)
 
 ////////////////////////////////////////////////////////////////////////////////////
 // END OF QUOTING LISTENER
 ////////////////////////////////////////////////////////////////////////////////////
 
@@ -3449,17 +3449,17 @@ NS_IMETHODIMP nsMsgCompose::OnGetDraftFo
 // This is the listener class for both the send operation and the copy operation.
 // We have to create this class to listen for message send completion and deal with
 // failures in both send and copy operations
 ////////////////////////////////////////////////////////////////////////////////////
 NS_IMPL_ADDREF(nsMsgComposeSendListener)
 NS_IMPL_RELEASE(nsMsgComposeSendListener)
 
 /*
-NS_IMPL_QUERY_INTERFACE4(nsMsgComposeSendListener,
+NS_IMPL_QUERY_INTERFACE(nsMsgComposeSendListener,
                          nsIMsgComposeSendListener,
                          nsIMsgSendListener,
                          nsIMsgCopyServiceListener,
                          nsIWebProgressListener)
 */
 NS_INTERFACE_MAP_BEGIN(nsMsgComposeSendListener)
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIMsgComposeSendListener)
   NS_INTERFACE_MAP_ENTRY(nsIMsgComposeSendListener)
--- a/mailnews/compose/src/nsMsgComposeContentHandler.cpp
+++ b/mailnews/compose/src/nsMsgComposeContentHandler.cpp
@@ -25,17 +25,17 @@
 static NS_DEFINE_CID(kMsgComposeServiceCID, NS_MSGCOMPOSESERVICE_CID);
 
 nsMsgComposeContentHandler::nsMsgComposeContentHandler()
 {
 }
 
 // The following macro actually implement addref, release and query interface
 // for our component.
-NS_IMPL_ISUPPORTS1(nsMsgComposeContentHandler, nsIContentHandler)
+NS_IMPL_ISUPPORTS(nsMsgComposeContentHandler, nsIContentHandler)
 
 nsMsgComposeContentHandler::~nsMsgComposeContentHandler()
 {
 }
 
 // Try to get an appropriate nsIMsgIdentity by going through the window, getting
 // the document's URI, then the corresponding nsIMsgDBHdr. Then find the server
 // associated with that header and get the first identity for it.
--- a/mailnews/compose/src/nsMsgComposeParams.cpp
+++ b/mailnews/compose/src/nsMsgComposeParams.cpp
@@ -8,17 +8,17 @@
 nsMsgComposeParams::nsMsgComposeParams() :
   mType(nsIMsgCompType::New),
   mFormat(nsIMsgCompFormat::Default),
   mBodyIsLink(false)
 {
 }
 
 /* the following macro actually implement addref, release and query interface for our component. */
-NS_IMPL_ISUPPORTS1(nsMsgComposeParams, nsIMsgComposeParams)
+NS_IMPL_ISUPPORTS(nsMsgComposeParams, nsIMsgComposeParams)
 
 nsMsgComposeParams::~nsMsgComposeParams()
 {
 }
 
 /* attribute MSG_ComposeType type; */
 NS_IMETHODIMP nsMsgComposeParams::GetType(MSG_ComposeType *aType)
 {
--- a/mailnews/compose/src/nsMsgComposeProgressParams.cpp
+++ b/mailnews/compose/src/nsMsgComposeProgressParams.cpp
@@ -1,17 +1,17 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsMsgComposeProgressParams.h"
 #include "nsServiceManagerUtils.h"
 
-NS_IMPL_ISUPPORTS1(nsMsgComposeProgressParams, nsIMsgComposeProgressParams)
+NS_IMPL_ISUPPORTS(nsMsgComposeProgressParams, nsIMsgComposeProgressParams)
 
 nsMsgComposeProgressParams::nsMsgComposeProgressParams() :
   m_deliveryMode(nsIMsgCompDeliverMode::Now)
 {
 }
 
 nsMsgComposeProgressParams::~nsMsgComposeProgressParams()
 {
--- a/mailnews/compose/src/nsMsgComposeService.cpp
+++ b/mailnews/compose/src/nsMsgComposeService.cpp
@@ -118,17 +118,17 @@ nsMsgComposeService::nsMsgComposeService
   mStartTime = PR_IntervalNow();
   mPreviousTime = mStartTime;
 #endif
 
   mMaxRecycledWindows = 0;
   mCachedWindows = nullptr;
 }
 
-NS_IMPL_ISUPPORTS4(nsMsgComposeService,
+NS_IMPL_ISUPPORTS(nsMsgComposeService,
                    nsIMsgComposeService,
                    nsIObserver,
                    ICOMMANDLINEHANDLER,
                    nsISupportsWeakReference)
 
 nsMsgComposeService::~nsMsgComposeService()
 {
   if (mCachedWindows)
@@ -891,17 +891,17 @@ public:
   nsCOMPtr <nsIMsgDBHdr> mTemplateHdr;
   nsCOMPtr <nsIMsgWindow> mMsgWindow;
   nsCOMPtr <nsIMsgIncomingServer> mServer;
   nsCString mTemplateBody;
   bool mInMsgBody;
   char mLastBlockChars[3];
 };
 
-NS_IMPL_ISUPPORTS3(nsMsgTemplateReplyHelper,
+NS_IMPL_ISUPPORTS(nsMsgTemplateReplyHelper,
                    nsIStreamListener,
                    nsIRequestObserver,
                    nsIUrlListener)
 
 nsMsgTemplateReplyHelper::nsMsgTemplateReplyHelper()
 {
   mInMsgBody = false;
   memset(mLastBlockChars, 0, sizeof(mLastBlockChars));
--- a/mailnews/compose/src/nsMsgCopy.cpp
+++ b/mailnews/compose/src/nsMsgCopy.cpp
@@ -32,17 +32,17 @@
 #include "nsArrayUtils.h"
 
 static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
 
 ////////////////////////////////////////////////////////////////////////////////////
 // This is the listener class for the copy operation. We have to create this class
 // to listen for message copy completion and eventually notify the caller
 ////////////////////////////////////////////////////////////////////////////////////
-NS_IMPL_ISUPPORTS1(CopyListener, nsIMsgCopyServiceListener)
+NS_IMPL_ISUPPORTS(CopyListener, nsIMsgCopyServiceListener)
 
 CopyListener::CopyListener(void)
 {
   mCopyInProgress = false;
 }
 
 CopyListener::~CopyListener(void)
 {
@@ -128,17 +128,17 @@ CopyListener::SetMsgComposeAndSendObject
 }
 
 ////////////////////////////////////////////////////////////////////////////////////
 // END  END  END  END  END  END  END  END  END  END  END  END  END  END  END
 // This is the listener class for the copy operation. We have to create this class
 // to listen for message copy completion and eventually notify the caller
 ////////////////////////////////////////////////////////////////////////////////////
 
-NS_IMPL_ISUPPORTS1(nsMsgCopy, nsIUrlListener)
+NS_IMPL_ISUPPORTS(nsMsgCopy, nsIUrlListener)
 
 nsMsgCopy::nsMsgCopy()
 {
   mFile = nullptr;
   mMode = nsIMsgSend::nsMsgDeliverNow;
   mSavePref = nullptr;
 }
 
--- a/mailnews/compose/src/nsMsgQuote.cpp
+++ b/mailnews/compose/src/nsMsgQuote.cpp
@@ -20,17 +20,17 @@
 #include "nsMsgUtils.h"
 #include "nsNetUtil.h"
 #include "nsMsgMimeCID.h"
 #include "nsMsgCompCID.h"
 #include "nsMsgCompose.h"
 #include "nsMsgMailNewsUrl.h"
 #include "mozilla/Services.h"
 
-NS_IMPL_ISUPPORTS2(nsMsgQuoteListener, nsIMsgQuoteListener,
+NS_IMPL_ISUPPORTS(nsMsgQuoteListener, nsIMsgQuoteListener,
   nsIMimeStreamConverterListener)
 
 nsMsgQuoteListener::nsMsgQuoteListener()
 {
 }
 
 nsMsgQuoteListener::~nsMsgQuoteListener()
 {
@@ -78,17 +78,17 @@ nsMsgQuote::nsMsgQuote()
   mQuoteHeaders = false;
   mQuoteListener = nullptr;
 }
 
 nsMsgQuote::~nsMsgQuote()
 {
 }
 
-NS_IMPL_ISUPPORTS2(nsMsgQuote, nsIMsgQuote, nsISupportsWeakReference)
+NS_IMPL_ISUPPORTS(nsMsgQuote, nsIMsgQuote, nsISupportsWeakReference)
 
 NS_IMETHODIMP nsMsgQuote::GetStreamListener(nsIMsgQuotingOutputStreamListener ** aStreamListener)
 {
   nsresult rv = NS_OK;
   if (aStreamListener)
   {
     *aStreamListener = mStreamListener;
     NS_IF_ADDREF(*aStreamListener);
--- a/mailnews/compose/src/nsMsgSend.cpp
+++ b/mailnews/compose/src/nsMsgSend.cpp
@@ -205,17 +205,17 @@ public:
   NS_DECL_ISUPPORTS
   NS_DECL_NSIURLLISTENER
     
 private:
   nsCOMPtr<nsIMsgSend> mMsgSend;
   bool                 mIsNewsDelivery;
 };
 
-NS_IMPL_ISUPPORTS1(MsgDeliveryListener, nsIUrlListener)
+NS_IMPL_ISUPPORTS(MsgDeliveryListener, nsIUrlListener)
 
 MsgDeliveryListener::MsgDeliveryListener(nsIMsgSend *aMsgSend, bool inIsNewsDelivery)
 {
   mMsgSend = aMsgSend;
   mIsNewsDelivery = inIsNewsDelivery;
 }
 
 MsgDeliveryListener::~MsgDeliveryListener()
@@ -244,17 +244,17 @@ NS_IMETHODIMP MsgDeliveryListener::OnSto
   if (mMsgSend)
     mMsgSend->SendDeliveryCallback(url, mIsNewsDelivery, aExitCode);
       
   return NS_OK;
 }
 
 
 /* the following macro actually implement addref, release and query interface for our component. */
-NS_IMPL_ISUPPORTS1(nsMsgComposeAndSend, nsIMsgSend)
+NS_IMPL_ISUPPORTS(nsMsgComposeAndSend, nsIMsgSend)
 
 nsMsgComposeAndSend::nsMsgComposeAndSend() :
     m_messageKey(0xffffffff)
 {
   mGUINotificationEnabled = true;
   mAbortInProcess = false;
   mMultipartRelatedAttachmentCount = -1;
   mSendMailAlso = false;
@@ -4946,17 +4946,17 @@ NS_IMETHODIMP nsMsgComposeAndSend::GetCr
 }
 
 NS_IMETHODIMP nsMsgComposeAndSend::SetCryptoclosure(nsIMsgComposeSecure * aCryptoclosure)
 {
   m_crypto_closure = aCryptoclosure;
   return NS_OK;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgAttachmentData, nsIMsgAttachmentData)
+NS_IMPL_ISUPPORTS(nsMsgAttachmentData, nsIMsgAttachmentData)
 
 nsMsgAttachmentData::nsMsgAttachmentData() :  m_size(0), m_isExternalAttachment(0),
   m_isDownloaded(false), m_hasFilename(false), m_displayableInline(false)
 {
 }
 
 nsMsgAttachmentData::~nsMsgAttachmentData()
 {
@@ -5054,17 +5054,17 @@ NS_IMETHODIMP nsMsgAttachmentData::GetXM
 }
 
 NS_IMETHODIMP nsMsgAttachmentData::SetXMacCreator(const nsACString & aXMacCreator)
 {
   m_xMacCreator = aXMacCreator;
   return NS_OK;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgAttachedFile, nsIMsgAttachedFile)
+NS_IMPL_ISUPPORTS(nsMsgAttachedFile, nsIMsgAttachedFile)
 
 nsMsgAttachedFile::nsMsgAttachedFile() :  m_size(0), m_unprintableCount(0),
   m_highbitCount(0), m_ctlCount(0), m_nullCount(0), m_maxLineLength(0)
 {
 }
 
 nsMsgAttachedFile::~nsMsgAttachedFile()
 {
--- a/mailnews/compose/src/nsMsgSendLater.cpp
+++ b/mailnews/compose/src/nsMsgSendLater.cpp
@@ -32,17 +32,17 @@
 #include "nsArrayUtils.h"
 
 // Consts for checking and sending mail in milliseconds
 
 // 1 second from mail into the unsent messages folder to initially trying to
 // send it.
 const uint32_t kInitialMessageSendTime = 1000;
 
-NS_IMPL_ISUPPORTS7(nsMsgSendLater,
+NS_IMPL_ISUPPORTS(nsMsgSendLater,
                    nsIMsgSendLater,
                    nsIFolderListener,
                    nsIRequestObserver,
                    nsIStreamListener,
                    nsIObserver,
                    nsIUrlListener,
                    nsIMsgShutdownTask)
 
@@ -393,17 +393,17 @@ nsMsgSendLater::OnStartRequest(nsIReques
 {
   return NS_OK;
 }
 
 ////////////////////////////////////////////////////////////////////////////////////
 // This is the listener class for the send operation. We have to create this class 
 // to listen for message send completion and eventually notify the caller
 ////////////////////////////////////////////////////////////////////////////////////
-NS_IMPL_ISUPPORTS2(SendOperationListener, nsIMsgSendListener,
+NS_IMPL_ISUPPORTS(SendOperationListener, nsIMsgSendListener,
                    nsIMsgCopyServiceListener)
 
 SendOperationListener::SendOperationListener(nsMsgSendLater *aSendLater)
 : mSendLater(aSendLater)
 {
 }
 
 SendOperationListener::~SendOperationListener(void) 
--- a/mailnews/compose/src/nsMsgSendReport.cpp
+++ b/mailnews/compose/src/nsMsgSendReport.cpp
@@ -10,17 +10,17 @@
 #include "nsMsgCompCID.h"
 #include "nsMsgPrompts.h"
 #include "nsError.h"
 #include "nsComposeStrings.h"
 #include "nsIStringBundle.h"
 #include "nsServiceManagerUtils.h"
 #include "mozilla/Services.h"
 
-NS_IMPL_ISUPPORTS1(nsMsgProcessReport, nsIMsgProcessReport)
+NS_IMPL_ISUPPORTS(nsMsgProcessReport, nsIMsgProcessReport)
 
 nsMsgProcessReport::nsMsgProcessReport()
 {
   Reset();
 }
 
 nsMsgProcessReport::~nsMsgProcessReport()
 {
@@ -71,17 +71,17 @@ NS_IMETHODIMP nsMsgProcessReport::Reset(
   mProceeded = false;
   mError = NS_OK;
   mMessage.Truncate();
 
   return NS_OK;
 }
 
 
-NS_IMPL_ISUPPORTS1(nsMsgSendReport, nsIMsgSendReport)
+NS_IMPL_ISUPPORTS(nsMsgSendReport, nsIMsgSendReport)
 
 nsMsgSendReport::nsMsgSendReport()
 {
   uint32_t i;
   for (i = 0; i <= SEND_LAST_PROCESS; i ++)
     mProcessReport[i] = new nsMsgProcessReport();
 
   Reset(); 
--- a/mailnews/compose/src/nsSmtpService.cpp
+++ b/mailnews/compose/src/nsSmtpService.cpp
@@ -68,17 +68,17 @@ nsSmtpService::nsSmtpService() :
 }
 
 nsSmtpService::~nsSmtpService()
 {
     // save the SMTP servers to disk
 
 }
 
-NS_IMPL_ISUPPORTS2(nsSmtpService, nsISmtpService, nsIProtocolHandler)
+NS_IMPL_ISUPPORTS(nsSmtpService, nsISmtpService, nsIProtocolHandler)
 
 
 NS_IMETHODIMP nsSmtpService::SendMailMessage(nsIFile * aFilePath,
                                         const char * aRecipients, 
                                         nsIMsgIdentity * aSenderIdentity,
                                         const char * aPassword,
                                         nsIUrlListener * aUrlListener, 
                                         nsIMsgStatusFeedback *aStatusFeedback,
--- a/mailnews/compose/src/nsSmtpUrl.cpp
+++ b/mailnews/compose/src/nsSmtpUrl.cpp
@@ -26,17 +26,17 @@ nsMailtoUrl::nsMailtoUrl()
   mFormat = nsIMsgCompFormat::Default;
   m_baseURL = do_CreateInstance(NS_SIMPLEURI_CONTRACTID);
 }
 
 nsMailtoUrl::~nsMailtoUrl()
 {
 }
 
-NS_IMPL_ISUPPORTS2(nsMailtoUrl, nsIMailtoUrl, nsIURI)
+NS_IMPL_ISUPPORTS(nsMailtoUrl, nsIMailtoUrl, nsIURI)
 
 static void UnescapeAndConvert(nsIMimeConverter *mimeConverter,
                                const nsACString &escaped, nsACString &out)
 {
   NS_ASSERTION(mimeConverter, "Set mimeConverter before calling!");
   // If the string is empty, do absolutely nothing.
   if (escaped.IsEmpty())
     return;
@@ -592,17 +592,17 @@ nsSmtpUrl::nsSmtpUrl() : nsMsgMailNewsUr
   m_requestDSN = false;
   m_verifyLogon = false;
 }
  
 nsSmtpUrl::~nsSmtpUrl()
 {
 }
   
-NS_IMPL_ISUPPORTS_INHERITED1(nsSmtpUrl, nsMsgMailNewsUrl, nsISmtpUrl)  
+NS_IMPL_ISUPPORTS_INHERITED(nsSmtpUrl, nsMsgMailNewsUrl, nsISmtpUrl)  
 
 ////////////////////////////////////////////////////////////////////////////////////
 // Begin nsISmtpUrl specific support
 
 ////////////////////////////////////////////////////////////////////////////////////
 
 NS_IMETHODIMP
 nsSmtpUrl::SetRecipients(const char * aRecipientsList)
--- a/mailnews/compose/src/nsURLFetcher.cpp
+++ b/mailnews/compose/src/nsURLFetcher.cpp
@@ -24,17 +24,17 @@
 #include "nsIWebProgress.h"
 #include "nsMsgAttachmentHandler.h"
 #include "nsMsgSend.h"
 #include "nsISeekableStream.h"
 #include "nsIStreamConverterService.h"
 #include "nsIMsgProgress.h"
 #include "nsMsgUtils.h"
 
-NS_IMPL_ISUPPORTS7(nsURLFetcher,
+NS_IMPL_ISUPPORTS(nsURLFetcher,
                    nsIURLFetcher,
                    nsIStreamListener,
                    nsIRequestObserver,
                    nsIURIContentListener,
                    nsIInterfaceRequestor,
                    nsIWebProgressListener,
                    nsISupportsWeakReference)
 
@@ -398,17 +398,17 @@ nsURLFetcher::OnSecurityChange(nsIWebPro
   return NS_OK;
 }
 
 
 /**
  * Stream consumer used for handling special content type like multipart/x-mixed-replace
  */
 
-NS_IMPL_ISUPPORTS2(nsURLFetcherStreamConsumer, nsIStreamListener, nsIRequestObserver)
+NS_IMPL_ISUPPORTS(nsURLFetcherStreamConsumer, nsIStreamListener, nsIRequestObserver)
 
 nsURLFetcherStreamConsumer::nsURLFetcherStreamConsumer(nsURLFetcher* urlFetcher) :
   mURLFetcher(urlFetcher)
 {
 }
 
 nsURLFetcherStreamConsumer::~nsURLFetcherStreamConsumer()
 {
--- a/mailnews/db/msgdb/src/nsDBFolderInfo.cpp
+++ b/mailnews/db/msgdb/src/nsDBFolderInfo.cpp
@@ -56,17 +56,17 @@ class nsFolderCharsetObserver : public n
 public:
   NS_DECL_ISUPPORTS
   NS_DECL_NSIOBSERVER
 
   nsFolderCharsetObserver() { }
   virtual ~nsFolderCharsetObserver() {}
 };
 
-NS_IMPL_ISUPPORTS1(nsFolderCharsetObserver, nsIObserver)
+NS_IMPL_ISUPPORTS(nsFolderCharsetObserver, nsIObserver)
 
 NS_IMETHODIMP nsFolderCharsetObserver::Observe(nsISupports *aSubject, const char *aTopic, const char16_t *someData)
 {
   nsresult rv;
 
   nsCOMPtr<nsIPrefService> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID, &rv);
   if (NS_FAILED(rv)) return rv;
 
--- a/mailnews/db/msgdb/src/nsMailDatabase.cpp
+++ b/mailnews/db/msgdb/src/nsMailDatabase.cpp
@@ -339,17 +339,17 @@ nsMsgOfflineOpEnumerator::nsMsgOfflineOp
 }
 
 nsMsgOfflineOpEnumerator::~nsMsgOfflineOpEnumerator()
 {
   NS_IF_RELEASE(mRowCursor);
   NS_RELEASE(mDB);
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgOfflineOpEnumerator, nsISimpleEnumerator)
+NS_IMPL_ISUPPORTS(nsMsgOfflineOpEnumerator, nsISimpleEnumerator)
 
 nsresult nsMsgOfflineOpEnumerator::GetRowCursor()
 {
   nsresult rv = NS_OK;
   mDone = false;
 
   if (!mDB || !mDB->m_mdbAllOfflineOpsTable)
     return NS_ERROR_NULL_POINTER;
--- a/mailnews/db/msgdb/src/nsMsgDatabase.cpp
+++ b/mailnews/db/msgdb/src/nsMsgDatabase.cpp
@@ -67,17 +67,17 @@ static const nsMsgKey kTableKeyForThread
 static const nsMsgKey kAllThreadsTableKey = 0xfffffffd;
 static const nsMsgKey kFirstPseudoKey = 0xfffffff0;
 static const nsMsgKey kIdStartOfFake = 0xffffff80;
 
 static PRLogModuleInfo* DBLog;
 
 PRTime nsMsgDatabase::gLastUseTime;
 
-NS_IMPL_ISUPPORTS1(nsMsgDBService, nsIMsgDBService)
+NS_IMPL_ISUPPORTS(nsMsgDBService, nsIMsgDBService)
 
 nsMsgDBService::nsMsgDBService()
 {
   DBLog = PR_NewLogModule("MSGDB");
 }
 
 
 nsMsgDBService::~nsMsgDBService()
@@ -1068,17 +1068,17 @@ public:
       memoryPath += folderURL;
     } else {
       memoryPath.AppendLiteral("UNKNOWN-FOLDER");
     }
     memoryPath.Append(')');
   }
 };
 
-NS_IMPL_ISUPPORTS1(MsgDBReporter, nsIMemoryReporter)
+NS_IMPL_ISUPPORTS(MsgDBReporter, nsIMemoryReporter)
 }
 }
 
 nsMsgDatabase::nsMsgDatabase()
         : m_dbFolderInfo(nullptr),
         m_nextPseudoMsgKey(kFirstPseudoKey),
         m_mdbEnv(nullptr), m_mdbStore(nullptr),
         m_mdbAllMsgHeadersTable(nullptr), m_mdbAllThreadsTable(nullptr),
@@ -1166,17 +1166,17 @@ nsMsgDatabase::~nsMsgDatabase()
   if (m_mdbEnv)
   {
     m_mdbEnv->Release(); //??? is this right?
     m_mdbEnv = nullptr;
   }
   m_ChangeListeners.Clear();
 }
 
-NS_IMPL_ISUPPORTS2(nsMsgDatabase, nsIMsgDatabase, nsIDBChangeAnnouncer)
+NS_IMPL_ISUPPORTS(nsMsgDatabase, nsIMsgDatabase, nsIDBChangeAnnouncer)
 
 void nsMsgDatabase::GetMDBFactory(nsIMdbFactory ** aMdbFactory)
 {
   if (!mMdbFactory)
   {
     nsresult rv;
     nsCOMPtr <nsIMdbFactoryService> mdbFactoryService = do_GetService(NS_MORK_CONTRACTID, &rv);
     if (NS_SUCCEEDED(rv) && mdbFactoryService)
@@ -2825,17 +2825,17 @@ void nsMsgDBEnumerator::Clear()
   mRowCursor = nullptr;
   mTable = nullptr;
   mResultHdr = nullptr;
   if (mDB)
     mDB->m_enumerators.RemoveElement(this);
   mDB = nullptr;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgDBEnumerator, nsISimpleEnumerator)
+NS_IMPL_ISUPPORTS(nsMsgDBEnumerator, nsISimpleEnumerator)
 
 nsresult nsMsgDBEnumerator::GetRowCursor()
 {
   mDone = false;
 
   if (!mDB || !mTable)
     return NS_ERROR_NULL_POINTER;
 
@@ -3224,17 +3224,17 @@ nsMsgDBThreadEnumerator::nsMsgDBThreadEn
 nsMsgDBThreadEnumerator::~nsMsgDBThreadEnumerator()
 {
   mTableCursor = nullptr;
   NS_IF_RELEASE(mResultThread);
   if (mDB)
     mDB->RemoveListener(this);
 }
 
-NS_IMPL_ISUPPORTS2(nsMsgDBThreadEnumerator, nsISimpleEnumerator, nsIDBChangeListener)
+NS_IMPL_ISUPPORTS(nsMsgDBThreadEnumerator, nsISimpleEnumerator, nsIDBChangeListener)
 
 
 /* void OnHdrFlagsChanged (in nsIMsgDBHdr aHdrChanged, in unsigned long aOldFlags, in unsigned long aNewFlags, in nsIDBChangeListener aInstigator); */
 NS_IMETHODIMP nsMsgDBThreadEnumerator::OnHdrFlagsChanged(nsIMsgDBHdr *aHdrChanged, uint32_t aOldFlags, uint32_t aNewFlags, nsIDBChangeListener *aInstigator)
 {
     return NS_OK;
 }
 
@@ -5436,17 +5436,17 @@ nsresult nsMsgDatabase::PurgeExcessMessa
         Commit(nsMsgDBCommitType::kCompressCommit);
       else
         Commit(nsMsgDBCommitType::kLargeCommit);
     }
   }
   return rv;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgRetentionSettings, nsIMsgRetentionSettings)
+NS_IMPL_ISUPPORTS(nsMsgRetentionSettings, nsIMsgRetentionSettings)
 
 // Initialise the member variables to resonable defaults.
 nsMsgRetentionSettings::nsMsgRetentionSettings()
 : m_retainByPreference(1),
   m_daysToKeepHdrs(0),
   m_numHeadersToKeep(0),
   m_keepUnreadMessagesOnly(false),
   m_useServerDefaults(true),
@@ -5561,17 +5561,17 @@ NS_IMETHODIMP nsMsgRetentionSettings::Ge
   return NS_OK;
 }
 NS_IMETHODIMP nsMsgRetentionSettings::SetApplyToFlaggedMessages(bool aApplyToFlaggedMessages)
 {
   m_applyToFlaggedMessages = aApplyToFlaggedMessages;
   return NS_OK;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgDownloadSettings, nsIMsgDownloadSettings)
+NS_IMPL_ISUPPORTS(nsMsgDownloadSettings, nsIMsgDownloadSettings)
 
 nsMsgDownloadSettings::nsMsgDownloadSettings()
 {
   m_useServerDefaults = false;
   m_downloadUnreadOnly = false;
   m_downloadByDate = false;
   m_ageLimitOfMsgsToDownload = 0;
 }
--- a/mailnews/db/msgdb/src/nsMsgHdr.cpp
+++ b/mailnews/db/msgdb/src/nsMsgHdr.cpp
@@ -9,17 +9,17 @@
 #include "nsMsgDatabase.h"
 #include "nsMsgUtils.h"
 #include "nsIMsgThread.h"
 #include "nsMsgMimeCID.h"
 #include "nsIMimeConverter.h"
 
 using namespace mozilla::mailnews;
 
-NS_IMPL_ISUPPORTS1(nsMsgHdr, nsIMsgDBHdr)
+NS_IMPL_ISUPPORTS(nsMsgHdr, nsIMsgDBHdr)
 
 #define FLAGS_INITED 0x1
 #define CACHED_VALUES_INITED 0x2
 #define REFERENCES_INITED 0x4
 #define THREAD_PARENT_INITED 0x8
 
 nsMsgHdr::nsMsgHdr(nsMsgDatabase *db, nsIMdbRow *dbRow)
 {
@@ -1027,17 +1027,17 @@ nsMsgPropertyEnumerator::nsMsgPropertyEn
 
 nsMsgPropertyEnumerator::~nsMsgPropertyEnumerator()
 {
   // Need to clear this before the nsMsgHdr and its corresponding
   // nsIMdbRow potentially go away.
   mRowCellCursor = nullptr;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgPropertyEnumerator, nsIUTF8StringEnumerator)
+NS_IMPL_ISUPPORTS(nsMsgPropertyEnumerator, nsIUTF8StringEnumerator)
 
 NS_IMETHODIMP nsMsgPropertyEnumerator::GetNext(nsACString& aItem)
 {
   PrefetchNext();
   if (mNextColumn == NULL_MORK_COLUMN)
     return NS_ERROR_FAILURE; // call HasMore first
   if (!m_mdbStore || !m_mdbEnv)
     return NS_ERROR_NOT_INITIALIZED;
--- a/mailnews/db/msgdb/src/nsMsgOfflineImapOperation.cpp
+++ b/mailnews/db/msgdb/src/nsMsgOfflineImapOperation.cpp
@@ -10,17 +10,17 @@
 
 #include "msgCore.h"
 #include "nsMsgOfflineImapOperation.h"
 #include "nsMsgUtils.h"
 
 PRLogModuleInfo *IMAPOffline;
 
 /* Implementation file */
-NS_IMPL_ISUPPORTS1(nsMsgOfflineImapOperation, nsIMsgOfflineImapOperation)
+NS_IMPL_ISUPPORTS(nsMsgOfflineImapOperation, nsIMsgOfflineImapOperation)
 
 // property names for offine imap operation fields.
 #define PROP_OPERATION "op"
 #define PROP_OPERATION_FLAGS "opFlags"
 #define PROP_NEW_FLAGS "newFlags"
 #define PROP_MESSAGE_KEY "msgKey"
 #define PROP_SRC_MESSAGE_KEY "srcMsgKey"
 #define PROP_SRC_FOLDER_URI "srcFolderURI"
--- a/mailnews/db/msgdb/src/nsMsgThread.cpp
+++ b/mailnews/db/msgdb/src/nsMsgThread.cpp
@@ -4,17 +4,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "msgCore.h"
 #include "nsMsgDatabase.h"
 #include "nsCOMPtr.h"
 #include "nsMsgThread.h"
 #include "MailNewsTypes2.h"
 
-NS_IMPL_ISUPPORTS1(nsMsgThread, nsIMsgThread)
+NS_IMPL_ISUPPORTS(nsMsgThread, nsIMsgThread)
 
 nsMsgThread::nsMsgThread()
 {
   MOZ_COUNT_CTOR(nsMsgThread);
   Init();
 }
 nsMsgThread::nsMsgThread(nsMsgDatabase *db, nsIMdbTable *table)
 {
@@ -696,17 +696,17 @@ nsMsgThreadEnumerator::nsMsgThreadEnumer
   NS_ADDREF(thread);
 }
 
 nsMsgThreadEnumerator::~nsMsgThreadEnumerator()
 {
     NS_RELEASE(mThread);
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgThreadEnumerator, nsISimpleEnumerator)
+NS_IMPL_ISUPPORTS(nsMsgThreadEnumerator, nsISimpleEnumerator)
 
 
 int32_t nsMsgThreadEnumerator::MsgKeyFirstChildIndex(nsMsgKey inMsgKey)
 {
   //	if (msgKey != mThreadParentKey)
   //		mDone = true;
   // look through rest of thread looking for a child of this message.
   // If the inMsgKey is the first message in the thread, then all children
--- a/mailnews/extensions/bayesian-spam-filter/src/nsBayesianFilter.cpp
+++ b/mailnews/extensions/bayesian-spam-filter/src/nsBayesianFilter.cpp
@@ -980,17 +980,17 @@ TokenStreamListener::TokenStreamListener
 }
 
 TokenStreamListener::~TokenStreamListener()
 {
     delete[] mBuffer;
     delete mAnalyzer;
 }
 
-NS_IMPL_ISUPPORTS3(TokenStreamListener, nsIRequestObserver, nsIStreamListener, nsIMsgHeaderSink)
+NS_IMPL_ISUPPORTS(TokenStreamListener, nsIRequestObserver, nsIStreamListener, nsIMsgHeaderSink)
 
 NS_IMETHODIMP TokenStreamListener::ProcessHeaders(nsIUTF8StringEnumerator *aHeaderNames, nsIUTF8StringEnumerator *aHeaderValues, bool dontCollectAddress)
 {
     mTokenizer.tokenizeHeaders(aHeaderNames, aHeaderValues);
     return NS_OK;
 }
 
 NS_IMETHODIMP TokenStreamListener::HandleAttachment(const char *contentType, const char *url, const char16_t *displayName, const char *uri, bool aIsExternalAttachment)
@@ -1164,17 +1164,17 @@ NS_IMETHODIMP TokenStreamListener::OnSto
     if (mAnalyzer)
         mAnalyzer->analyzeTokens(mTokenizer);
 
     return NS_OK;
 }
 
 /* Implementation file */
 
-NS_IMPL_ISUPPORTS5(nsBayesianFilter, nsIMsgFilterPlugin,
+NS_IMPL_ISUPPORTS(nsBayesianFilter, nsIMsgFilterPlugin,
                    nsIJunkMailPlugin, nsIMsgCorpus, nsISupportsWeakReference,
                    nsIObserver)
 
 nsBayesianFilter::nsBayesianFilter()
     :   mTrainingDataDirty(false)
 {
     if (!BayesianFilterLogModule)
       BayesianFilterLogModule = PR_NewLogModule("BayesianFilter");
--- a/mailnews/extensions/fts3/src/nsFts3Tokenizer.cpp
+++ b/mailnews/extensions/fts3/src/nsFts3Tokenizer.cpp
@@ -14,17 +14,17 @@
 
 extern "C" void sqlite3Fts3PorterTokenizerModule(
   sqlite3_tokenizer_module const**ppModule);
 
 extern "C" void glodaRankFunc(sqlite3_context *pCtx,
                               int nVal,
                               sqlite3_value **apVal);
 
-NS_IMPL_ISUPPORTS1(nsFts3Tokenizer,nsIFts3Tokenizer)
+NS_IMPL_ISUPPORTS(nsFts3Tokenizer,nsIFts3Tokenizer)
 
 nsFts3Tokenizer::nsFts3Tokenizer()
 {
 }
 
 nsFts3Tokenizer::~nsFts3Tokenizer()
 {
 }
--- a/mailnews/extensions/fts3/src/nsGlodaRankerFunction.cpp
+++ b/mailnews/extensions/fts3/src/nsGlodaRankerFunction.cpp
@@ -42,17 +42,17 @@
 #include "nsCOMPtr.h"
 #include "nsIVariant.h"
 #include "nsComponentManagerUtils.h"
 
 #ifndef SQLITE_VERSION_NUMBER
 #error "We need SQLITE_VERSION_NUMBER defined!"
 #endif
 
-NS_IMPL_ISUPPORTS1(nsGlodaRankerFunction, mozIStorageFunction)
+NS_IMPL_ISUPPORTS(nsGlodaRankerFunction, mozIStorageFunction)
 
 nsGlodaRankerFunction::nsGlodaRankerFunction()
 {
 }
 
 nsGlodaRankerFunction::~nsGlodaRankerFunction()
 {
 }
--- a/mailnews/extensions/mailviews/src/nsMsgMailViewList.cpp
+++ b/mailnews/extensions/mailviews/src/nsMsgMailViewList.cpp
@@ -25,17 +25,17 @@
  
 nsMsgMailView::nsMsgMailView()
 {
     mViewSearchTerms = do_CreateInstance(NS_SUPPORTSARRAY_CONTRACTID);
 }
 
 NS_IMPL_ADDREF(nsMsgMailView)
 NS_IMPL_RELEASE(nsMsgMailView)
-NS_IMPL_QUERY_INTERFACE1(nsMsgMailView, nsIMsgMailView)
+NS_IMPL_QUERY_INTERFACE(nsMsgMailView, nsIMsgMailView)
 
 nsMsgMailView::~nsMsgMailView()
 {
     if (mViewSearchTerms)
         mViewSearchTerms->Clear();
 }
 
 NS_IMETHODIMP nsMsgMailView::GetMailViewName(char16_t ** aMailViewName)
@@ -119,17 +119,17 @@ NS_IMETHODIMP nsMsgMailView::CreateTerm(
 /////////////////////////////////////////////////////////////////////////////
 nsMsgMailViewList::nsMsgMailViewList()
 {
     LoadMailViews();
 }
 
 NS_IMPL_ADDREF(nsMsgMailViewList)
 NS_IMPL_RELEASE(nsMsgMailViewList)
-NS_IMPL_QUERY_INTERFACE1(nsMsgMailViewList, nsIMsgMailViewList)
+NS_IMPL_QUERY_INTERFACE(nsMsgMailViewList, nsIMsgMailViewList)
 
 nsMsgMailViewList::~nsMsgMailViewList()
 {
 
 }
 
 NS_IMETHODIMP nsMsgMailViewList::GetMailViewCount(uint32_t * aCount)
 {
--- a/mailnews/extensions/mdn/src/nsMsgMdnGenerator.cpp
+++ b/mailnews/extensions/mdn/src/nsMsgMdnGenerator.cpp
@@ -74,17 +74,17 @@ char DispositionTypes[7][16] = {
     "dispatched",
     "processed",
     "deleted",
     "denied",
     "failed",
     ""
 };
 
-NS_IMPL_ISUPPORTS2(nsMsgMdnGenerator, nsIMsgMdnGenerator, nsIUrlListener)
+NS_IMPL_ISUPPORTS(nsMsgMdnGenerator, nsIMsgMdnGenerator, nsIUrlListener)
 
 nsMsgMdnGenerator::nsMsgMdnGenerator()
 {
     m_disposeType = eDisplayed;
     m_outputStream = nullptr;
     m_reallySendMdn = false;
     m_autoSend = false;
     m_autoAction = false;
--- a/mailnews/extensions/smime/src/nsEncryptedSMIMEURIsService.cpp
+++ b/mailnews/extensions/smime/src/nsEncryptedSMIMEURIsService.cpp
@@ -1,15 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsEncryptedSMIMEURIsService.h"
 
-NS_IMPL_ISUPPORTS1(nsEncryptedSMIMEURIsService, nsIEncryptedSMIMEURIsService)
+NS_IMPL_ISUPPORTS(nsEncryptedSMIMEURIsService, nsIEncryptedSMIMEURIsService)
 
 nsEncryptedSMIMEURIsService::nsEncryptedSMIMEURIsService()
 {
 }
 
 nsEncryptedSMIMEURIsService::~nsEncryptedSMIMEURIsService()
 {
 }
--- a/mailnews/extensions/smime/src/nsMsgComposeSecure.cpp
+++ b/mailnews/extensions/smime/src/nsMsgComposeSecure.cpp
@@ -82,17 +82,17 @@ char
 }
 
 // end of copied code which needs fixed....
 
 /////////////////////////////////////////////////////////////////////////////////////////
 // Implementation of nsMsgSMIMEComposeFields
 /////////////////////////////////////////////////////////////////////////////////////////
 
-NS_IMPL_ISUPPORTS1(nsMsgSMIMEComposeFields, nsIMsgSMIMECompFields)
+NS_IMPL_ISUPPORTS(nsMsgSMIMEComposeFields, nsIMsgSMIMECompFields)
 
 nsMsgSMIMEComposeFields::nsMsgSMIMEComposeFields()
 :mSignMessage(false), mAlwaysEncryptMessage(false)
 {
 }
 
 nsMsgSMIMEComposeFields::~nsMsgSMIMEComposeFields()
 {
@@ -121,17 +121,17 @@ NS_IMETHODIMP nsMsgSMIMEComposeFields::G
   *_retval = mAlwaysEncryptMessage;
   return NS_OK;
 }
 
 /////////////////////////////////////////////////////////////////////////////////////////
 // Implementation of nsMsgComposeSecure
 /////////////////////////////////////////////////////////////////////////////////////////
 
-NS_IMPL_ISUPPORTS1(nsMsgComposeSecure, nsIMsgComposeSecure)
+NS_IMPL_ISUPPORTS(nsMsgComposeSecure, nsIMsgComposeSecure)
 
 nsMsgComposeSecure::nsMsgComposeSecure()
 {
   /* member initializers and constructor code */
   mMultipartSignedBoundary  = 0;
   mBuffer = 0;
   mBufferedBytes = 0;
 }
--- a/mailnews/extensions/smime/src/nsSMimeJSHelper.cpp
+++ b/mailnews/extensions/smime/src/nsSMimeJSHelper.cpp
@@ -12,17 +12,17 @@
 #include "nsIX509CertDB.h"
 #include "nsIX509CertValidity.h"
 #include "nsIServiceManager.h"
 #include "nsServiceManagerUtils.h"
 #include "nsCRTGlue.h"
 
 using namespace mozilla::mailnews;
 
-NS_IMPL_ISUPPORTS1(nsSMimeJSHelper, nsISMimeJSHelper)
+NS_IMPL_ISUPPORTS(nsSMimeJSHelper, nsISMimeJSHelper)
 
 nsSMimeJSHelper::nsSMimeJSHelper()
 {
 }
 
 nsSMimeJSHelper::~nsSMimeJSHelper()
 {
 }
--- a/mailnews/imap/src/nsAutoSyncManager.cpp
+++ b/mailnews/imap/src/nsAutoSyncManager.cpp
@@ -20,17 +20,17 @@
 #include "nsImapIncomingServer.h"
 #include "nsMsgUtils.h"
 #include "nsIIOService.h"
 #include "nsComponentManagerUtils.h"
 #include "nsServiceManagerUtils.h"
 #include "mozilla/Services.h"
 #include "nsArrayUtils.h"
 
-NS_IMPL_ISUPPORTS1(nsDefaultAutoSyncMsgStrategy, nsIAutoSyncMsgStrategy)
+NS_IMPL_ISUPPORTS(nsDefaultAutoSyncMsgStrategy, nsIAutoSyncMsgStrategy)
 
 const char* kAppIdleNotification = "mail:appIdle";
 const char* kStartupDoneNotification = "mail-startup-done";
 PRLogModuleInfo *gAutoSyncLog;
 
 // recommended size of each group of messages per download
 static const uint32_t kDefaultGroupSize = 50U*1024U /* 50K */;
 
@@ -107,17 +107,17 @@ NS_IMETHODIMP nsDefaultAutoSyncMsgStrate
   NS_ENSURE_SUCCESS(rv, rv);
   PRTime msgDate;
   aMsgHdr->GetDate(&msgDate);
   *aDecision = offlineMsgAgeLimit > 0 &&
     msgDate < MsgConvertAgeInDaysToCutoffDate(offlineMsgAgeLimit);
   return NS_OK;
 }
 
-NS_IMPL_ISUPPORTS1(nsDefaultAutoSyncFolderStrategy, nsIAutoSyncFolderStrategy)
+NS_IMPL_ISUPPORTS(nsDefaultAutoSyncFolderStrategy, nsIAutoSyncFolderStrategy)
 
 nsDefaultAutoSyncFolderStrategy::nsDefaultAutoSyncFolderStrategy()
 {
 }
 
 nsDefaultAutoSyncFolderStrategy::~nsDefaultAutoSyncFolderStrategy()
 {
 }
@@ -1405,9 +1405,9 @@ void nsAutoSyncManager::SetIdleState(Idl
   mIdleState = st;
 }
 
 nsAutoSyncManager::IdleState nsAutoSyncManager::GetIdleState() const 
 { 
   return mIdleState; 
 }
 
-NS_IMPL_ISUPPORTS3(nsAutoSyncManager, nsIObserver, nsIUrlListener, nsIAutoSyncManager)
+NS_IMPL_ISUPPORTS(nsAutoSyncManager, nsIObserver, nsIUrlListener, nsIAutoSyncManager)
--- a/mailnews/imap/src/nsAutoSyncState.cpp
+++ b/mailnews/imap/src/nsAutoSyncState.cpp
@@ -681,17 +681,17 @@ void nsAutoSyncState::SetServerCounts(in
                                       int32_t unseen, int32_t nextUID)
 {
   mLastServerTotal = total;
   mLastServerRecent = recent;
   mLastServerUnseen = unseen;
   mLastNextUID = nextUID;
 }
 
-NS_IMPL_ISUPPORTS2(nsAutoSyncState, nsIAutoSyncState, nsIUrlListener)
+NS_IMPL_ISUPPORTS(nsAutoSyncState, nsIAutoSyncState, nsIUrlListener)
 
 
 void nsAutoSyncState::LogQWithSize(nsTArray<nsMsgKey>& q, uint32_t toOffset)
 {
   nsCOMPtr <nsIMsgFolder> ownerFolder = do_QueryReferent(mOwnerFolder);
   if (ownerFolder)
   {
     nsCOMPtr<nsIMsgDatabase> database;
--- a/mailnews/imap/src/nsIMAPHostSessionList.cpp
+++ b/mailnews/imap/src/nsIMAPHostSessionList.cpp
@@ -53,17 +53,17 @@ nsIMAPHostInfo::~nsIMAPHostInfo()
 {
   PR_Free(fCachedPassword);
   PR_Free(fHierarchyDelimiters);
   delete fNamespaceList;
   delete fTempNamespaceList;
   delete fShellCache;
 }
 
-NS_IMPL_ISUPPORTS3(nsIMAPHostSessionList,
+NS_IMPL_ISUPPORTS(nsIMAPHostSessionList,
                               nsIImapHostSessionList,
                               nsIObserver,
                               nsISupportsWeakReference)
 
 
 nsIMAPHostSessionList::nsIMAPHostSessionList()
 {
   gCachedHostInfoMonitor = PR_NewMonitor(/* "accessing-hostlist-monitor"*/);
--- a/mailnews/imap/src/nsImapFlagAndUidState.cpp
+++ b/mailnews/imap/src/nsImapFlagAndUidState.cpp
@@ -6,17 +6,17 @@
 #include "msgCore.h"  // for pre-compiled headers
 
 #include "nsImapCore.h"
 #include "nsImapFlagAndUidState.h"
 #include "nsMsgUtils.h"
 #include "prcmon.h"
 #include "nspr.h"
 
-NS_IMPL_ISUPPORTS1(nsImapFlagAndUidState, nsIImapFlagAndUidState)
+NS_IMPL_ISUPPORTS(nsImapFlagAndUidState, nsIImapFlagAndUidState)
 
 using namespace mozilla;
 
 NS_IMETHODIMP nsImapFlagAndUidState::GetNumberOfMessages(int32_t *result)
 {
   if (!result)
     return NS_ERROR_NULL_POINTER;
   *result = fUids.Length();
--- a/mailnews/imap/src/nsImapMailFolder.cpp
+++ b/mailnews/imap/src/nsImapMailFolder.cpp
@@ -6342,17 +6342,17 @@ public:
 
   NS_DECL_ISUPPORTS
   NS_DECL_NSIUTF8STRINGENUMERATOR
 private:
   nsTArray<nsCString>* mStrings;
   uint32_t             mIndex;
 };
 
-NS_IMPL_ISUPPORTS1(AdoptUTF8StringEnumerator, nsIUTF8StringEnumerator)
+NS_IMPL_ISUPPORTS(AdoptUTF8StringEnumerator, nsIUTF8StringEnumerator)
 
 NS_IMETHODIMP
 AdoptUTF8StringEnumerator::HasMore(bool *aResult)
 {
   *aResult = mIndex < mStrings->Length();
   return NS_OK;
 }
 
@@ -7697,17 +7697,17 @@ protected:
   nsCOMPtr<nsIMsgCopyServiceListener> m_copySrvcListener;
   nsCOMPtr<nsIMsgWindow> m_msgWindow;
   int32_t                 m_childIndex;
   nsCOMArray<nsIMsgFolder> m_srcChildFolders;
   nsCOMArray<nsIMsgFolder> m_destParents;
 
 };
 
-NS_IMPL_ISUPPORTS2(nsImapFolderCopyState, nsIUrlListener, nsIMsgCopyServiceListener)
+NS_IMPL_ISUPPORTS(nsImapFolderCopyState, nsIUrlListener, nsIMsgCopyServiceListener)
 
 nsImapFolderCopyState::nsImapFolderCopyState(nsIMsgFolder *destParent, nsIMsgFolder *srcFolder,
                                              bool isMoveFolder, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener)
 {
   m_origSrcFolder = do_QueryInterface(srcFolder);
   m_curDestParent = destParent;
   m_curSrcFolder = srcFolder;
   m_isMoveFolder = isMoveFolder;
@@ -8194,17 +8194,17 @@ nsImapMailCopyState::~nsImapMailCopyStat
       srcFolder->GetUriForMsg(m_message, uri);
     }
   }
   if (m_tmpFile)
     m_tmpFile->Remove(false);
 }
 
 
-NS_IMPL_ISUPPORTS1(nsImapMailCopyState, nsImapMailCopyState)
+NS_IMPL_ISUPPORTS(nsImapMailCopyState, nsImapMailCopyState)
 
 nsresult
 nsImapMailFolder::InitCopyState(nsISupports* srcSupport,
                                 nsIArray* messages,
                                 bool isMove,
                                 bool selectedState,
                                 bool acrossServers,
                                 uint32_t newMsgFlags,
--- a/mailnews/imap/src/nsImapOfflineSync.cpp
+++ b/mailnews/imap/src/nsImapOfflineSync.cpp
@@ -24,17 +24,17 @@
 #include "nsIMutableArray.h"
 #include "nsIAutoSyncManager.h"
 #include "nsAlgorithm.h"
 #include "nsArrayUtils.h"
 #include <algorithm>
 
 static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
 
-NS_IMPL_ISUPPORTS3(nsImapOfflineSync, nsIUrlListener, nsIMsgCopyServiceListener, nsIDBChangeListener)
+NS_IMPL_ISUPPORTS(nsImapOfflineSync, nsIUrlListener, nsIMsgCopyServiceListener, nsIDBChangeListener)
 
 nsImapOfflineSync::nsImapOfflineSync(nsIMsgWindow *window, nsIUrlListener *listener, nsIMsgFolder *singleFolderOnly, bool isPseudoOffline)
 {
   m_singleFolderToUpdate = singleFolderOnly;
   m_window = window;
   // not the perfect place for this, but I think it will work.
   if (m_window)
     m_window->SetStopped(false);
--- a/mailnews/imap/src/nsImapProtocol.cpp
+++ b/mailnews/imap/src/nsImapProtocol.cpp
@@ -118,17 +118,17 @@ class AutoProxyReleaseMsgWindow
 };
 
 nsIMsgWindow**
 getter_AddRefs(AutoProxyReleaseMsgWindow& aSmartPtr)
 {
   return aSmartPtr.StartAssignment();
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgImapHdrXferInfo, nsIImapHeaderXferInfo)
+NS_IMPL_ISUPPORTS(nsMsgImapHdrXferInfo, nsIImapHeaderXferInfo)
 
 nsMsgImapHdrXferInfo::nsMsgImapHdrXferInfo()
   : m_hdrInfos(kNumHdrsToXfer)
 {
   m_nextFreeHdrInfo = 0;
 }
 
 nsMsgImapHdrXferInfo::~nsMsgImapHdrXferInfo()
@@ -197,17 +197,17 @@ void nsMsgImapHdrXferInfo::ResetAll()
 }
 
 void nsMsgImapHdrXferInfo::ReleaseAll()
 {
   m_hdrInfos.Clear();
   m_nextFreeHdrInfo = 0;
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgImapLineDownloadCache, nsIImapHeaderInfo)
+NS_IMPL_ISUPPORTS(nsMsgImapLineDownloadCache, nsIImapHeaderInfo)
 
 // **** helper class for downloading line ****
 nsMsgImapLineDownloadCache::nsMsgImapLineDownloadCache()
 {
     fLineInfo = (msg_line_info *) PR_CALLOC(sizeof( msg_line_info));
     fLineInfo->uidOfMessage = nsMsgKey_None;
     m_msgSize = 0;
 }
@@ -8667,17 +8667,17 @@ nsImapCacheStreamListener::OnStopRequest
 }
 
 NS_IMETHODIMP
 nsImapCacheStreamListener::OnDataAvailable(nsIRequest *request, nsISupports * aCtxt, nsIInputStream * aInStream, uint64_t aSourceOffset, uint32_t aCount)
 {
   return mListener->OnDataAvailable(mChannelToUse, aCtxt, aInStream, aSourceOffset, aCount);
 }
 
-NS_IMPL_ISUPPORTS6(nsImapMockChannel, nsIImapMockChannel, nsIChannel,
+NS_IMPL_ISUPPORTS(nsImapMockChannel, nsIImapMockChannel, nsIChannel,
   nsIRequest, nsICacheListener, nsITransportEventSink, nsISupportsWeakReference)
 
 
 nsImapMockChannel::nsImapMockChannel()
 {
   m_channelContext = nullptr;
   m_cancelStatus = NS_OK;
   mLoadFlags = 0;
--- a/mailnews/imap/src/nsImapService.cpp
+++ b/mailnews/imap/src/nsImapService.cpp
@@ -78,17 +78,17 @@ static NS_DEFINE_CID(kCacheServiceCID, N
 
 static const char sequenceString[] = "SEQUENCE";
 static const char uidString[] = "UID";
 
 static bool gInitialized = false;
 static int32_t gMIMEOnDemandThreshold = 15000;
 static bool gMIMEOnDemand = false;
 
-NS_IMPL_ISUPPORTS6(nsImapService,
+NS_IMPL_ISUPPORTS(nsImapService,
                    nsIImapService,
                    nsIMsgMessageService,
                    nsIProtocolHandler,
                    nsIMsgProtocolInfo,
                    nsIMsgMessageFetchPartService,
                    nsIContentHandler)
 
 nsImapService::nsImapService()
--- a/mailnews/imap/src/nsImapUndoTxn.cpp
+++ b/mailnews/imap/src/nsImapUndoTxn.cpp
@@ -78,17 +78,17 @@ nsImapMoveCopyMsgTxn::Init(nsIMsgFolder*
   }
   return nsMsgTxn::Init();
 }
 
 nsImapMoveCopyMsgTxn::~nsImapMoveCopyMsgTxn()
 {
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(nsImapMoveCopyMsgTxn, nsMsgTxn, nsIUrlListener)
+NS_IMPL_ISUPPORTS_INHERITED(nsImapMoveCopyMsgTxn, nsMsgTxn, nsIUrlListener)
 
 NS_IMETHODIMP
 nsImapMoveCopyMsgTxn::UndoTransaction(void)
 {
   nsresult rv;
   nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
   NS_ENSURE_SUCCESS(rv, rv);
 
--- a/mailnews/imap/src/nsImapUtils.cpp
+++ b/mailnews/imap/src/nsImapUtils.cpp
@@ -122,17 +122,17 @@ nsresult nsCreateImapBaseMessageURI(cons
   if (tailURI.Find(kImapRootURI) == 0)
     tailURI.Cut(0, PL_strlen(kImapRootURI));
   baseMessageURI = kImapMessageRootURI;
   baseMessageURI += tailURI;
   return NS_OK;
 }
 
 // nsImapMailboxSpec definition
-NS_IMPL_ISUPPORTS1(nsImapMailboxSpec, nsIMailboxSpec)
+NS_IMPL_ISUPPORTS(nsImapMailboxSpec, nsIMailboxSpec)
 
 nsImapMailboxSpec::nsImapMailboxSpec()
 {
   mFolder_UIDVALIDITY = 0;
   mHighestModSeq = 0;
   mNumOfMessages = 0;
   mNumOfUnseenMessages = 0;
   mNumOfRecentMessages = 0;
--- a/mailnews/imap/src/nsSyncRunnableHelpers.cpp
+++ b/mailnews/imap/src/nsSyncRunnableHelpers.cpp
@@ -4,22 +4,22 @@
 
 #include "nsSyncRunnableHelpers.h"
 #include "nsIMsgMailNewsUrl.h"
 #include "nsIMsgWindow.h"
 #include "nsImapMailFolder.h"
 
 #include "mozilla/Monitor.h"
 
-NS_IMPL_ISUPPORTS1(StreamListenerProxy, nsIStreamListener)
-NS_IMPL_ISUPPORTS1(ImapMailFolderSinkProxy, nsIImapMailFolderSink)
-NS_IMPL_ISUPPORTS1(ImapServerSinkProxy, nsIImapServerSink)
-NS_IMPL_ISUPPORTS1(ImapMessageSinkProxy,
+NS_IMPL_ISUPPORTS(StreamListenerProxy, nsIStreamListener)
+NS_IMPL_ISUPPORTS(ImapMailFolderSinkProxy, nsIImapMailFolderSink)
+NS_IMPL_ISUPPORTS(ImapServerSinkProxy, nsIImapServerSink)
+NS_IMPL_ISUPPORTS(ImapMessageSinkProxy,
                               nsIImapMessageSink)
-NS_IMPL_ISUPPORTS1(ImapProtocolSinkProxy,
+NS_IMPL_ISUPPORTS(ImapProtocolSinkProxy,
                               nsIImapProtocolSink)
 namespace {
 
 // Traits class for a reference type, specialized for parameters which are
 // already references.
 template<typename T>
 struct RefType
 {
--- a/mailnews/import/applemail/src/nsAppleMailImport.cpp
+++ b/mailnews/import/applemail/src/nsAppleMailImport.cpp
@@ -63,17 +63,17 @@ nsAppleMailImportModule::nsAppleMailImpo
 
 
 nsAppleMailImportModule::~nsAppleMailImportModule()
 {
   IMPORT_LOG0("nsAppleMailImportModule Deleted");
 }
 
 
-NS_IMPL_ISUPPORTS1(nsAppleMailImportModule, nsIImportModule)
+NS_IMPL_ISUPPORTS(nsAppleMailImportModule, nsIImportModule)
 
 
 NS_IMETHODIMP nsAppleMailImportModule::GetName(char16_t **aName)
 {
   return mBundle ?
     mBundle->GetStringFromID(APPLEMAILIMPORT_NAME, aName) : NS_ERROR_FAILURE;
 }
 
@@ -148,17 +148,17 @@ nsresult nsAppleMailImportMail::Initiali
   return bundleService->CreateBundle(APPLEMAIL_MSGS_URL, getter_AddRefs(mBundle));
 }
 
 nsAppleMailImportMail::~nsAppleMailImportMail()
 {
   IMPORT_LOG0("nsAppleMailImportMail destroyed");
 }
 
-NS_IMPL_ISUPPORTS1(nsAppleMailImportMail, nsIImportMail)
+NS_IMPL_ISUPPORTS(nsAppleMailImportMail, nsIImportMail)
 
 NS_IMETHODIMP nsAppleMailImportMail::GetDefaultLocation(nsIFile **aLocation, bool *aFound, bool *aUserVerify)
 {
   NS_ENSURE_ARG_POINTER(aFound);
   NS_ENSURE_ARG_POINTER(aLocation);
   NS_ENSURE_ARG_POINTER(aUserVerify);
 
   *aLocation = nullptr;
--- a/mailnews/import/eudora/src/nsEudoraCompose.cpp
+++ b/mailnews/import/eudora/src/nsEudoraCompose.cpp
@@ -131,17 +131,17 @@ public:
   void Reset() { m_done = false;  m_location = nullptr;}
 
 public:
   bool m_done;
   nsCOMPtr <nsIFile> m_location;
 };
 
 
-NS_IMPL_ISUPPORTS1(EudoraSendListener, nsIMsgSendListener)
+NS_IMPL_ISUPPORTS(EudoraSendListener, nsIMsgSendListener)
 
 nsresult EudoraSendListener::CreateSendListener(nsIMsgSendListener **ppListener)
 {
   NS_ENSURE_ARG_POINTER(ppListener);
   *ppListener = new EudoraSendListener();
   NS_ENSURE_TRUE(*ppListener, NS_ERROR_OUT_OF_MEMORY);
   NS_ADDREF(*ppListener);
   return NS_OK;
--- a/mailnews/import/eudora/src/nsEudoraFilters.cpp
+++ b/mailnews/import/eudora/src/nsEudoraFilters.cpp
@@ -52,17 +52,17 @@ nsresult nsEudoraFilters::Create(nsIImpo
 nsEudoraFilters::nsEudoraFilters()
 {
 }
 
 nsEudoraFilters::~nsEudoraFilters()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsEudoraFilters, nsIImportFilters)
+NS_IMPL_ISUPPORTS(nsEudoraFilters, nsIImportFilters)
 
 NS_IMETHODIMP nsEudoraFilters::AutoLocate(char16_t **aDescription, nsIFile **aLocation, bool *_retval)
 {
   NS_ENSURE_ARG_POINTER(aDescription);
   NS_ENSURE_ARG_POINTER(aLocation);
   NS_ENSURE_ARG_POINTER(_retval);
 
   *aDescription = nullptr;
--- a/mailnews/import/eudora/src/nsEudoraImport.cpp
+++ b/mailnews/import/eudora/src/nsEudoraImport.cpp
@@ -180,17 +180,17 @@ nsEudoraImport::nsEudoraImport()
 
 nsEudoraImport::~nsEudoraImport()
 {
   IMPORT_LOG0("nsEudoraImport Module Deleted\n");
 }
 
 
 
-NS_IMPL_ISUPPORTS1(nsEudoraImport, nsIImportModule)
+NS_IMPL_ISUPPORTS(nsEudoraImport, nsIImportModule)
 
 
 NS_IMETHODIMP nsEudoraImport::GetName(char16_t **name)
 {
   NS_PRECONDITION(name != nullptr, "null ptr");
   if (! name)
     return NS_ERROR_NULL_POINTER;
 
@@ -401,17 +401,17 @@ ImportEudoraMailImpl::~ImportEudoraMailI
 {
   // We're done importing mail, so nsEudoraCompose no longer needs the identity
   // that it creates when we import any mail.
   nsEudoraCompose::ReleaseIdentity();
 }
 
 
 
-NS_IMPL_ISUPPORTS1(ImportEudoraMailImpl, nsIImportMail)
+NS_IMPL_ISUPPORTS(ImportEudoraMailImpl, nsIImportMail)
 
 NS_IMETHODIMP ImportEudoraMailImpl::GetDefaultLocation(nsIFile **ppLoc, bool *found, bool *userVerify)
 {
   NS_PRECONDITION(ppLoc != nullptr, "null ptr");
   NS_PRECONDITION(found != nullptr, "null ptr");
   NS_PRECONDITION(userVerify != nullptr, "null ptr");
   if (!ppLoc || !found || !userVerify)
     return NS_ERROR_NULL_POINTER;
@@ -600,17 +600,17 @@ ImportEudoraAddressImpl::ImportEudoraAdd
 
 
 ImportEudoraAddressImpl::~ImportEudoraAddressImpl()
 {
 }
 
 
 
-NS_IMPL_ISUPPORTS1(ImportEudoraAddressImpl, nsIImportAddressBooks)
+NS_IMPL_ISUPPORTS(ImportEudoraAddressImpl, nsIImportAddressBooks)
 
 
 NS_IMETHODIMP ImportEudoraAddressImpl::GetAutoFind(char16_t **description, bool *_retval)
 {
   NS_PRECONDITION(description != nullptr, "null ptr");
   NS_PRECONDITION(_retval != nullptr, "null ptr");
   if (! description || !_retval)
     return NS_ERROR_NULL_POINTER;
--- a/mailnews/import/eudora/src/nsEudoraSettings.cpp
+++ b/mailnews/import/eudora/src/nsEudoraSettings.cpp
@@ -41,17 +41,17 @@ nsresult nsEudoraSettings::Create(nsIImp
 nsEudoraSettings::nsEudoraSettings()
 {
 }
 
 nsEudoraSettings::~nsEudoraSettings()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsEudoraSettings, nsIImportSettings)
+NS_IMPL_ISUPPORTS(nsEudoraSettings, nsIImportSettings)
 
 NS_IMETHODIMP nsEudoraSettings::AutoLocate(char16_t **description, nsIFile **location, bool *_retval)
 {
     NS_PRECONDITION(description != nullptr, "null ptr");
     NS_PRECONDITION(_retval != nullptr, "null ptr");
     NS_PRECONDITION(location != nullptr, "null ptr");
   if (!description || !_retval || !location)
     return NS_ERROR_NULL_POINTER;
--- a/mailnews/import/oexpress/nsOEImport.cpp
+++ b/mailnews/import/oexpress/nsOEImport.cpp
@@ -155,17 +155,17 @@ nsOEImport::nsOEImport()
 }
 
 
 nsOEImport::~nsOEImport()
 {
   IMPORT_LOG0("nsOEImport Module Deleted\n");
 }
 
-NS_IMPL_ISUPPORTS1(nsOEImport, nsIImportModule)
+NS_IMPL_ISUPPORTS(nsOEImport, nsIImportModule)
 
 NS_IMETHODIMP nsOEImport::GetName(char16_t **name)
 {
   NS_ENSURE_ARG_POINTER(name);
 
   *name = nsOEStringBundle::GetStringByID(OEIMPORT_NAME);
 
     return NS_OK;
@@ -280,17 +280,17 @@ ImportOEMailImpl::ImportOEMailImpl()
 {
 }
 
 
 ImportOEMailImpl::~ImportOEMailImpl()
 {
 }
 
-NS_IMPL_ISUPPORTS1(ImportOEMailImpl, nsIImportMail)
+NS_IMPL_ISUPPORTS(ImportOEMailImpl, nsIImportMail)
 
 NS_IMETHODIMP ImportOEMailImpl::TranslateFolderName(const nsAString & aFolderName, nsAString & _retval)
 {
   if (aFolderName.LowerCaseEqualsLiteral("deleted items"))
       _retval = NS_LITERAL_STRING(kDestTrashFolderName);
   else if (aFolderName.LowerCaseEqualsLiteral("sent items"))
       _retval = NS_LITERAL_STRING(kDestSentFolderName);
   else if (aFolderName.LowerCaseEqualsLiteral("outbox"))
@@ -474,17 +474,17 @@ ImportOEAddressImpl::ImportOEAddressImpl
 
 
 ImportOEAddressImpl::~ImportOEAddressImpl()
 {
   if (m_pWab)
     delete m_pWab;
 }
 
-NS_IMPL_ISUPPORTS1(ImportOEAddressImpl, nsIImportAddressBooks)
+NS_IMPL_ISUPPORTS(ImportOEAddressImpl, nsIImportAddressBooks)
 
 NS_IMETHODIMP ImportOEAddressImpl::GetDefaultLocation(nsIFile **aLocation,
                                                       bool *aFound,
                                                       bool *aUserVerify)
 {
   NS_ENSURE_ARG_POINTER(aLocation);
   NS_ENSURE_ARG_POINTER(aFound);
   NS_ENSURE_ARG_POINTER(aUserVerify);
--- a/mailnews/import/oexpress/nsOESettings.cpp
+++ b/mailnews/import/oexpress/nsOESettings.cpp
@@ -112,17 +112,17 @@ nsresult nsOESettings::Create(nsIImportS
 nsOESettings::nsOESettings()
 {
 }
 
 nsOESettings::~nsOESettings()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsOESettings, nsIImportSettings)
+NS_IMPL_ISUPPORTS(nsOESettings, nsIImportSettings)
 
 NS_IMETHODIMP nsOESettings::AutoLocate(char16_t **description, nsIFile **location, bool *_retval)
 {
   NS_PRECONDITION(description != nullptr, "null ptr");
   NS_PRECONDITION(_retval != nullptr, "null ptr");
   if (!description || !_retval)
     return NS_ERROR_NULL_POINTER;
 
--- a/mailnews/import/outlook/src/nsOutlookCompose.cpp
+++ b/mailnews/import/outlook/src/nsOutlookCompose.cpp
@@ -151,17 +151,17 @@ public:
   static nsresult CreateSendListener(nsIMsgSendListener **ppListener);
   void Reset() { m_done = false; NS_IF_RELEASE(m_location);}
 
 public:
   bool m_done;
   nsIFile * m_location;
 };
 
-NS_IMPL_ISUPPORTS1(OutlookSendListener, nsIMsgSendListener)
+NS_IMPL_ISUPPORTS(OutlookSendListener, nsIMsgSendListener)
 
 nsresult OutlookSendListener::CreateSendListener(nsIMsgSendListener **ppListener)
 {
   NS_PRECONDITION(ppListener != nullptr, "null ptr");
   NS_ENSURE_ARG_POINTER(ppListener);
 
   *ppListener = new OutlookSendListener();
   if (! *ppListener)
--- a/mailnews/import/outlook/src/nsOutlookImport.cpp
+++ b/mailnews/import/outlook/src/nsOutlookImport.cpp
@@ -153,17 +153,17 @@ nsOutlookImport::nsOutlookImport()
 }
 
 
 nsOutlookImport::~nsOutlookImport()
 {
   IMPORT_LOG0("nsOutlookImport Module Deleted\n");
 }
 
-NS_IMPL_ISUPPORTS1(nsOutlookImport, nsIImportModule)
+NS_IMPL_ISUPPORTS(nsOutlookImport, nsIImportModule)
 
 NS_IMETHODIMP nsOutlookImport::GetName(char16_t **name)
 {
   NS_PRECONDITION(name != nullptr, "null ptr");
   if (! name)
     return NS_ERROR_NULL_POINTER;
 
   *name = nsOutlookStringBundle::GetStringByID(OUTLOOKIMPORT_NAME);
@@ -291,17 +291,17 @@ ImportOutlookMailImpl::ImportOutlookMail
   nsOutlookCompose::CreateIdentity();
 }
 
 ImportOutlookMailImpl::~ImportOutlookMailImpl()
 {
   nsOutlookCompose::ReleaseIdentity();
 }
 
-NS_IMPL_ISUPPORTS1(ImportOutlookMailImpl, nsIImportMail)
+NS_IMPL_ISUPPORTS(ImportOutlookMailImpl, nsIImportMail)
 
 NS_IMETHODIMP ImportOutlookMailImpl::GetDefaultLocation(nsIFile **ppLoc, bool *found, bool *userVerify)
 {
   NS_PRECONDITION(ppLoc != nullptr, "null ptr");
   NS_PRECONDITION(found != nullptr, "null ptr");
   NS_PRECONDITION(userVerify != nullptr, "null ptr");
   if (!ppLoc || !found || !userVerify)
     return NS_ERROR_NULL_POINTER;
@@ -480,17 +480,17 @@ ImportOutlookAddressImpl::ImportOutlookA
   m_msgCount = 0;
   m_msgTotal = 0;
 }
 
 ImportOutlookAddressImpl::~ImportOutlookAddressImpl()
 {
 }
 
-NS_IMPL_ISUPPORTS1(ImportOutlookAddressImpl, nsIImportAddressBooks)
+NS_IMPL_ISUPPORTS(ImportOutlookAddressImpl, nsIImportAddressBooks)
 
 NS_IMETHODIMP ImportOutlookAddressImpl::GetAutoFind(char16_t **description, bool *_retval)
 {
   NS_PRECONDITION(description != nullptr, "null ptr");
   NS_PRECONDITION(_retval != nullptr, "null ptr");
   if (! description || !_retval)
     return NS_ERROR_NULL_POINTER;
 
--- a/mailnews/import/outlook/src/nsOutlookSettings.cpp
+++ b/mailnews/import/outlook/src/nsOutlookSettings.cpp
@@ -95,17 +95,17 @@ nsresult nsOutlookSettings::Create(nsIIm
 nsOutlookSettings::nsOutlookSettings()
 {
 }
 
 nsOutlookSettings::~nsOutlookSettings()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsOutlookSettings, nsIImportSettings)
+NS_IMPL_ISUPPORTS(nsOutlookSettings, nsIImportSettings)
 
 NS_IMETHODIMP nsOutlookSettings::AutoLocate(char16_t **description, nsIFile **location, bool *_retval)
 {
     NS_PRECONDITION(description != nullptr, "null ptr");
     NS_PRECONDITION(_retval != nullptr, "null ptr");
   if (!description || !_retval)
     return NS_ERROR_NULL_POINTER;
 
--- a/mailnews/import/src/nsImportABDescriptor.cpp
+++ b/mailnews/import/src/nsImportABDescriptor.cpp
@@ -19,14 +19,14 @@ NS_METHOD nsImportABDescriptor::Create(n
     return NS_ERROR_OUT_OF_MEMORY;
 
   NS_ADDREF(it);
   nsresult rv = it->QueryInterface(aIID, aResult);
   NS_RELEASE(it);
   return rv;
 }
 
-NS_IMPL_ISUPPORTS1(nsImportABDescriptor, nsIImportABDescriptor)
+NS_IMPL_ISUPPORTS(nsImportABDescriptor, nsIImportABDescriptor)
 
 nsImportABDescriptor::nsImportABDescriptor()
   : mId(0), mRef(0), mSize(0), mImport(true)
 {
 }
--- a/mailnews/import/src/nsImportAddressBooks.cpp
+++ b/mailnews/import/src/nsImportAddressBooks.cpp
@@ -164,17 +164,17 @@ nsImportGenericAddressBooks::~nsImportGe
   NS_IF_RELEASE(m_pFieldMap);
   NS_IF_RELEASE(m_pInterface);
   NS_IF_RELEASE(m_pSuccessLog);
   NS_IF_RELEASE(m_pErrorLog);
 }
 
 
 
-NS_IMPL_ISUPPORTS1(nsImportGenericAddressBooks, nsIImportGeneric)
+NS_IMPL_ISUPPORTS(nsImportGenericAddressBooks, nsIImportGeneric)
 
 
 NS_IMETHODIMP nsImportGenericAddressBooks::GetData(const char *dataId, nsISupports **_retval)
 {
   NS_PRECONDITION(_retval != nullptr, "null ptr");
   if (!_retval)
     return NS_ERROR_NULL_POINTER;
 
--- a/mailnews/import/src/nsImportEmbeddedImageData.cpp
+++ b/mailnews/import/src/nsImportEmbeddedImageData.cpp
@@ -1,16 +1,16 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsImportEmbeddedImageData.h"
 
-NS_IMPL_ISUPPORTS1(nsImportEmbeddedImageData, nsIMsgEmbeddedImageData)
+NS_IMPL_ISUPPORTS(nsImportEmbeddedImageData, nsIMsgEmbeddedImageData)
 
 nsImportEmbeddedImageData::nsImportEmbeddedImageData()
 {
 }
 
 nsImportEmbeddedImageData::nsImportEmbeddedImageData(
   nsIURI *aUri, const nsACString &aCid) : m_uri(aUri), m_cid(aCid)
 {
--- a/mailnews/import/src/nsImportFieldMap.cpp
+++ b/mailnews/import/src/nsImportFieldMap.cpp
@@ -25,17 +25,17 @@ NS_METHOD nsImportFieldMap::Create(nsISt
     return NS_ERROR_OUT_OF_MEMORY;
 
   NS_ADDREF(it);
   nsresult rv = it->QueryInterface(aIID, aResult);
   NS_RELEASE(it);
   return rv;
 }
 
-NS_IMPL_ISUPPORTS1(nsImportFieldMap, nsIImportFieldMap)
+NS_IMPL_ISUPPORTS(nsImportFieldMap, nsIImportFieldMap)
 
 NS_IMPL_GETSET(nsImportFieldMap, SkipFirstRecord, bool, m_skipFirstRecord)
 
 nsImportFieldMap::nsImportFieldMap(nsIStringBundle *aBundle)
 {
   m_numFields = 0;
   m_pFields = nullptr;
   m_pActive = nullptr;
--- a/mailnews/import/src/nsImportMail.cpp
+++ b/mailnews/import/src/nsImportMail.cpp
@@ -204,17 +204,17 @@ nsImportGenericMail::~nsImportGenericMai
   NS_IF_RELEASE(m_pInterface);
   NS_IF_RELEASE(m_pMailboxes);
   NS_IF_RELEASE(m_pSuccessLog);
   NS_IF_RELEASE(m_pErrorLog);
 }
 
 
 
-NS_IMPL_ISUPPORTS1(nsImportGenericMail, nsIImportGeneric)
+NS_IMPL_ISUPPORTS(nsImportGenericMail, nsIImportGeneric)
 
 
 NS_IMETHODIMP nsImportGenericMail::GetData(const char *dataId, nsISupports **_retval)
 {
   nsresult rv = NS_OK;
 
   NS_PRECONDITION(_retval != nullptr, "null ptr");
   if (!_retval)
--- a/mailnews/import/src/nsImportMailboxDescriptor.cpp
+++ b/mailnews/import/src/nsImportMailboxDescriptor.cpp
@@ -22,17 +22,17 @@ NS_METHOD nsImportMailboxDescriptor::Cre
     return NS_ERROR_OUT_OF_MEMORY;
 
   NS_ADDREF(it);
   nsresult rv = it->QueryInterface(aIID, aResult);
   NS_RELEASE(it);
   return rv;
 }
 
-NS_IMPL_ISUPPORTS1(nsImportMailboxDescriptor, nsIImportMailboxDescriptor)
+NS_IMPL_ISUPPORTS(nsImportMailboxDescriptor, nsIImportMailboxDescriptor)
 
 nsImportMailboxDescriptor::nsImportMailboxDescriptor()
 {
   m_import = true;
   m_size = 0;
   m_depth = 0;
   m_id = 0;
         m_pFile = do_CreateInstance(NS_LOCAL_FILE_CONTRACTID);
--- a/mailnews/import/src/nsImportMimeEncode.cpp
+++ b/mailnews/import/src/nsImportMimeEncode.cpp
@@ -356,17 +356,17 @@ nsIImportMimeEncodeImpl::nsIImportMimeEn
 nsIImportMimeEncodeImpl::~nsIImportMimeEncodeImpl()
 {
   if (m_pOut)
     delete m_pOut;
   if (m_pEncode)
     delete m_pEncode;
 }
 
-NS_IMPL_ISUPPORTS1(nsIImportMimeEncodeImpl, nsIImportMimeEncode)
+NS_IMPL_ISUPPORTS(nsIImportMimeEncodeImpl, nsIImportMimeEncode)
 
 NS_METHOD nsIImportMimeEncodeImpl::EncodeFile(nsIFile *inFile, nsIFile *outFile, const char *fileName, const char *mimeType)
 {
   return Initialize(inFile, outFile, fileName, mimeType);
 }
 
 NS_METHOD nsIImportMimeEncodeImpl::DoWork(bool *done, bool *_retval)
 {
--- a/mailnews/import/src/nsImportService.cpp
+++ b/mailnews/import/src/nsImportService.cpp
@@ -78,17 +78,17 @@ nsImportService::~nsImportService()
     if (m_pModules != nullptr)
         delete m_pModules;
 
   IMPORT_LOG0("* nsImport Service Deleted\n");
 }
 
 
 
-NS_IMPL_ISUPPORTS1(nsImportService, nsIImportService)
+NS_IMPL_ISUPPORTS(nsImportService, nsIImportService)
 
 
 NS_IMETHODIMP nsImportService::DiscoverModules(void)
 {
   m_didDiscovery = false;
   return DoDiscover();
 }
 
--- a/mailnews/import/text/src/nsTextImport.cpp
+++ b/mailnews/import/text/src/nsTextImport.cpp
@@ -127,17 +127,17 @@ nsTextImport::nsTextImport()
                                         getter_AddRefs(m_stringBundle));
 }
 
 nsTextImport::~nsTextImport()
 {
   IMPORT_LOG0("nsTextImport Module Deleted\n");
 }
 
-NS_IMPL_ISUPPORTS1(nsTextImport, nsIImportModule)
+NS_IMPL_ISUPPORTS(nsTextImport, nsIImportModule)
 
 NS_IMETHODIMP nsTextImport::GetName(char16_t **name)
 {
   NS_ENSURE_ARG_POINTER(name);
   *name = nsImportStringBundle::GetStringByID(TEXTIMPORT_NAME, m_stringBundle);
   return NS_OK;
 }
 
@@ -214,17 +214,17 @@ nsresult ImportAddressImpl::Create(nsIIm
 }
 
 ImportAddressImpl::ImportAddressImpl(nsIStringBundle* aStringBundle) :
   m_notProxyBundle(aStringBundle)
 {
   m_haveDelim = false;
 }
 
-NS_IMPL_ISUPPORTS1(ImportAddressImpl, nsIImportAddressBooks)
+NS_IMPL_ISUPPORTS(ImportAddressImpl, nsIImportAddressBooks)
 
 
 NS_IMETHODIMP ImportAddressImpl::GetAutoFind(char16_t **addrDescription, bool *_retval)
 {
   NS_PRECONDITION(addrDescription != nullptr, "null ptr");
   NS_PRECONDITION(_retval != nullptr, "null ptr");
   if (! addrDescription || !_retval)
     return NS_ERROR_NULL_POINTER;
--- a/mailnews/import/vcard/src/nsVCardImport.cpp
+++ b/mailnews/import/vcard/src/nsVCardImport.cpp
@@ -108,17 +108,17 @@ nsVCardImport::nsVCardImport()
   IMPORT_LOG0("nsVCardImport Module Created\n");
 }
 
 nsVCardImport::~nsVCardImport()
 {
   IMPORT_LOG0("nsVCardImport Module Deleted\n");
 }
 
-NS_IMPL_ISUPPORTS1(nsVCardImport, nsIImportModule)
+NS_IMPL_ISUPPORTS(nsVCardImport, nsIImportModule)
 
 NS_IMETHODIMP nsVCardImport::GetName(char16_t **name)
 {
   NS_ENSURE_ARG_POINTER(name);
   *name = nsImportStringBundle::GetStringByName(
       "vCardImportName", m_stringBundle);
   return NS_OK;
 }
@@ -190,17 +190,17 @@ ImportVCardAddressImpl::ImportVCardAddre
     nsIStringBundle* aStringBundle) : m_notProxyBundle(aStringBundle)
 {
 }
 
 ImportVCardAddressImpl::~ImportVCardAddressImpl()
 {
 }
 
-NS_IMPL_ISUPPORTS1(ImportVCardAddressImpl, nsIImportAddressBooks)
+NS_IMPL_ISUPPORTS(ImportVCardAddressImpl, nsIImportAddressBooks)
 
 NS_IMETHODIMP ImportVCardAddressImpl::GetAutoFind(
     char16_t **addrDescription, bool *_retval)
 {
   NS_ENSURE_ARG_POINTER(addrDescription);
   NS_ENSURE_ARG_POINTER(_retval);
 
   nsString str;
--- a/mailnews/import/winlivemail/nsWMImport.cpp
+++ b/mailnews/import/winlivemail/nsWMImport.cpp
@@ -91,17 +91,17 @@ nsWMImport::nsWMImport()
   nsWMStringBundle::GetStringBundle();
 }
 
 nsWMImport::~nsWMImport()
 {
   IMPORT_LOG0("nsWMImport Module Deleted\n");
 }
 
-NS_IMPL_ISUPPORTS1(nsWMImport, nsIImportModule)
+NS_IMPL_ISUPPORTS(nsWMImport, nsIImportModule)
 
 NS_IMETHODIMP nsWMImport::GetName(char16_t **name)
 {
   NS_ENSURE_ARG_POINTER(name);
   // nsString  title = "Windows Live Mail";
   // *name = ToNewUnicode(title);
   *name = nsWMStringBundle::GetStringByID(WMIMPORT_NAME);
 
@@ -173,17 +173,17 @@ nsresult ImportWMMailImpl::Create(nsIImp
 ImportWMMailImpl::ImportWMMailImpl()
 {
 }
 
 ImportWMMailImpl::~ImportWMMailImpl()
 {
 }
 
-NS_IMPL_ISUPPORTS1(ImportWMMailImpl, nsIImportMail)
+NS_IMPL_ISUPPORTS(ImportWMMailImpl, nsIImportMail)
 
 NS_IMETHODIMP ImportWMMailImpl::TranslateFolderName(const nsAString & aFolderName, nsAString & _retval)
 {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 NS_IMETHODIMP ImportWMMailImpl::GetDefaultLocation(nsIFile **ppLoc, bool *found,
                                                    bool *userVerify)
--- a/mailnews/import/winlivemail/nsWMSettings.cpp
+++ b/mailnews/import/winlivemail/nsWMSettings.cpp
@@ -91,17 +91,17 @@ nsresult nsWMSettings::Create(nsIImportS
 nsWMSettings::nsWMSettings()
 {
 }
 
 nsWMSettings::~nsWMSettings()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsWMSettings, nsIImportSettings)
+NS_IMPL_ISUPPORTS(nsWMSettings, nsIImportSettings)
 
 NS_IMETHODIMP nsWMSettings::AutoLocate(char16_t **description,
                                        nsIFile **location, bool *_retval)
 {
   NS_PRECONDITION(description != nullptr, "null ptr");
   NS_PRECONDITION(_retval != nullptr, "null ptr");
   if (!description || !_retval)
     return NS_ERROR_NULL_POINTER;
--- a/mailnews/local/src/nsLocalMailFolder.cpp
+++ b/mailnews/local/src/nsLocalMailFolder.cpp
@@ -122,17 +122,17 @@ nsMsgLocalMailFolder::nsMsgLocalMailFold
     mDownloadState(DOWNLOAD_STATE_NONE)
 {
 }
 
 nsMsgLocalMailFolder::~nsMsgLocalMailFolder(void)
 {
 }
 
-NS_IMPL_ISUPPORTS_INHERITED2(nsMsgLocalMailFolder,
+NS_IMPL_ISUPPORTS_INHERITED(nsMsgLocalMailFolder,
                              nsMsgDBFolder,
                              nsICopyMessageListener,
                              nsIMsgLocalMailFolder)
 
 ////////////////////////////////////////////////////////////////////////////////
 
 NS_IMETHODIMP
 nsMsgLocalMailFolder::Init(const char* aURI)
--- a/mailnews/local/src/nsLocalUndoTxn.cpp
+++ b/mailnews/local/src/nsLocalUndoTxn.cpp
@@ -15,17 +15,17 @@
 #include "nsIMsgFolderNotificationService.h"
 #include "nsThreadUtils.h"
 #include "nsIMsgDatabase.h"
 #include "nsIMutableArray.h"
 #include "nsServiceManagerUtils.h"
 #include "nsComponentManagerUtils.h"
 #include "nsMsgUtils.h"
 
-NS_IMPL_ISUPPORTS_INHERITED1(nsLocalMoveCopyMsgTxn, nsMsgTxn, nsIFolderListener)
+NS_IMPL_ISUPPORTS_INHERITED(nsLocalMoveCopyMsgTxn, nsMsgTxn, nsIFolderListener)
 
 nsLocalMoveCopyMsgTxn::nsLocalMoveCopyMsgTxn()  : m_srcIsImap4(false),
   m_canUndelete(false)
 {
 }
 
 nsLocalMoveCopyMsgTxn::~nsLocalMoveCopyMsgTxn()
 {
@@ -480,17 +480,17 @@ NS_IMETHODIMP nsLocalMoveCopyMsgTxn::OnI
   return NS_OK;
 }
 
 NS_IMETHODIMP nsLocalMoveCopyMsgTxn::OnItemEvent(nsIMsgFolder *aItem, nsIAtom *aEvent)
 {
   return NS_OK;
 }
 
-NS_IMPL_ISUPPORTS1(nsLocalUndoFolderListener, nsIFolderListener)
+NS_IMPL_ISUPPORTS(nsLocalUndoFolderListener, nsIFolderListener)
 
 nsLocalUndoFolderListener::nsLocalUndoFolderListener(nsLocalMoveCopyMsgTxn *aTxn, nsIMsgFolder *aFolder)
 {
   mTxn = aTxn;
   mFolder = aFolder;
 }
 
 nsLocalUndoFolderListener::~nsLocalUndoFolderListener()
--- a/mailnews/local/src/nsMailboxService.cpp
+++ b/mailnews/local/src/nsMailboxService.cpp
@@ -30,17 +30,17 @@
 nsMailboxService::nsMailboxService()
 {
     mPrintingOperation = false;
 }
 
 nsMailboxService::~nsMailboxService()
 {}
 
-NS_IMPL_ISUPPORTS4(nsMailboxService, nsIMailboxService, nsIMsgMessageService, nsIProtocolHandler, nsIMsgMessageFetchPartService)
+NS_IMPL_ISUPPORTS(nsMailboxService, nsIMailboxService, nsIMsgMessageService, nsIProtocolHandler, nsIMsgMessageFetchPartService)
 
 nsresult nsMailboxService::ParseMailbox(nsIMsgWindow *aMsgWindow, nsIFile *aMailboxPath, nsIStreamListener *aMailboxParser,
                     nsIUrlListener * aUrlListener, nsIURI ** aURL)
 {
   NS_ENSURE_ARG_POINTER(aMailboxPath);
 
   nsresult rv;
   nsCOMPtr<nsIMailboxUrl> mailboxurl =
--- a/mailnews/local/src/nsMovemailIncomingServer.cpp
+++ b/mailnews/local/src/nsMovemailIncomingServer.cpp
@@ -11,17 +11,17 @@
 #include "msgCore.h" // pre-compiled headers
 #include "nsMovemailIncomingServer.h"
 #include "nsServiceManagerUtils.h"
 
 
 static NS_DEFINE_CID(kCMovemailServiceCID, NS_MOVEMAILSERVICE_CID);
 
 
-NS_IMPL_ISUPPORTS_INHERITED2(nsMovemailIncomingServer,
+NS_IMPL_ISUPPORTS_INHERITED(nsMovemailIncomingServer,
                              nsMsgIncomingServer,
                              nsIMovemailIncomingServer,
                              nsILocalMailIncomingServer)
 
                             
 
 nsMovemailIncomingServer::nsMovemailIncomingServer()
 {    
--- a/mailnews/local/src/nsMovemailService.cpp
+++ b/mailnews/local/src/nsMovemailService.cpp
@@ -104,17 +104,17 @@ nsMovemailService::nsMovemailService()
 #endif
   LOG(("nsMovemailService created: 0x%x\n", this));
 }
 
 nsMovemailService::~nsMovemailService()
 {}
 
 
-NS_IMPL_ISUPPORTS2(nsMovemailService,
+NS_IMPL_ISUPPORTS(nsMovemailService,
                    nsIMovemailService,
                    nsIMsgProtocolInfo)
 
 
 NS_IMETHODIMP
 nsMovemailService::CheckForNewMail(nsIUrlListener * aUrlListener,
                                    nsIMsgFolder *inbox,
                                    nsIMovemailIncomingServer *movemailServer,
--- a/mailnews/local/src/nsMsgBrkMBoxStore.cpp
+++ b/mailnews/local/src/nsMsgBrkMBoxStore.cpp
@@ -41,17 +41,17 @@
 nsMsgBrkMBoxStore::nsMsgBrkMBoxStore()
 {
 }
 
 nsMsgBrkMBoxStore::~nsMsgBrkMBoxStore()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgBrkMBoxStore, nsIMsgPluggableStore)
+NS_IMPL_ISUPPORTS(nsMsgBrkMBoxStore, nsIMsgPluggableStore)
 
 NS_IMETHODIMP nsMsgBrkMBoxStore::DiscoverSubFolders(nsIMsgFolder *aParentFolder,
                                                     bool aDeep)
 {
   NS_ENSURE_ARG_POINTER(aParentFolder);
 
   nsCOMPtr<nsIFile> path;
   nsresult rv = aParentFolder->GetFilePath(getter_AddRefs(path));
--- a/mailnews/local/src/nsMsgMaildirStore.cpp
+++ b/mailnews/local/src/nsMsgMaildirStore.cpp
@@ -42,17 +42,17 @@ nsMsgMaildirStore::nsMsgMaildirStore()
 {
   MailDirLog = PR_NewLogModule("MailDirStore");
 }
 
 nsMsgMaildirStore::~nsMsgMaildirStore()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgMaildirStore, nsIMsgPluggableStore)
+NS_IMPL_ISUPPORTS(nsMsgMaildirStore, nsIMsgPluggableStore)
 
 // Iterates over the folders in the "path" directory, and adds subfolders to
 // parent for each Maildir folder found.
 nsresult nsMsgMaildirStore::AddSubFolders(nsIMsgFolder *parent, nsIFile *path,
                                           bool deep)
 {
   nsCOMArray<nsIFile> currentDirEntries;
 
--- a/mailnews/local/src/nsNoIncomingServer.cpp
+++ b/mailnews/local/src/nsNoIncomingServer.cpp
@@ -14,17 +14,17 @@
 #include "nsIMsgLocalMailFolder.h"
 #include "nsIMsgMailSession.h"
 #include "nsMsgBaseCID.h"
 #include "nsIMsgAccountManager.h"
 #include "nsIPop3IncomingServer.h"
 #include "nsServiceManagerUtils.h"
 #include "nsMsgUtils.h"
 
-NS_IMPL_ISUPPORTS_INHERITED2(nsNoIncomingServer,
+NS_IMPL_ISUPPORTS_INHERITED(nsNoIncomingServer,
                             nsMsgIncomingServer,
                             nsINoIncomingServer,
                             nsILocalMailIncomingServer)
 
 nsNoIncomingServer::nsNoIncomingServer()
 {
 }
 
--- a/mailnews/local/src/nsNoneService.cpp
+++ b/mailnews/local/src/nsNoneService.cpp
@@ -24,17 +24,17 @@
 
 nsNoneService::nsNoneService()
 {
 }
 
 nsNoneService::~nsNoneService()
 {}
 
-NS_IMPL_ISUPPORTS2(nsNoneService, nsINoneService, nsIMsgProtocolInfo)
+NS_IMPL_ISUPPORTS(nsNoneService, nsINoneService, nsIMsgProtocolInfo)
 
 NS_IMETHODIMP
 nsNoneService::SetDefaultLocalPath(nsIFile *aPath)
 {
     NS_ENSURE_ARG(aPath);
     return NS_SetPersistentFile(PREF_MAIL_ROOT_NONE_REL, PREF_MAIL_ROOT_NONE, aPath);
 }     
 
--- a/mailnews/local/src/nsParseMailbox.cpp
+++ b/mailnews/local/src/nsParseMailbox.cpp
@@ -58,17 +58,17 @@
 #include <ctype.h>
 #include "nsIMsgPluggableStore.h"
 #include "mozilla/Services.h"
 
 static NS_DEFINE_CID(kCMailDB, NS_MAILDB_CID);
 static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
 
 /* the following macros actually implement addref, release and query interface for our component. */
-NS_IMPL_ISUPPORTS_INHERITED2(nsMsgMailboxParser,
+NS_IMPL_ISUPPORTS_INHERITED(nsMsgMailboxParser,
                              nsParseMailMessageState,
                              nsIStreamListener,
                              nsIRequestObserver)
 
 // Whenever data arrives from the connection, core netlib notifices the protocol by calling
 // OnDataAvailable. We then read and process the incoming data from the input stream.
 NS_IMETHODIMP nsMsgMailboxParser::OnDataAvailable(nsIRequest *request, nsISupports *ctxt, nsIInputStream *aIStream, uint64_t sourceOffset, uint32_t aLength)
 {
@@ -502,17 +502,17 @@ nsMsgMailboxParser::AcquireFolderLock()
 {
   nsCOMPtr<nsIMsgFolder> folder = do_QueryReferent(m_folder);
   if (!folder)
     return NS_ERROR_NULL_POINTER;
   nsCOMPtr<nsISupports> supports = do_QueryObject(this);
   return folder->AcquireSemaphore(supports);
 }
 
-NS_IMPL_ISUPPORTS2(nsParseMailMessageState, nsIMsgParseMailMsgState, nsIDBChangeListener)
+NS_IMPL_ISUPPORTS(nsParseMailMessageState, nsIMsgParseMailMsgState, nsIDBChangeListener)
 
 nsParseMailMessageState::nsParseMailMessageState()
 {
   m_position = 0;
   m_IgnoreXMozillaStatus = false;
   m_state = nsIMsgParseMailMsgState::ParseBodyState;
 
   // setup handling of custom db headers, headers that are added to .msf files
@@ -1685,17 +1685,17 @@ nsParseNewMailState::nsParseNewMailState
     : m_disableFilters(false)
 {
   m_ibuffer = nullptr;
   m_ibuffer_size = 0;
   m_ibuffer_fp = 0;
   m_numNotNewMessages = 0;
  }
 
-NS_IMPL_ISUPPORTS_INHERITED1(nsParseNewMailState, nsMsgMailboxParser, nsIMsgFilterHitNotify)
+NS_IMPL_ISUPPORTS_INHERITED(nsParseNewMailState, nsMsgMailboxParser, nsIMsgFilterHitNotify)
 
 nsresult
 nsParseNewMailState::Init(nsIMsgFolder *serverFolder, nsIMsgFolder *downloadFolder,
                           nsIMsgWindow *aMsgWindow, nsIMsgDBHdr *aHdr,
                           nsIOutputStream *aOutputStream)
 {
   nsresult rv;
   Clear();
--- a/mailnews/local/src/nsPop3IncomingServer.cpp
+++ b/mailnews/local/src/nsPop3IncomingServer.cpp
@@ -45,17 +45,17 @@ protected:
   nsCOMPtr <nsIMsgFolder> m_folderToDownloadTo;
   nsCOMPtr <nsIMsgWindow> m_downloadingMsgWindow;
   nsCOMArray<nsIPop3IncomingServer> m_serversToGetNewMailFor;
   nsCOMPtr <nsIUrlListener> m_listener;
 };
 
 
 
-NS_IMPL_ISUPPORTS_INHERITED2(nsPop3IncomingServer,
+NS_IMPL_ISUPPORTS_INHERITED(nsPop3IncomingServer,
                              nsMsgIncomingServer,
                              nsIPop3IncomingServer,
                              nsILocalMailIncomingServer)
 
 nsPop3IncomingServer::nsPop3IncomingServer()
 {
   m_capabilityFlags =
   POP3_AUTH_MECH_UNDEFINED |
@@ -654,17 +654,17 @@ NS_IMETHODIMP nsPop3IncomingServer::Mark
     Pop3UidlEntry *ue = static_cast<Pop3UidlEntry*>(m_uidlsToMark[i]);
     PR_Free(ue->uidl);
     PR_Free(ue);
   }
   m_uidlsToMark.Clear();
   return rv;
 }
 
-NS_IMPL_ISUPPORTS1(nsPop3GetMailChainer, nsIUrlListener)
+NS_IMPL_ISUPPORTS(nsPop3GetMailChainer, nsIUrlListener)
 
 nsPop3GetMailChainer::nsPop3GetMailChainer()
 {
 }
 nsPop3GetMailChainer::~nsPop3GetMailChainer()
 {
 }
 
--- a/mailnews/local/src/nsPop3Service.cpp
+++ b/mailnews/local/src/nsPop3Service.cpp
@@ -42,17 +42,17 @@ static NS_DEFINE_CID(kRDFServiceCID, NS_
 
 nsPop3Service::nsPop3Service()
 {
 }
 
 nsPop3Service::~nsPop3Service()
 {}
 
-NS_IMPL_ISUPPORTS3(nsPop3Service,
+NS_IMPL_ISUPPORTS(nsPop3Service,
                    nsIPop3Service,
                    nsIProtocolHandler,
                    nsIMsgProtocolInfo)
 
 NS_IMETHODIMP nsPop3Service::CheckForNewMail(nsIMsgWindow* aMsgWindow,
                                              nsIUrlListener *aUrlListener,
                                              nsIMsgFolder *aInbox,
                                              nsIPop3IncomingServer *aPopServer,
--- a/mailnews/local/src/nsPop3Sink.cpp
+++ b/mailnews/local/src/nsPop3Sink.cpp
@@ -39,17 +39,17 @@
 #include "nsMsgBaseCID.h"
 #include "nsServiceManagerUtils.h"
 #include "nsIPop3Service.h"
 #include "nsMsgLocalCID.h"
 #include "mozilla/Services.h"
 
 extern PRLogModuleInfo *POP3LOGMODULE;
 
-NS_IMPL_ISUPPORTS1(nsPop3Sink, nsIPop3Sink)
+NS_IMPL_ISUPPORTS(nsPop3Sink, nsIPop3Sink)
 
 nsPop3Sink::nsPop3Sink()
 {
     m_authed = false;
     m_downloadingToTempFile = false;
     m_biffState = 0;
     m_numNewMessages = 0;
     m_numNewMessagesInFolder = 0;
--- a/mailnews/local/src/nsPop3URL.cpp
+++ b/mailnews/local/src/nsPop3URL.cpp
@@ -16,17 +16,17 @@
 nsPop3URL::nsPop3URL(): nsMsgMailNewsUrl()
 {
 }
 
 nsPop3URL::~nsPop3URL()
 {
 }
 
-NS_IMPL_ISUPPORTS_INHERITED1(nsPop3URL, nsMsgMailNewsUrl, nsIPop3URL)
+NS_IMPL_ISUPPORTS_INHERITED(nsPop3URL, nsMsgMailNewsUrl, nsIPop3URL)
 
 
 ////////////////////////////////////////////////////////////////////////////////////
 // Begin nsIPop3URL specific support
 ////////////////////////////////////////////////////////////////////////////////////
 
 nsresult nsPop3URL::SetPop3Sink(nsIPop3Sink* aPop3Sink)
 {
--- a/mailnews/local/src/nsRssIncomingServer.cpp
+++ b/mailnews/local/src/nsRssIncomingServer.cpp
@@ -14,17 +14,17 @@
 #include "nsIDBFolderInfo.h"
 #include "nsServiceManagerUtils.h"
 #include "nsComponentManagerUtils.h"
 #include "nsArrayUtils.h"
 #include "nsMsgUtils.h"
 
 nsrefcnt nsRssIncomingServer::gInstanceCount    = 0;
 
-NS_IMPL_ISUPPORTS_INHERITED3(nsRssIncomingServer,
+NS_IMPL_ISUPPORTS_INHERITED(nsRssIncomingServer,
                              nsMsgIncomingServer,
                              nsIRssIncomingServer,
                              nsIMsgFolderListener,
                              nsILocalMailIncomingServer)
 
 nsRssIncomingServer::nsRssIncomingServer()
 {
   m_canHaveFilters = true;
--- a/mailnews/local/src/nsRssService.cpp
+++ b/mailnews/local/src/nsRssService.cpp
@@ -13,17 +13,17 @@
 nsRssService::nsRssService()
 {
 }
 
 nsRssService::~nsRssService()
 {
 }
 
-NS_IMPL_ISUPPORTS2(nsRssService,
+NS_IMPL_ISUPPORTS(nsRssService,
                    nsIRssService,
                    nsIMsgProtocolInfo)
                    
 NS_IMETHODIMP nsRssService::GetDefaultLocalPath(nsIFile * *aDefaultLocalPath)
 {
     NS_ENSURE_ARG_POINTER(aDefaultLocalPath);
     *aDefaultLocalPath = nullptr;
     
--- a/mailnews/mapi/mapihook/src/msgMapiHook.cpp
+++ b/mailnews/mapi/mapihook/src/msgMapiHook.cpp
@@ -97,17 +97,17 @@ protected :
     nsMAPISendListener() {
         m_done = false;
     }
 
     bool            m_done;
 };
 
 
-NS_IMPL_ISUPPORTS1(nsMAPISendListener, nsIMsgSendListener)
+NS_IMPL_ISUPPORTS(nsMAPISendListener, nsIMsgSendListener)
 
 nsresult nsMAPISendListener::CreateMAPISendListener( nsIMsgSendListener **ppListener)
 {
     NS_ENSURE_ARG_POINTER(ppListener) ;
 
     *ppListener = new nsMAPISendListener();
     if (! *ppListener)
         return NS_ERROR_OUT_OF_MEMORY;
--- a/mailnews/mapi/mapihook/src/msgMapiSupport.cpp
+++ b/mailnews/mapi/mapihook/src/msgMapiSupport.cpp
@@ -16,17 +16,17 @@
 #include "msgMapiSupport.h"
 
 #include "msgMapiImp.h"
 
 /** Implementation of the nsIMapiSupport interface.
  *  Use standard implementation of nsISupports stuff.
  */
 
-NS_IMPL_ISUPPORTS2(nsMapiSupport, nsIMapiSupport, nsIObserver)
+NS_IMPL_ISUPPORTS(nsMapiSupport, nsIMapiSupport, nsIObserver)
 
 NS_IMETHODIMP
 nsMapiSupport::Observe(nsISupports *aSubject, const char *aTopic, const char16_t *aData)
 {
     nsresult rv = NS_OK ;
 
     if (!strcmp(aTopic, "profile-after-change"))
         return InitializeMAPISupport();
--- a/mailnews/mime/cthandlers/glue/nsMimeContentTypeHandler.cpp
+++ b/mailnews/mime/cthandlers/glue/nsMimeContentTypeHandler.cpp
@@ -7,17 +7,17 @@
 #include "plstr.h"
 //#include "mimecth.h"
 #include "nsMimeContentTypeHandler.h"
 
 /*
  * The following macros actually implement addref, release and
  * query interface for our component.
  */
-NS_IMPL_ISUPPORTS1(nsMimeContentTypeHandler, nsIMimeContentTypeHandler)
+NS_IMPL_ISUPPORTS(nsMimeContentTypeHandler, nsIMimeContentTypeHandler)
 
 /*
  * nsIMimeEmitter definitions....
  */
 nsMimeContentTypeHandler::nsMimeContentTypeHandler(const char *aMimeType,
                                                    MCTHCreateCTHClass callback)
 {
   NS_ASSERTION(aMimeType, "nsMimeContentTypeHandler should be initialized with non-null mime type");
--- a/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.cpp
+++ b/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.cpp
@@ -217,17 +217,17 @@ MimePgpe_generate(void *output_closure)
 
 static void
 MimePgpe_free(void *output_closure)
 {
 }
 
 
 ////////////////////////////////////////////////////////////////////////////
-NS_IMPL_ISUPPORTS5(nsPgpMimeProxy,
+NS_IMPL_ISUPPORTS(nsPgpMimeProxy,
                               nsIPgpMimeProxy,
                               nsIRequestObserver,
                               nsIStreamListener,
                               nsIRequest,
                               nsIInputStream)
 
 // nsPgpMimeProxy implementation
 nsPgpMimeProxy::nsPgpMimeProxy()
--- a/mailnews/mime/emitters/nsMimeBaseEmitter.cpp
+++ b/mailnews/mime/emitters/nsMimeBaseEmitter.cpp
@@ -33,17 +33,17 @@
 #include "mozilla/Services.h"
 #include <algorithm>
 
 static PRLogModuleInfo * gMimeEmitterLogModule = nullptr;
 
 #define   MIME_HEADER_URL      "chrome://messenger/locale/mimeheader.properties"
 #define   MIME_URL             "chrome://messenger/locale/mime.properties"
 
-NS_IMPL_ISUPPORTS2(nsMimeBaseEmitter, nsIMimeEmitter, nsIInterfaceRequestor)
+NS_IMPL_ISUPPORTS(nsMimeBaseEmitter, nsIMimeEmitter, nsIInterfaceRequestor)
 
 nsMimeBaseEmitter::nsMimeBaseEmitter()
 {
   // Initialize data output vars...
   mFirstHeaders = true;
 
   mBufferMgr = nullptr;
   mTotalWritten = 0;
--- a/mailnews/mime/emitters/nsMimeHtmlEmitter.cpp
+++ b/mailnews/mime/emitters/nsMimeHtmlEmitter.cpp
@@ -47,17 +47,17 @@ public:
   template<class T>
   nsCString* Append(T value) { return mValues.AppendElement(value); }
 
 protected:
   nsTArray<nsCString> mValues;
   uint32_t mCurrentIndex; // consumers expect first-in first-out enumeration
 };
 
-NS_IMPL_ISUPPORTS1(nsMimeStringEnumerator, nsIUTF8StringEnumerator)
+NS_IMPL_ISUPPORTS(nsMimeStringEnumerator, nsIUTF8StringEnumerator)
 
 NS_IMETHODIMP
 nsMimeStringEnumerator::HasMore(bool *result)
 {
   NS_ENSURE_ARG_POINTER(result);
   *result = mCurrentIndex < mValues.Length();
   return NS_OK;
 }
--- a/mailnews/mime/src/mimecms.cpp
+++ b/mailnews/mime/src/mimecms.cpp
@@ -274,17 +274,17 @@ nsresult ProxySignedStatus(const nsMainT
                            int32_t aSignatureStatus,
                            nsIX509Cert *aSignerCert)
 {
   nsRefPtr<SignedStatusRunnable> signedStatus =
     new SignedStatusRunnable(aSink, aNestingLevel, aSignatureStatus, aSignerCert);
   return NS_DispatchToMainThread(signedStatus, NS_DISPATCH_SYNC);
 }
 
-NS_IMPL_ISUPPORTS1(nsSMimeVerificationListener, nsISMimeVerificationListener)
+NS_IMPL_ISUPPORTS(nsSMimeVerificationListener, nsISMimeVerificationListener)
 
 nsSMimeVerificationListener::nsSMimeVerificationListener(const char *aFromAddr, const char *aFromName,
                                                          const char *aSenderAddr, const char *aSenderName,
                                                          nsIMsgSMIMEHeaderSink *aHeaderSink, int32_t aMimeNestingLevel)
 {
   mHeaderSink = new nsMainThreadPtrHolder<nsIMsgSMIMEHeaderSink>(aHeaderSink);
   mSinkIsNull = !aHeaderSink;
   mMimeNestingLevel = aMimeNestingLevel;
--- a/mailnews/mime/src/nsMimeConverter.cpp
+++ b/mailnews/mime/src/nsMimeConverter.cpp
@@ -7,17 +7,17 @@
 #include "modmimee.h"
 #include "nscore.h"
 #include "nsMimeConverter.h"
 #include "comi18n.h"
 #include "nsMsgI18N.h"
 #include "prmem.h"
 #include "plstr.h"
 
-NS_IMPL_ISUPPORTS1(nsMimeConverter, nsIMimeConverter)
+NS_IMPL_ISUPPORTS(nsMimeConverter, nsIMimeConverter)
 
 /*
  * nsMimeConverter definitions....
  */
 
 /* 
  * Inherited methods for nsMimeConverter
  */
--- a/mailnews/mime/src/nsMimeObjectClassAccess.cpp
+++ b/mailnews/mime/src/nsMimeObjectClassAccess.cpp
@@ -6,17 +6,17 @@
 #include "mimecom.h"
 #include "nscore.h"
 #include "nsMimeObjectClassAccess.h"
 
 /*
  * The following macros actually implement addref, release and
  * query interface for our component.
  */
-NS_IMPL_ISUPPORTS1(nsMimeObjectClassAccess, nsIMimeObjectClassAccess)
+NS_IMPL_ISUPPORTS(nsMimeObjectClassAccess, nsIMimeObjectClassAccess)
 
 /*
  * nsMimeObjectClassAccess definitions....
  */
 
 /* 
  * Inherited methods for nsMimeObjectClassAccess
  */
--- a/mailnews/mime/src/nsMsgHeaderParser.cpp
+++ b/mailnews/mime/src/nsMsgHeaderParser.cpp
@@ -64,17 +64,17 @@ static char *msg_make_full_address(const
 nsMsgHeaderParser::nsMsgHeaderParser()
 {
 }
 
 nsMsgHeaderParser::~nsMsgHeaderParser()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsMsgHeaderParser, nsIMsgHeaderParser)
+NS_IMPL_ISUPPORTS(nsMsgHeaderParser, nsIMsgHeaderParser)
 
 // helper function called by ParseHeadersWithArray
 nsresult FillResultsArray(const char * aName, const char *aAddress, char16_t ** aOutgoingEmailAddress, char16_t ** aOutgoingName,
                           char16_t ** aOutgoingFullName)
 {
   *aOutgoingFullName = nullptr;
   *aOutgoingEmailAddress = nullptr;
   *aOutgoingName = nullptr;
@@ -1427,17 +1427,17 @@ msg_make_full_address(const char* name, 
 
 MsgAddressObject::MsgAddressObject(const nsAString &aName,
     const nsAString &aEmail)
 : mName(aName),
   mEmail(aEmail)
 {
 }
 
-NS_IMPL_ISUPPORTS1(MsgAddressObject, msgIAddressObject)
+NS_IMPL_ISUPPORTS(MsgAddressObject, msgIAddressObject)
 
 NS_IMETHODIMP MsgAddressObject::GetName(nsAString &name)
 {
   name = mName;
   return NS_OK;
 }
 
 NS_IMETHODIMP MsgAddressObject::GetEmail(nsAString &email)
--- a/mailnews/mime/src/nsSimpleMimeConverterStub.cpp
+++ b/mailnews/mime/src/nsSimpleMimeConverterStub.cpp
@@ -170,17 +170,17 @@ public:
     }
     NS_IMETHOD CreateContentTypeHandlerClass(const char *contentType,
                                              contentTypeHandlerInitStruct *initString,
                                              MimeObjectClass **objClass);
 private:
     nsCString mContentType;
 };
 
-NS_IMPL_ISUPPORTS1(nsSimpleMimeConverterStub, nsIMimeContentTypeHandler)
+NS_IMPL_ISUPPORTS(nsSimpleMimeConverterStub, nsIMimeContentTypeHandler)
 
 NS_IMETHODIMP
 nsSimpleMimeConverterStub::CreateContentTypeHandlerClass(const char *contentType,
                                                      contentTypeHandlerInitStruct *initStruct,
                                                          MimeObjectClass **objClass)
 {
     NS_ENSURE_ARG_POINTER(objClass);
 
--- a/mailnews/mime/src/nsStreamConverter.cpp
+++ b/mailnews/mime/src/nsStreamConverter.cpp
@@ -496,17 +496,17 @@ nsStreamConverter::nsStreamConverter()
   mPendingContext = nullptr;
 }
 
 nsStreamConverter::~nsStreamConverter()
 {
   InternalCleanup();
 }
 
-NS_IMPL_ISUPPORTS4(nsStreamConverter, nsIStreamListener, nsIRequestObserver,
+NS_IMPL_ISUPPORTS(nsStreamConverter, nsIStreamListener, nsIRequestObserver,
   nsIStreamConverter, nsIMimeStreamConverter)
 
 ///////////////////////////////////////////////////////////////
 // nsStreamConverter definitions....
 ///////////////////////////////////////////////////////////////
 
 NS_IMETHODIMP nsStreamConverter::Init(nsIURI *aURI, nsIStreamListener * aOutListener, nsIChannel *aChannel)
 {
--- a/mailnews/news/src/nsNNTPArticleList.cpp
+++ b/mailnews/news/src/nsNNTPArticleList.cpp
@@ -6,17 +6,17 @@
 #include "msgCore.h"    // precompiled header...
 
 #include "nsCOMPtr.h"
 #include "nsNNTPArticleList.h"
 #include "nsIMsgFolder.h"
 #include "nsAutoPtr.h"
 #include "nsMsgKeyArray.h"
 
-NS_IMPL_ISUPPORTS1(nsNNTPArticleList, nsINNTPArticleList)
+NS_IMPL_ISUPPORTS(nsNNTPArticleList, nsINNTPArticleList)
 
 nsNNTPArticleList::nsNNTPArticleList()
 {
 }
 
 nsNNTPArticleList::~nsNNTPArticleList()
 {
   if (m_newsDB) {
--- a/mailnews/news/src/nsNNTPNewsgroupList.cpp
+++ b/mailnews/news/src/nsNNTPNewsgroupList.cpp
@@ -84,17 +84,17 @@ nsNNTPNewsgroupList::nsNNTPNewsgroupList
   memset(&m_knownArts, 0, sizeof(m_knownArts));
 }
 
 nsNNTPNewsgroupList::~nsNNTPNewsgroupList()
 {
   CleanUp();
 }
 
-NS_IMPL_ISUPPORTS2(nsNNTPNewsgroupList, nsINNTPNewsgroupList, nsIMsgFilterHitNotify)
+NS_IMPL_ISUPPORTS(nsNNTPNewsgroupList, nsINNTPNewsgroupList, nsIMsgFilterHitNotify)
 
 nsresult
 nsNNTPNewsgroupList::Initialize(nsINntpUrl *runningURL, nsIMsgNewsFolder *newsFolder)
 {
   m_newsFolder = newsFolder;
   m_runningURL = runningURL;
   m_knownArts.set = nsMsgKeySet::Create();
 
--- a/mailnews/news/src/nsNNTPNewsgroupPost.cpp
+++ b/mailnews/news/src/nsNNTPNewsgroupPost.cpp
@@ -8,17 +8,17 @@
 #include "nsINNTPNewsgroupPost.h"
 #include "nsNNTPNewsgroupPost.h"
 
 #include "nsISupportsObsolete.h"
 
 #include "plstr.h"
 #include "prmem.h"
 
-NS_IMPL_ISUPPORTS1(nsNNTPNewsgroupPost, nsINNTPNewsgroupPost)
+NS_IMPL_ISUPPORTS(nsNNTPNewsgroupPost, nsINNTPNewsgroupPost)
 
 nsNNTPNewsgroupPost::nsNNTPNewsgroupPost()
 {
   int i;
   for (i=0; i <= HEADER_LAST; i++)
     m_header[i]=nullptr;
 
   m_body=nullptr;
--- a/mailnews/news/src/nsNNTPProtocol.cpp
+++ b/mailnews/news/src/nsNNTPProtocol.cpp
@@ -251,17 +251,17 @@ char *MSG_UnEscapeSearchUrl (const char 
   }
   return ToNewCString(result);
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////////
 // END OF TEMPORARY HARD CODED FUNCTIONS
 ///////////////////////////////////////////////////////////////////////////////////////////
 
-NS_IMPL_ISUPPORTS_INHERITED4(nsNNTPProtocol, nsMsgProtocol, nsINNTPProtocol,
+NS_IMPL_ISUPPORTS_INHERITED(nsNNTPProtocol, nsMsgProtocol, nsINNTPProtocol,
   nsITimerCallback, nsICacheListener, nsIMsgAsyncPromptListener)
 
 nsNNTPProtocol::nsNNTPProtocol(nsINntpIncomingServer *aServer, nsIURI *aURL,
                                nsIMsgWindow *aMsgWindow)
 : nsMsgProtocol(aURL),
   m_connectionBusy(false),
   m_nntpServer(aServer)
 {
--- a/mailnews/news/src/nsNewsDownloadDialogArgs.cpp
+++ b/mailnews/news/src/nsNewsDownloadDialogArgs.cpp
@@ -12,17 +12,17 @@ nsNewsDownloadDialogArgs::nsNewsDownload
     mHitOK = false;
     mDownloadAll = false;
 }
 
 nsNewsDownloadDialogArgs::~nsNewsDownloadDialogArgs()
 {
 }
 
-NS_IMPL_ISUPPORTS1(nsNewsDownloadDialogArgs, nsINewsDownloadDialogArgs)
+NS_IMPL_ISUPPORTS(nsNewsDownloadDialogArgs, nsINewsDownloadDialogArgs)
 
 NS_IMETHODIMP nsNewsDownloadDialogArgs::GetGroupName(nsAString & aGroupName)
  {
     aGroupName = mGroupName;
  
     return NS_OK;
  }
 NS_IMETHODIMP nsNewsDownloadDialogArgs::SetGroupName(const nsAString & aGroupName)
--- a/mailnews/news/src/nsNewsDownloader.cpp
+++ b/mailnews/news/src/nsNewsDownloader.cpp
@@ -48,17 +48,17 @@ nsresult nsNewsDownloader::DownloadArtic
   bool headersToDownload = GetNextHdrToRetrieve();
   // should we have a special error code for failure here?
   return (headersToDownload) ? DownloadNext(true) : NS_ERROR_FAILURE;
 }
 
 /* Saving news messages
  */
 
-NS_IMPL_ISUPPORTS2(nsNewsDownloader, nsIUrlListener, nsIMsgSearchNotify)
+NS_IMPL_ISUPPORTS(nsNewsDownloader, nsIUrlListener, nsIMsgSearchNotify)
 
 nsNewsDownloader::nsNewsDownloader(nsIMsgWindow *window, nsIMsgDatabase *msgDB, nsIUrlListener *listener)
 {
   m_numwrote = 0;
   m_downloadFromKeys = false;
   m_newsDB = msgDB;
   m_abort = false;
   m_listener = listener;
@@ -321,17 +321,17 @@ DownloadMatchingNewsArticlesToNewsDB::Do
   m_downloadFromKeys = true;  // search term matching means downloadFromKeys.
 }
 
 DownloadMatchingNewsArticlesToNewsDB::~DownloadMatchingNewsArticlesToNewsDB()
 {
 }
 
 
-NS_IMPL_ISUPPORTS1(nsMsgDownloadAllNewsgroups, nsIUrlListener)
+NS_IMPL_ISUPPORTS(nsMsgDownloadAllNewsgroups, nsIUrlListener)
 
 
 nsMsgDownloadAllNewsgroups::nsMsgDownloadAllNewsgroups(nsIMsgWindow *window, nsIUrlListener *listener)
 {
   m_window = window;
   m_listener = listener;
   m_downloaderForGroup = new DownloadMatchingNewsArticlesToNewsDB(window, nullptr, nullptr, this);
   NS_IF_ADDREF(m_downloaderForGroup);
--- a/mailnews/news/src/nsNewsFolder.cpp
+++ b/mailnews/news/src/nsNewsFolder.cpp
@@ -89,17 +89,17 @@ public:
   NS_DECL_NSIMSGASYNCPROMPTLISTENER
 
   void EnqueuePrompt();
 
 private:
   nsCOMPtr<nsIMsgNewsFolder> m_folder;
 };
 
-NS_IMPL_ISUPPORTS1(AsyncAuthMigrator, nsIMsgAsyncPromptListener)
+NS_IMPL_ISUPPORTS(AsyncAuthMigrator, nsIMsgAsyncPromptListener)
 
 NS_IMETHODIMP AsyncAuthMigrator::OnPromptStart(bool *retval)
 {
   *retval = true;
   return m_folder->MigrateLegacyCredentials();
 }
 
 NS_IMETHODIMP AsyncAuthMigrator::OnPromptAuthAvailable()
--- a/mailnews/news/src/nsNntpMockChannel.cpp
+++ b/mailnews/news/src/nsNntpMockChannel.cpp
@@ -4,17 +4,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsNntpMockChannel.h"
 
 #include "msgCore.h"
 #include "nsNNTPProtocol.h"
 #include "nsNetUtil.h"
 
-NS_IMPL_ISUPPORTS2(nsNntpMockChannel, nsIChannel, nsIRequest)
+NS_IMPL_ISUPPORTS(nsNntpMockChannel, nsIChannel, nsIRequest)
 
 nsNntpMockChannel::nsNntpMockChannel(nsIURI *aUri, nsIMsgWindow *aMsgWindow)
 : m_url(aUri),
   m_msgWindow(aMsgWindow),
   m_channelState(CHANNEL_UNOPENED),
   m_protocol(nullptr),
   m_cancelStatus(NS_OK),
   m_loadFlags(0),
--- a/mailnews/news/src/nsNntpService.cpp
+++ b/mailnews/news/src/nsNntpService.cpp
@@ -63,17 +63,17 @@ nsNntpService::nsNntpService()
   mOpenAttachmentOperation = false;
 }
 
 nsNntpService::~nsNntpService()
 {
   // do nothing
 }
 
-NS_IMPL_ISUPPORTS7(nsNntpService, nsINntpService, nsIMsgMessageService,
+NS_IMPL_ISUPPORTS(nsNntpService, nsINntpService, nsIMsgMessageService,
   nsIProtocolHandler, nsIMsgProtocolInfo, nsICommandLineHandler,
   nsIMsgMessageFetchPartService, nsIContentHandler)
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // nsIMsgMessageService support
 ////////////////////////////////////////////////////////////////////////////////////////
 
 NS_IMETHODIMP
--- a/suite/feeds/src/nsFeedSniffer.cpp
+++ b/suite/feeds/src/nsFeedSniffer.cpp
@@ -31,17 +31,17 @@
 #define TYPE_RSS "application/rss+xml"
 #define TYPE_MAYBE_FEED "application/vnd.mozilla.maybe.feed"
 
 #define NS_RDF "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 #define NS_RSS "http://purl.org/rss/1.0/"
 
 #define MAX_BYTES 512u
 
-NS_IMPL_ISUPPORTS3(nsFeedSniffer,
+NS_IMPL_ISUPPORTS(nsFeedSniffer,
                    nsIContentSniffer,
                    nsIStreamListener,
                    nsIRequestObserver)
 
 nsresult
 nsFeedSniffer::ConvertEncodedData(nsIRequest* request,
                                   const uint8_t* data,
                                   uint32_t length)
--- a/suite/profile/migration/src/nsNetscapeProfileMigratorBase.cpp
+++ b/suite/profile/migration/src/nsNetscapeProfileMigratorBase.cpp
@@ -22,17 +22,17 @@
 #include "nsINIParser.h"
 #include "nsArrayUtils.h"
 
 #define MAIL_DIR_50_NAME             NS_LITERAL_STRING("Mail")
 #define IMAP_MAIL_DIR_50_NAME        NS_LITERAL_STRING("ImapMail")
 #define NEWS_DIR_50_NAME             NS_LITERAL_STRING("News")
 #define DIR_NAME_CHROME              NS_LITERAL_STRING("chrome")
 
-NS_IMPL_ISUPPORTS2(nsNetscapeProfileMigratorBase, nsISuiteProfileMigrator,
+NS_IMPL_ISUPPORTS(nsNetscapeProfileMigratorBase, nsISuiteProfileMigrator,
                    nsITimerCallback)
 
 
 ///////////////////////////////////////////////////////////////////////////////
 // nsITimerCallback
 
 NS_IMETHODIMP
 nsNetscapeProfileMigratorBase::Notify(nsITimer *timer)
--- a/suite/profile/migration/src/nsThunderbirdProfileMigrator.cpp
+++ b/suite/profile/migration/src/nsThunderbirdProfileMigrator.cpp
@@ -28,17 +28,17 @@
 #define FILE_NAME_SECMODDB        "secmod.db"
 #define FILE_NAME_HISTORY         "history.dat"
 #define FILE_NAME_SIGNONS         "signons.sqlite"
 #define FILE_NAME_MIMETYPES       "mimeTypes.rdf"
 #define FILE_NAME_USER_PREFS      "user.js"
 #define FILE_NAME_PERSONALDICTIONARY "persdict.dat"
 #define FILE_NAME_MAILVIEWS       "mailViews.dat"
 
-NS_IMPL_ISUPPORTS2(nsThunderbirdProfileMigrator, nsISuiteProfileMigrator,
+NS_IMPL_ISUPPORTS(nsThunderbirdProfileMigrator, nsISuiteProfileMigrator,
                    nsITimerCallback)
 
 nsThunderbirdProfileMigrator::nsThunderbirdProfileMigrator()
 {
 }
 
 nsThunderbirdProfileMigrator::~nsThunderbirdProfileMigrator()
 {
--- a/suite/profile/nsSuiteDirectoryProvider.cpp
+++ b/suite/profile/nsSuiteDirectoryProvider.cpp
@@ -9,17 +9,17 @@
 #include "nsDirectoryServiceUtils.h"
 #include "nsIPrefBranch.h"
 #include "nsDirectoryServiceDefs.h"
 #include "nsIPrefLocalizedString.h"
 #include "nsIPrefService.h"
 #include "nsArrayEnumerator.h"
 #include "nsEnumeratorUtils.h"
 
-NS_IMPL_ISUPPORTS2(nsSuiteDirectoryProvider,
+NS_IMPL_ISUPPORTS(nsSuiteDirectoryProvider,
                    nsIDirectoryServiceProvider,
                    nsIDirectoryServiceProvider2)
 
 NS_IMETHODIMP
 nsSuiteDirectoryProvider::GetFile(const char *aKey,
                                   bool *aPersist,
                                   nsIFile* *aResult)
 {
@@ -117,17 +117,17 @@ nsSuiteDirectoryProvider::EnsureProfileF
   if (!defaults)
     return;
 
   defaults->AppendNative(aLeafName);
 
   defaults->CopyToNative(aParentDir, aLeafName);
 }
 
-NS_IMPL_ISUPPORTS1(nsSuiteDirectoryProvider::AppendingEnumerator,
+NS_IMPL_ISUPPORTS(nsSuiteDirectoryProvider::AppendingEnumerator,
                    nsISimpleEnumerator)
 
 NS_IMETHODIMP
 nsSuiteDirectoryProvider::AppendingEnumerator::HasMoreElements(bool *aResult)
 {
   *aResult = mNext != nullptr;
   return NS_OK;
 }
--- a/suite/shell/src/nsGNOMEShellService.cpp
+++ b/suite/shell/src/nsGNOMEShellService.cpp
@@ -67,17 +67,17 @@ static const ProtocolAssociation gProtoc
 
 static const MimeTypeAssociation gMimeTypes[] = {
   { nsIShellService::BROWSER, "text/html", "htm html" },
   { nsIShellService::BROWSER, "application/xhtml+xml", "xhtml" },
   { nsIShellService::MAIL, "message/rfc822", "eml" },
   { nsIShellService::RSS, "application/rss+xml", "rss" }
 };
 
-NS_IMPL_ISUPPORTS1(nsGNOMEShellService, nsIShellService)
+NS_IMPL_ISUPPORTS(nsGNOMEShellService, nsIShellService)
 
 nsresult
 GetBrandName(nsACString& aBrandName)
 {
   // get the product brand name from localized strings
   nsresult rv;
   nsCOMPtr<nsIStringBundleService> bundleService(do_GetService("@mozilla.org/intl/stringbundle;1", &rv));
   NS_ENSURE_SUCCESS(rv, rv);
--- a/suite/shell/src/nsMacShellService.cpp
+++ b/suite/shell/src/nsMacShellService.cpp
@@ -23,17 +23,17 @@
 #include "nsStringAPI.h"
 #include "nsIDocShell.h"
 #include "nsILoadContext.h"
 
 #include <ApplicationServices/ApplicationServices.h>
 
 #define SAFARI_BUNDLE_IDENTIFIER "com.apple.Safari"
 
-NS_IMPL_ISUPPORTS2(nsMacShellService, nsIShellService, nsIWebProgressListener)
+NS_IMPL_ISUPPORTS(nsMacShellService, nsIShellService, nsIWebProgressListener)
 
 NS_IMETHODIMP
 nsMacShellService::IsDefaultClient(bool aStartupCheck, uint16_t aApps, bool *aIsDefaultClient)
 {
   // If this is the first window, maintain internal state that we've
   // checked this session (so that subsequent window opens don't show the
   // default client dialog).
   if (aStartupCheck)
--- a/suite/shell/src/nsWindowsShellService.cpp
+++ b/suite/shell/src/nsWindowsShellService.cpp
@@ -48,17 +48,17 @@
 #define REG_FAILED(val) \
   (val != ERROR_SUCCESS)
 
 #define NS_TASKBAR_CONTRACTID "@mozilla.org/windows-taskbar;1"
 
 using namespace mozilla;
 using namespace mozilla::gfx;
 
-NS_IMPL_ISUPPORTS2(nsWindowsShellService, nsIWindowsShellService, nsIShellService)
+NS_IMPL_ISUPPORTS(nsWindowsShellService, nsIWindowsShellService, nsIShellService)
 
 static nsresult
 OpenKeyForReading(HKEY aKeyRoot, const wchar_t* aKeyName, HKEY* aKey)
 {
   DWORD res = ::RegOpenKeyExW(aKeyRoot, aKeyName, 0, KEY_READ, aKey);
   switch (res) {
   case ERROR_SUCCESS:
    break;