summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2008-08-08 22:50:28 +0000
committerChris Wilson <chris+github@qwirx.com>2008-08-08 22:50:28 +0000
commit9fdae18f3c3f00433b30cde744b338feea492163 (patch)
tree33ecd7f967b485290fd1908887504b1de7bcfe95
parentf3ab126941b77db40b7b4e515b07b56649e2afa8 (diff)
Replace manual pointer management with std::auto_ptr.
-rw-r--r--lib/common/Configuration.cpp16
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;
}