diff options
author | Chris Wilson <chris+github@qwirx.com> | 2008-08-08 22:50:28 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2008-08-08 22:50:28 +0000 |
commit | 9fdae18f3c3f00433b30cde744b338feea492163 (patch) | |
tree | 33ecd7f967b485290fd1908887504b1de7bcfe95 /lib/common/Configuration.cpp | |
parent | f3ab126941b77db40b7b4e515b07b56649e2afa8 (diff) |
Replace manual pointer management with std::auto_ptr.
Diffstat (limited to 'lib/common/Configuration.cpp')
-rw-r--r-- | lib/common/Configuration.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/lib/common/Configuration.cpp b/lib/common/Configuration.cpp index d1145bb5..c4253938 100644 --- a/lib/common/Configuration.cpp +++ b/lib/common/Configuration.cpp @@ -199,32 +199,30 @@ std::auto_ptr<Configuration> Configuration::LoadAndVerify( FdGetLine getline(file); // Object to create - Configuration *pconfig = new Configuration(std::string("<root>")); + std::auto_ptr<Configuration> apConfig( + new Configuration(std::string("<root>"))); try { // Load - LoadInto(*pconfig, getline, rErrorMsg, true); + LoadInto(*apConfig, getline, rErrorMsg, true); if(!rErrorMsg.empty()) { // An error occured, return now BOX_ERROR("Error in Configuration::LoadInto: " << rErrorMsg); - delete pconfig; - pconfig = 0; return std::auto_ptr<Configuration>(0); } // Verify? if(pVerify) { - if(!Verify(*pconfig, *pVerify, std::string(), rErrorMsg)) + if(!Verify(*apConfig, *pVerify, std::string(), + rErrorMsg)) { BOX_ERROR("Error verifying configuration: " << rErrorMsg); - delete pconfig; - pconfig = 0; return std::auto_ptr<Configuration>(0); } } @@ -232,13 +230,11 @@ std::auto_ptr<Configuration> Configuration::LoadAndVerify( catch(...) { // Clean up - delete pconfig; - pconfig = 0; throw; } // Success. Return result. - return std::auto_ptr<Configuration>(pconfig); + return apConfig; } |