diff options
author | Chris Wilson <chris+github@qwirx.com> | 2014-08-15 22:47:27 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2014-08-15 22:47:27 +0000 |
commit | 59b5045c4005dd85658de4f613237e21e897f6b2 (patch) | |
tree | a133d48298c03d5ab7baddc7d1fc308dc3ee1da8 /bin/bbackupd/BackupClientDirectoryRecord.cpp | |
parent | 84d41d846b44d94ec87105e92aa5a2513975dd2b (diff) |
Use std::auto_ptrs instead of bare pointers for exclude lists.
Allows us to remove code to handle cleanups after exceptions and on Location
destruction.
Diffstat (limited to 'bin/bbackupd/BackupClientDirectoryRecord.cpp')
-rw-r--r-- | bin/bbackupd/BackupClientDirectoryRecord.cpp | 63 |
1 files changed, 20 insertions, 43 deletions
diff --git a/bin/bbackupd/BackupClientDirectoryRecord.cpp b/bin/bbackupd/BackupClientDirectoryRecord.cpp index 79a46a05..897c02e4 100644 --- a/bin/bbackupd/BackupClientDirectoryRecord.cpp +++ b/bin/bbackupd/BackupClientDirectoryRecord.cpp @@ -2117,11 +2117,8 @@ void BackupClientDirectoryRecord::Serialize(Archive & rArchive) const // // -------------------------------------------------------------------------- Location::Location() - : mIDMapIndex(0), - mpExcludeFiles(0), - mpExcludeDirs(0) -{ -} +: mIDMapIndex(0) +{ } // -------------------------------------------------------------------------- // @@ -2132,19 +2129,7 @@ Location::Location() // // -------------------------------------------------------------------------- Location::~Location() -{ - // Clean up exclude locations - if(mpExcludeDirs != 0) - { - delete mpExcludeDirs; - mpExcludeDirs = 0; - } - if(mpExcludeFiles != 0) - { - delete mpExcludeFiles; - mpExcludeFiles = 0; - } -} +{ } // -------------------------------------------------------------------------- // @@ -2168,7 +2153,7 @@ void Location::Serialize(Archive & rArchive) const // // // - if(mpDirectoryRecord.get() == NULL) + if(!mapDirectoryRecord.get()) { int64_t aMagicMarker = ARCHIVE_MAGIC_VALUE_NOOP; rArchive.Write(aMagicMarker); @@ -2178,13 +2163,13 @@ void Location::Serialize(Archive & rArchive) const int64_t aMagicMarker = ARCHIVE_MAGIC_VALUE_RECURSE; // be explicit about whether recursion follows rArchive.Write(aMagicMarker); - mpDirectoryRecord->Serialize(rArchive); + mapDirectoryRecord->Serialize(rArchive); } // // // - if(!mpExcludeFiles) + if(!mapExcludeFiles.get()) { int64_t aMagicMarker = ARCHIVE_MAGIC_VALUE_NOOP; rArchive.Write(aMagicMarker); @@ -2194,13 +2179,13 @@ void Location::Serialize(Archive & rArchive) const int64_t aMagicMarker = ARCHIVE_MAGIC_VALUE_RECURSE; // be explicit about whether recursion follows rArchive.Write(aMagicMarker); - mpExcludeFiles->Serialize(rArchive); + mapExcludeFiles->Serialize(rArchive); } // // // - if(!mpExcludeDirs) + if(!mapExcludeDirs.get()) { int64_t aMagicMarker = ARCHIVE_MAGIC_VALUE_NOOP; rArchive.Write(aMagicMarker); @@ -2210,7 +2195,7 @@ void Location::Serialize(Archive & rArchive) const int64_t aMagicMarker = ARCHIVE_MAGIC_VALUE_RECURSE; // be explicit about whether recursion follows rArchive.Write(aMagicMarker); - mpExcludeDirs->Serialize(rArchive); + mapExcludeDirs->Serialize(rArchive); } } @@ -2228,17 +2213,9 @@ void Location::Deserialize(Archive &rArchive) // // // - mpDirectoryRecord.reset(NULL); - if(mpExcludeFiles) - { - delete mpExcludeFiles; - mpExcludeFiles = NULL; - } - if(mpExcludeDirs) - { - delete mpExcludeDirs; - mpExcludeDirs = NULL; - } + mapDirectoryRecord.reset(); + mapExcludeFiles.reset(); + mapExcludeDirs.reset(); // // @@ -2265,8 +2242,8 @@ void Location::Deserialize(Archive &rArchive) throw std::bad_alloc(); } - mpDirectoryRecord.reset(pSubRecord); - mpDirectoryRecord->Deserialize(rArchive); + mapDirectoryRecord.reset(pSubRecord); + mapDirectoryRecord->Deserialize(rArchive); } else { @@ -2285,13 +2262,13 @@ void Location::Deserialize(Archive &rArchive) } else if(aMagicMarker == ARCHIVE_MAGIC_VALUE_RECURSE) { - mpExcludeFiles = new ExcludeList; - if(!mpExcludeFiles) + mapExcludeFiles.reset(new ExcludeList); + if(!mapExcludeFiles.get()) { throw std::bad_alloc(); } - mpExcludeFiles->Deserialize(rArchive); + mapExcludeFiles->Deserialize(rArchive); } else { @@ -2310,13 +2287,13 @@ void Location::Deserialize(Archive &rArchive) } else if(aMagicMarker == ARCHIVE_MAGIC_VALUE_RECURSE) { - mpExcludeDirs = new ExcludeList; - if(!mpExcludeDirs) + mapExcludeDirs.reset(new ExcludeList); + if(!mapExcludeDirs.get()) { throw std::bad_alloc(); } - mpExcludeDirs->Deserialize(rArchive); + mapExcludeDirs->Deserialize(rArchive); } else { |