Bug 834020 - Remove use of nsIEnumerator in mailnews C++ code. r=Neil
☠☠ backed out by c0d255b60629 ☠ ☠
authoraceman <acelists@atlas.sk>
Wed, 06 Feb 2013 09:33:34 -0500
changeset 14811 1241283364847ad200396b9dbfc56a990299d865
parent 14810 cca94582cef4726309946e04b0705d3b82a25f09
child 14812 c0d255b60629edb9faad38106395a196e822f8ea
push id867
push userbugzilla@standard8.plus.com
push dateMon, 01 Apr 2013 20:44:27 +0000
treeherdercomm-beta@797726b8d244 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersNeil
bugs834020
Bug 834020 - Remove use of nsIEnumerator in mailnews C++ code. r=Neil
mailnews/addrbook/src/nsAddrDatabase.cpp
mailnews/addrbook/src/nsAddrDatabase.h
mailnews/base/util/iteratorUtils.jsm
mailnews/base/util/nsMsgUtils.h
mailnews/db/msgdb/src/nsMsgDatabase.cpp
mailnews/imap/src/nsImapMailFolder.cpp
mailnews/imap/src/nsImapOfflineSync.h
mailnews/import/src/nsImportService.cpp
mailnews/import/src/nsImportService.h
mailnews/local/src/nsLocalMailFolder.cpp
mailnews/news/src/nsNewsDownloader.h
mailnews/news/src/nsNewsFolder.cpp
--- a/mailnews/addrbook/src/nsAddrDatabase.cpp
+++ b/mailnews/addrbook/src/nsAddrDatabase.cpp
@@ -2689,17 +2689,17 @@ NS_IMETHODIMP nsAddrDBEnumerator::OnAnno
   return NS_OK;
 }
 
 class nsListAddressEnumerator : public nsISimpleEnumerator
 {
 public:
     NS_DECL_ISUPPORTS
 
-    // nsIEnumerator methods:
+    // nsISimpleEnumerator methods:
     NS_DECL_NSISIMPLEENUMERATOR
 
     // nsListAddressEnumerator methods:
 
     nsListAddressEnumerator(nsAddrDatabase* aDb, mdb_id aRowID);
 
 protected:
     nsRefPtr<nsAddrDatabase> mDb;
--- a/mailnews/addrbook/src/nsAddrDatabase.h
+++ b/mailnews/addrbook/src/nsAddrDatabase.h
@@ -7,17 +7,16 @@
 #define _nsAddrDatabase_H_
 
 #include "nsIAddrDatabase.h"
 #include "mdb.h"
 #include "nsStringGlue.h"
 #include "nsIAddrDBListener.h"
 #include "nsCOMPtr.h"
 #include "nsTObserverArray.h"
-#include "nsIEnumerator.h"
 #include "nsWeakPtr.h"
 #include "nsIWeakReferenceUtils.h"
 
 typedef enum
 {
   AB_NotifyInserted,
   AB_NotifyDeleted,
   AB_NotifyPropertyChanged
@@ -329,17 +328,16 @@ protected:
   nsresult      InitLastRecorKey();
   nsresult      GetDataRow(nsIMdbRow **pDataRow);
   nsresult      GetLastRecordKey();
   nsresult      UpdateLastRecordKey();
   nsresult      CheckAndUpdateRecordKey();
   nsresult      UpdateLowercaseEmailListName();
   nsresult      ConvertAndAddLowercaseColumn(nsIMdbRow * row, mdb_token fromCol, mdb_token toCol);
   nsresult      AddUnicodeToColumn(nsIMdbRow * row, mdb_token colToken, mdb_token lowerCaseColToken, const PRUnichar* pUnicodeStr);
-  nsresult      CreateCardsForMailList(nsIMdbRow *pListRow, nsIEnumerator **result);
 
   nsresult      DeleteRow(nsIMdbTable* dbTable, nsIMdbRow* dbRow);
 
   nsIMdbEnv   *m_mdbEnv;  // to be used in all the db calls.
   nsIMdbStore *m_mdbStore;
   nsIMdbTable *m_mdbPabTable;
   nsIMdbTable *m_mdbDeletedCardsTable;
   nsCOMPtr<nsIFile> m_dbName;
--- a/mailnews/base/util/iteratorUtils.jsm
+++ b/mailnews/base/util/iteratorUtils.jsm
@@ -45,17 +45,19 @@ function toArray(aObj, aUseKeys) {
 
 /**
 * Given a JS array, JS iterator, or one of a variety of XPCOM collections or
  * iterators, return a JS iterator suitable for use in a for...in expression.
  *
  * Currently, we support the following types of xpcom iterators:
  *   nsIArray
  *   nsISupportsArray
- *   nsIEnumerator
+ *   nsIEnumerator // We must support this until there are no uses of nsIEnumerator
+ *                    in mozilla-central and comm-central. E.g. it can be created
+ *                    via nsISupportsArray.enumerate().
  *   nsISimpleEnumerator
  *
  *   @param aEnum  the enumerator to convert
  *   @param aIface (optional) an interface to QI each object to prior to
  *                 returning
  *
  *   @note This does *not* return an Array object.  It returns an object that
  *         can be used in for...in contexts only.  To create such an array, use
--- a/mailnews/base/util/nsMsgUtils.h
+++ b/mailnews/base/util/nsMsgUtils.h
@@ -3,17 +3,16 @@
  * 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/. */
 
 #ifndef _NSMSGUTILS_H
 #define _NSMSGUTILS_H
 
 #include "nsIURL.h"
 #include "nsStringGlue.h"
-#include "nsIEnumerator.h"
 #include "msgCore.h"
 #include "nsCOMPtr.h"
 #include "MailNewsTypes2.h"
 #include "nsTArray.h"
 #include "nsIInterfaceRequestor.h"
 #include "nsILoadGroup.h"
 #include "nsISupportsArray.h"
 #include "nsIAtom.h"
--- a/mailnews/db/msgdb/src/nsMsgDatabase.cpp
+++ b/mailnews/db/msgdb/src/nsMsgDatabase.cpp
@@ -10,17 +10,16 @@
 #endif
 #include <sys/stat.h>
 
 #include "nscore.h"
 #include "msgCore.h"
 #include "nsMailDatabase.h"
 #include "nsDBFolderInfo.h"
 #include "nsMsgKeySet.h"
-#include "nsIEnumerator.h"
 #include "nsMsgThread.h"
 #include "nsIMsgSearchTerm.h"
 #include "nsIMsgHeaderParser.h"
 #include "nsMsgBaseCID.h"
 #include "nsMorkCID.h"
 #include "nsIMdbFactoryFactory.h"
 #include "prlog.h"
 #include "prprf.h"
--- a/mailnews/imap/src/nsImapMailFolder.cpp
+++ b/mailnews/imap/src/nsImapMailFolder.cpp
@@ -6,17 +6,16 @@
 #ifdef MOZ_LOGGING
 // sorry, this has to be before the pre-compiled header
 #define FORCE_PR_LOG /* Allow logging in the release build */
 #endif
 #include "msgCore.h"
 #include "prmem.h"
 #include "nsMsgImapCID.h"
 #include "nsImapMailFolder.h"
-#include "nsIEnumerator.h"
 #include "nsIFile.h"
 #include "nsIFolderListener.h"
 #include "nsCOMPtr.h"
 #include "nsAutoPtr.h"
 #include "nsIRDFService.h"
 #include "nsRDFCID.h"
 #include "nsMsgDBCID.h"
 #include "nsMsgFolderFlags.h"
--- a/mailnews/imap/src/nsImapOfflineSync.h
+++ b/mailnews/imap/src/nsImapOfflineSync.h
@@ -9,17 +9,16 @@
 
 #include "nsIMsgDatabase.h"
 #include "nsIUrlListener.h"
 #include "nsIMsgOfflineImapOperation.h"
 #include "nsIMsgWindow.h"
 #include "nsIMsgFolder.h"
 #include "nsCOMArray.h"
 #include "nsIDBChangeListener.h"
-#include "nsIEnumerator.h"
 
 class nsImapOfflineSync : public nsIUrlListener,
                           public nsIMsgCopyServiceListener,
                           public nsIDBChangeListener {
 public: // set to one folder to playback one folder only
   nsImapOfflineSync(nsIMsgWindow *window, nsIUrlListener *listener,
                     nsIMsgFolder *singleFolderOnly = nullptr,
                     bool isPseudoOffline = false);
--- a/mailnews/import/src/nsImportService.cpp
+++ b/mailnews/import/src/nsImportService.cpp
@@ -11,17 +11,16 @@
 #include "nsICharsetConverterManager.h"
 #include "nsIPlatformCharset.h"
 #include "nsICharsetConverterManager.h"
 
 #include "nsStringGlue.h"
 #include "nsIComponentManager.h"
 #include "nsIServiceManager.h"
 #include "nsMemory.h"
-#include "nsIEnumerator.h"
 #include "nsIImportModule.h"
 #include "nsIImportService.h"
 #include "nsImportMailboxDescriptor.h"
 #include "nsImportABDescriptor.h"
 #include "nsIImportGeneric.h"
 #include "nsImportFieldMap.h"
 #include "nsICategoryManager.h"
 #include "nsXPCOM.h"
--- a/mailnews/import/src/nsImportService.h
+++ b/mailnews/import/src/nsImportService.h
@@ -7,17 +7,16 @@
 #define nsImportService_h__
 
 #include "nsICharsetConverterManager.h"
 
 #include "nsStringGlue.h"
 #include "nsIComponentManager.h"
 #include "nsIServiceManager.h"
 #include "nsMemory.h"
-#include "nsIEnumerator.h"
 #include "nsIImportModule.h"
 #include "nsIImportService.h"
 #include "nsICategoryManager.h"
 #include "nsIStringBundle.h"
 
 class nsImportModuleList;
 
 class nsImportService : public nsIImportService
--- a/mailnews/local/src/nsLocalMailFolder.cpp
+++ b/mailnews/local/src/nsLocalMailFolder.cpp
@@ -13,17 +13,16 @@
 #include "nsMsgLocalFolderHdrs.h"
 #include "nsMsgFolderFlags.h"
 #include "nsMsgMessageFlags.h"
 #include "prprf.h"
 #include "prmem.h"
 #include "nsISupportsArray.h"
 #include "nsIArray.h"
 #include "nsIServiceManager.h"
-#include "nsIEnumerator.h"
 #include "nsIMailboxService.h"
 #include "nsParseMailbox.h"
 #include "nsIMsgAccountManager.h"
 #include "nsIMsgWindow.h"
 #include "nsCOMPtr.h"
 #include "nsIRDFService.h"
 #include "nsMsgDBCID.h"
 #include "nsMsgUtils.h"
--- a/mailnews/news/src/nsNewsDownloader.h
+++ b/mailnews/news/src/nsNewsDownloader.h
@@ -9,17 +9,16 @@
 
 #include "nsIMsgDatabase.h"
 #include "nsIUrlListener.h"
 #include "nsIMsgFolder.h"
 #include "nsIMsgHdr.h"
 #include "nsIMsgWindow.h"
 #include "nsIMsgSearchNotify.h"
 #include "nsIMsgSearchSession.h"
-#include "nsIEnumerator.h"
 
 // base class for downloading articles in a single newsgroup. Keys to download are passed in
 // to DownloadArticles method.
 class nsNewsDownloader : public nsIUrlListener, public nsIMsgSearchNotify
 {
 public:
   nsNewsDownloader(nsIMsgWindow *window, nsIMsgDatabase *db, nsIUrlListener *listener);
   virtual ~nsNewsDownloader();
--- a/mailnews/news/src/nsNewsFolder.cpp
+++ b/mailnews/news/src/nsNewsFolder.cpp
@@ -47,17 +47,16 @@
 #include "nntpCore.h"
 #include "nsIMsgMailNewsUrl.h"
 #include "nsNewsFolder.h"
 #include "nsMsgFolderFlags.h"
 #include "prprf.h"
 #include "prsystem.h"
 #include "nsIArray.h"
 #include "nsIServiceManager.h"
-#include "nsIEnumerator.h"
 #include "nsINntpService.h"
 #include "nsIFolderListener.h"
 #include "nsCOMPtr.h"
 #include "nsIRDFService.h"
 #include "nsRDFCID.h"
 #include "nsMsgDBCID.h"
 #include "nsMsgNewsCID.h"
 #include "nsMsgUtils.h"