Changeset 2655

Show
Ignore:
Timestamp:
08/03/2010 21:22:42 (6 months ago)
Author:
chris
Message:

Merge [2647] into 0.11rc7.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • box/RELEASE/0.11rc7/bin/bbstored/HousekeepStoreAccount.cpp

    r2653 r2655  
    417417                mEmptyDirectories.push_back(dir.GetObjectID()); 
    418418        } 
    419          
     419 
     420        // Calculate reference counts first, before we start requesting 
     421        // files to be deleted. 
     422        // BLOCK 
     423        { 
     424                BackupStoreDirectory::Iterator i(dir); 
     425                BackupStoreDirectory::Entry *en = 0; 
     426 
     427                while((en = i.Next()) != 0) 
     428                { 
     429                        // This directory references this object 
     430                        if (mNewRefCounts.size() <= en->GetObjectID()) 
     431                        { 
     432                                mNewRefCounts.resize(en->GetObjectID() + 1, 0); 
     433                        } 
     434                        mNewRefCounts[en->GetObjectID()]++; 
     435                } 
     436        } 
     437 
    420438        // BLOCK 
    421439        { 
     
    464482                while((en = i.Next(BackupStoreDirectory::Entry::Flags_File)) != 0) 
    465483                { 
    466                         // This directory references this object 
    467                         if (mNewRefCounts.size() <= en->GetObjectID()) 
    468                         { 
    469                                 mNewRefCounts.resize(en->GetObjectID() + 1, 0); 
    470                         } 
    471                         mNewRefCounts[en->GetObjectID()]++; 
    472  
    473484                        // Update recalculated usage sizes 
    474485                        int16_t enFlags = en->GetFlags(); 
     
    579590                while((en = i.Next(BackupStoreDirectory::Entry::Flags_Dir)) != 0) 
    580591                { 
    581                         // This parent directory references this child 
    582                         if (mNewRefCounts.size() <= en->GetObjectID()) 
    583                         { 
    584                                 mNewRefCounts.resize(en->GetObjectID() + 1, 0); 
    585                         } 
    586                         mNewRefCounts[en->GetObjectID()]++; 
    587  
    588592                        // Next level 
    589593                        ASSERT((en->GetFlags() & BackupStoreDirectory::Entry::Flags_Dir) == BackupStoreDirectory::Entry::Flags_Dir);