From df77e258df8cec689a001ec92031538298661b1b Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 27 Jul 2012 15:33:58 +0000 Subject: merge of dbtool & database plugins git-svn-id: http://svn.miranda-ng.org/main/trunk@1213 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Db3x_mmap/src/dbtool/aggressive.cpp | 42 ++++++++++++----------------- 1 file changed, 17 insertions(+), 25 deletions(-) (limited to 'plugins/Db3x_mmap/src/dbtool/aggressive.cpp') diff --git a/plugins/Db3x_mmap/src/dbtool/aggressive.cpp b/plugins/Db3x_mmap/src/dbtool/aggressive.cpp index 7cafb63043..0a47754920 100644 --- a/plugins/Db3x_mmap/src/dbtool/aggressive.cpp +++ b/plugins/Db3x_mmap/src/dbtool/aggressive.cpp @@ -20,44 +20,36 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define BLOCKSIZE 65536 -extern DWORD sourceFileSize; -extern DWORD spaceProcessed; -extern DWORD sp; -static DWORD ofsCurrent; - -int WorkAggressive(int firstTime) +int CDb3Base::WorkAggressive(int firstTime) { - int blockBytes,i; - BYTE *buf; - if (firstTime) { - if (!opts.bAggressive) + if (!cb->bAggressive) return ERROR_NO_MORE_ITEMS; - AddToStatus(STATUS_MESSAGE,TranslateT("Performing aggressive pass")); - ofsCurrent = 0; - spaceProcessed = 0; - sp = 0; + cb->pfnAddLogMessage(STATUS_MESSAGE,TranslateT("Performing aggressive pass")); + ofsAggrCur = 0; + cb->spaceProcessed = 0; } - blockBytes = min(BLOCKSIZE+3,(int)(sourceFileSize-ofsCurrent)); + + int blockBytes = min(BLOCKSIZE+3,(int)(sourceFileSize-ofsAggrCur)); if (blockBytes <= 0) return ERROR_NO_MORE_ITEMS; - buf = opts.pFile+ofsCurrent; + BYTE *buf = m_pDbCache + ofsAggrCur; blockBytes -= 3; - for(i = 0;ipfnAddLogMessage(STATUS_WARNING,TranslateT("Aggressive: random junk at %08X: skipping"),ofsAggrCur+i); + else //TODO: give user the option of placing manually - AddToStatus(STATUS_ERROR,TranslateT("Aggressive: unlinked data at %08X: can't automatically place"),ofsCurrent+i); - } - for(; i < blockBytes; i++) + cb->pfnAddLogMessage(STATUS_ERROR,TranslateT("Aggressive: unlinked data at %08X: can't automatically place"),ofsAggrCur+i); + + for (; i < blockBytes; i++) if (buf[i] == 0) {i--; break;} } } - ofsCurrent += BLOCKSIZE; - spaceProcessed = ofsCurrent; + ofsAggrCur += BLOCKSIZE; + cb->spaceProcessed = ofsAggrCur; return ERROR_SUCCESS; } -- cgit v1.2.3