summaryrefslogtreecommitdiff
path: root/vcl/source
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-09-03 14:37:04 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-09-03 16:19:28 +0200
commitdbcabd8f46af3c0e609be44cabbcfa2ebdbd5742 (patch)
tree99866ecc75a113bf4440c74f8b77b6ebd2b2679c /vcl/source
parent009fdd4b83ba5ed66bd858784938fd6e246ddf75 (diff)
return by std::unique_ptr from GetErrorInfo
Change-Id: I80f1643b252d0b38d279b402a422733c0c4749b9 Reviewed-on: https://gerrit.libreoffice.org/59938 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl/source')
-rw-r--r--vcl/source/window/errinf.cxx27
1 files changed, 12 insertions, 15 deletions
diff --git a/vcl/source/window/errinf.cxx b/vcl/source/window/errinf.cxx
index 0ec0ca504b68..ec001e0a2b30 100644
--- a/vcl/source/window/errinf.cxx
+++ b/vcl/source/window/errinf.cxx
@@ -23,6 +23,7 @@
#include <vcl/errinf.hxx>
#include <vcl/window.hxx>
+#include <o3tl/make_unique.hxx>
#include <vector>
#include <limits.h>
@@ -97,15 +98,14 @@ bool ErrorHandler::GetErrorString(ErrCode nErrCodeId, OUString& rErrStr)
if(!nErrCodeId || nErrCodeId == ERRCODE_ABORT)
return false;
- ErrorInfo *pInfo = ErrorInfo::GetErrorInfo(nErrCodeId);
+ std::unique_ptr<ErrorInfo> pInfo = ErrorInfo::GetErrorInfo(nErrCodeId);
- if (ErrorStringFactory::CreateString(pInfo,aErr))
+ if (ErrorStringFactory::CreateString(pInfo.get(),aErr))
{
rErrStr = aErr;
return true;
}
- delete pInfo;
return false;
}
@@ -115,7 +115,7 @@ DialogMask ErrorHandler::HandleError(ErrCode nErrCodeId, weld::Window *pParent,
return DialogMask::NONE;
ErrorRegistry &rData = TheErrorRegistry::get();
- ErrorInfo *pInfo = ErrorInfo::GetErrorInfo(nErrCodeId);
+ std::unique_ptr<ErrorInfo> pInfo = ErrorInfo::GetErrorInfo(nErrCodeId);
OUString aAction;
if (!rData.contexts.empty())
@@ -139,7 +139,7 @@ DialogMask ErrorHandler::HandleError(ErrCode nErrCodeId, weld::Window *pParent,
else
nErrFlags |= DialogMask::MessageError;
- DynamicErrorInfo* pDynPtr = dynamic_cast<DynamicErrorInfo*>(pInfo);
+ DynamicErrorInfo* pDynPtr = dynamic_cast<DynamicErrorInfo*>(pInfo.get());
if(pDynPtr)
{
DialogMask nDynFlags = pDynPtr->GetDialogMask();
@@ -148,7 +148,7 @@ DialogMask ErrorHandler::HandleError(ErrCode nErrCodeId, weld::Window *pParent,
}
OUString aErr;
- if (ErrorStringFactory::CreateString(pInfo, aErr))
+ if (ErrorStringFactory::CreateString(pInfo.get(), aErr))
{
if(!rData.pDsp)
{
@@ -156,8 +156,6 @@ DialogMask ErrorHandler::HandleError(ErrCode nErrCodeId, weld::Window *pParent,
}
else
{
- delete pInfo;
-
if(!rData.bIsWindowDsp)
{
(*reinterpret_cast<BasicDisplayErrorFunc*>(rData.pDsp))(aErr,aAction);
@@ -181,7 +179,6 @@ DialogMask ErrorHandler::HandleError(ErrCode nErrCodeId, weld::Window *pParent,
else
OSL_FAIL("ERRCODE_ABORT not handled");
- delete pInfo;
return DialogMask::NONE;
}
@@ -225,7 +222,7 @@ private:
}
void RegisterError(DynamicErrorInfo *);
static void UnRegisterError(DynamicErrorInfo const *);
- static ErrorInfo* GetDynamicErrorInfo(ErrCode nId);
+ static std::unique_ptr<ErrorInfo> GetDynamicErrorInfo(ErrCode nId);
ErrCode nErrId;
DialogMask nMask;
@@ -258,23 +255,23 @@ void ImplDynamicErrorInfo::UnRegisterError(DynamicErrorInfo const *pDynErrInfo)
ppDynErrInfo[nIdx]=nullptr;
}
-ErrorInfo* ImplDynamicErrorInfo::GetDynamicErrorInfo(ErrCode nId)
+std::unique_ptr<ErrorInfo> ImplDynamicErrorInfo::GetDynamicErrorInfo(ErrCode nId)
{
sal_uInt32 nIdx = nId.GetDynamic() - 1;
DynamicErrorInfo* pDynErrInfo = TheErrorRegistry::get().ppDynErrInfo[nIdx];
if(pDynErrInfo && ErrCode(*pDynErrInfo)==nId)
- return pDynErrInfo;
+ return std::unique_ptr<ErrorInfo>(pDynErrInfo);
else
- return new ErrorInfo(nId.StripDynamic());
+ return o3tl::make_unique<ErrorInfo>(nId.StripDynamic());
}
-ErrorInfo *ErrorInfo::GetErrorInfo(ErrCode nId)
+std::unique_ptr<ErrorInfo> ErrorInfo::GetErrorInfo(ErrCode nId)
{
if(nId.IsDynamic())
return ImplDynamicErrorInfo::GetDynamicErrorInfo(nId);
else
- return new ErrorInfo(nId);
+ return o3tl::make_unique<ErrorInfo>(nId);
}
ErrorInfo::~ErrorInfo()