KDE PIM/MS Windows/SQLite Folder Indices/merge: Difference between revisions

From KDE TechBase
No edit summary
No edit summary
Line 12: Line 12:
*folderstorage.cpp
*folderstorage.cpp
*folderstorage.h
*folderstorage.h
**added virtual QString FolderStorage::location(const QString& suffix) const helper, used in various *location() methods of in KMail, to avoid code duplication


*kmailicalifaceimpl.cpp - OK
*kmailicalifaceimpl.cpp - OK
Line 24: Line 25:
*kmfolder.cpp
*kmfolder.cpp
*kmfolder.h
*kmfolder.h
**QString KMFolder::indexLocation() const - implemneted here to return "*.index" name for mmap mode ("*.index.db" for sqlite mode). Previously it was abstract and implemented in KMFolderIndex. KMFolderSearch reimplements it to return "*.index.search" name - see kmfoldersearch.cpp for details.


*kmfolderdir.cpp
*kmfolderdir.cpp
Line 34: Line 37:
*kmfoldermbox.cpp
*kmfoldermbox.cpp


*kmfoldersearch.cpp
*kmfoldersearch.cpp - OK
**QString KMFolderSearch::indexLocation() const now just calls FolderStorage::location( "search" ) utility function what has the same effect
**int KMFolderSearch::writeIndex( bool ): at the very end final, result of KDE_rename() from temp name to the indexLocation() name is checked; on faulure the method fails, what cause that "mDirty = false; mUnlinked = false;" code is not executed. - OK


*kmheaders.cpp
*kmheaders.cpp

Revision as of 09:36, 8 May 2008

Validation of the SQLite folder indices merge into kdepim trunk (805075).

Notes

  • "OK" means files or methods inspected in every detail.
  • We do not mention changes that only add/remove kDebug(), etc.

Results

  • compactionjob.cpp - OK
    • void MboxCompactionJob::done( int rc ): the only addition result of KDE_rename() is checked, return immediately on failure
  • folderstorage.cpp
  • folderstorage.h
    • added virtual QString FolderStorage::location(const QString& suffix) const helper, used in various *location() methods of in KMail, to avoid code duplication
  • kmailicalifaceimpl.cpp - OK

void KMailICalIfaceImpl::readConfig() - added sanity check: if ( !mCalendar || !mTasks || !mJournals || !mContacts || !mNotes )

 return;

KMFolder* KMailICalIfaceImpl::initFolder( KMail::FolderContentsType contentsType ) - added check for result of open():if ( 0 != folder->open( "ifacefolder" ) ) { ....


  • kmfolder.cpp
  • kmfolder.h
    • QString KMFolder::indexLocation() const - implemneted here to return "*.index" name for mmap mode ("*.index.db" for sqlite mode). Previously it was abstract and implemented in KMFolderIndex. KMFolderSearch reimplements it to return "*.index.search" name - see kmfoldersearch.cpp for details.


  • kmfolderdir.cpp
  • kmfolderindex.cpp
  • kmfolderindex.h
  • kmfoldermaildir.cpp
  • kmfoldermbox.cpp
  • kmfoldersearch.cpp - OK
    • QString KMFolderSearch::indexLocation() const now just calls FolderStorage::location( "search" ) utility function what has the same effect
    • int KMFolderSearch::writeIndex( bool ): at the very end final, result of KDE_rename() from temp name to the indexLocation() name is checked; on faulure the method fails, what cause that "mDirty = false; mUnlinked = false;" code is not executed. - OK
  • kmheaders.cpp
  • kmheaders.h
  • kmkernel.cpp - OK
    • void KMKernel::slotRunBackgroundTasks(): added sanity checks for null pointers: the_folderMgr, the_imapFolderMgr, the_dimapFolderMgr; this is neutral change
  • kmmsgbase.cpp
  • kmmsgbase.h
  • kmmsgdict.cpp
  • kmmsginfo.cpp
  • kmmsginfo.h
  • messageproperty.cpp - OK
    • minor optimizations only added, for example 1. instead of 2.:
      1. QMap<quint32, QPointer<KMFolder> >::ConstIterator it = sFolders.constFind( serNum );
        return it == sFolders.constEnd() ? 0 : (*it).operator->();
      2. if (sFolders.contains(serNum))
          return sFolders[serNum].operator->();
        return 0;
    • Affected methods:
      • KMFolder* MessageProperty::filterFolder( quint32 serNum ) - Status: OK
      • ActionScheduler* MessageProperty::filterHandler( quint32 serNum ) - Status: OK
      • bool MessageProperty::transferInProgress( quint32 serNum ) - Status: OK
      • void MessageProperty::setTransferInProgress( quint32 serNum, bool transfer, bool force ) - Status: OK
      • quint32 MessageProperty::serialCache( const KMMsgBase *msgBase ) - Status: OK