summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-07-06 22:49:48 +0200
committerStephan Bergmann <sbergman@redhat.com>2015-07-07 07:48:11 +0200
commit1fd5509aaa7956ecdff5099c52818809ce8d45ed (patch)
treee4819719ed2f221a7b71cbb4913098806585d237 /tools
parent99769c53a11a5cf76158197bfb2d65229245756a (diff)
Replace GetAppData(SHL_ERR) with an rtl::Static
Change-Id: I3932afa803ceb6429d4e5cf63af59131307d5c6e
Diffstat (limited to 'tools')
-rw-r--r--tools/source/ref/errinf.cxx73
1 files changed, 29 insertions, 44 deletions
diff --git a/tools/source/ref/errinf.cxx b/tools/source/ref/errinf.cxx
index 5952601de578..34ebe2052901 100644
--- a/tools/source/ref/errinf.cxx
+++ b/tools/source/ref/errinf.cxx
@@ -18,7 +18,6 @@
*/
#include <limits.h>
-#include <tools/shl.hxx>
#include <tools/debug.hxx>
#include <tools/errinf.hxx>
#include <rtl/strbuf.hxx>
@@ -42,10 +41,10 @@ public:
DynamicErrorInfo *ppDcr[ERRCODE_DYNAMIC_COUNT];
sal_uInt16 nNextDcr;
EDcrData();
-
-static EDcrData *GetData();
};
+struct TheEDcrData: public rtl::Static<EDcrData, TheEDcrData> {};
+
class EDcr_Impl
{
sal_uIntPtr lErrId;
@@ -70,40 +69,27 @@ EDcrData::EDcrData()
ppDcr[n]=0;
}
-EDcrData *EDcrData::GetData()
-{
- EDcrData **ppDat=reinterpret_cast<EDcrData **>(GetAppData(SHL_ERR));
- if(!*ppDat)
- {
- return (*ppDat=new EDcrData);
- }
- else
- return *ppDat;
-}
-
void EDcr_Impl::RegisterEDcr(DynamicErrorInfo *pDcr)
{
// Register dynamic identifier
- EDcrData* pData=EDcrData::GetData();
- lErrId= (((sal_uIntPtr)pData->nNextDcr + 1) << ERRCODE_DYNAMIC_SHIFT) +
+ EDcrData& pData=TheEDcrData::get();
+ lErrId= (((sal_uIntPtr)pData.nNextDcr + 1) << ERRCODE_DYNAMIC_SHIFT) +
pDcr->GetErrorCode();
- DynamicErrorInfo **ppDcr=pData->ppDcr;
- sal_uInt16 nNext=pData->nNextDcr;
+ DynamicErrorInfo **ppDcr=pData.ppDcr;
+ sal_uInt16 nNext=pData.nNextDcr;
if(ppDcr[nNext])
{
delete ppDcr[nNext];
}
ppDcr[nNext]=pDcr;
- if(++pData->nNextDcr>=ERRCODE_DYNAMIC_COUNT)
- pData->nNextDcr=0;
+ if(++pData.nNextDcr>=ERRCODE_DYNAMIC_COUNT)
+ pData.nNextDcr=0;
}
void EDcr_Impl::UnRegisterEDcr(DynamicErrorInfo *pDcr)
{
-
- EDcrData* pData=EDcrData::GetData();
- DynamicErrorInfo **ppDcr=pData->ppDcr;
+ DynamicErrorInfo **ppDcr=TheEDcrData::get().ppDcr;
sal_uIntPtr lIdx=(
((sal_uIntPtr)(*pDcr) & ERRCODE_DYNAMIC_MASK)>>ERRCODE_DYNAMIC_SHIFT)-1;
DBG_ASSERT(ppDcr[lIdx]==pDcr,"ErrHdl: Error nicht gefunden");
@@ -147,7 +133,7 @@ DynamicErrorInfo::~DynamicErrorInfo()
ErrorInfo* EDcr_Impl::GetDynamicErrorInfo(sal_uIntPtr lId)
{
sal_uIntPtr lIdx=((lId & ERRCODE_DYNAMIC_MASK)>>ERRCODE_DYNAMIC_SHIFT)-1;
- DynamicErrorInfo* pDcr=EDcrData::GetData()->ppDcr[lIdx];
+ DynamicErrorInfo* pDcr=TheEDcrData::get().ppDcr[lIdx];
if(pDcr && (sal_uIntPtr)(*pDcr)==lId)
return pDcr;
else
@@ -192,8 +178,7 @@ struct ErrorContextImpl
ErrorContext::ErrorContext(vcl::Window *pWinP)
{
pImpl = new ErrorContextImpl();
- EDcrData *pData=EDcrData::GetData();
- ErrorContext *&pHdl = pData->pFirstCtx;
+ ErrorContext *&pHdl = TheEDcrData::get().pFirstCtx;
pImpl->pWin = pWinP;
pImpl->pNext = pHdl;
pHdl = this;
@@ -201,7 +186,7 @@ ErrorContext::ErrorContext(vcl::Window *pWinP)
ErrorContext::~ErrorContext()
{
- ErrorContext **ppCtx=&(EDcrData::GetData()->pFirstCtx);
+ ErrorContext **ppCtx=&(TheEDcrData::get().pFirstCtx);
while(*ppCtx && *ppCtx!=this)
ppCtx=&((*ppCtx)->pImpl->pNext);
if(*ppCtx)
@@ -211,23 +196,23 @@ ErrorContext::~ErrorContext()
ErrorContext *ErrorContext::GetContext()
{
- return EDcrData::GetData()->pFirstCtx;
+ return TheEDcrData::get().pFirstCtx;
}
ErrorHandler::ErrorHandler()
{
pImpl=new ErrHdl_Impl;
- EDcrData *pData=EDcrData::GetData();
- ErrorHandler *&pHdl=pData->pFirstHdl;
+ EDcrData &pData=TheEDcrData::get();
+ ErrorHandler *&pHdl=pData.pFirstHdl;
pImpl->pNext=pHdl;
pHdl=this;
- if(!pData->pDsp)
+ if(!pData.pDsp)
RegisterDisplay(&aDspFunc);
}
ErrorHandler::~ErrorHandler()
{
- ErrorHandler **ppHdl=&(EDcrData::GetData()->pFirstHdl);
+ ErrorHandler **ppHdl=&(TheEDcrData::get().pFirstHdl);
while(*ppHdl && *ppHdl!=this)
ppHdl=&((*ppHdl)->pImpl->pNext);
if(*ppHdl)
@@ -242,16 +227,16 @@ vcl::Window* ErrorContext::GetParent()
void ErrorHandler::RegisterDisplay(WindowDisplayErrorFunc *aDsp)
{
- EDcrData *pData=EDcrData::GetData();
- pData->bIsWindowDsp=true;
- pData->pDsp = reinterpret_cast< DisplayFnPtr >(aDsp);
+ EDcrData &pData=TheEDcrData::get();
+ pData.bIsWindowDsp=true;
+ pData.pDsp = reinterpret_cast< DisplayFnPtr >(aDsp);
}
void ErrorHandler::RegisterDisplay(BasicDisplayErrorFunc *aDsp)
{
- EDcrData *pData=EDcrData::GetData();
- pData->bIsWindowDsp=false;
- pData->pDsp = reinterpret_cast< DisplayFnPtr >(aDsp);
+ EDcrData &pData=TheEDcrData::get();
+ pData.bIsWindowDsp=false;
+ pData.pDsp = reinterpret_cast< DisplayFnPtr >(aDsp);
}
/** Handles an error.
@@ -279,7 +264,7 @@ sal_uInt16 ErrorHandler::HandleError_Impl(
OUString aAction;
if(!lId || lId == ERRCODE_ABORT)
return 0;
- EDcrData *pData=EDcrData::GetData();
+ EDcrData &pData=TheEDcrData::get();
ErrorInfo *pInfo=ErrorInfo::GetErrorInfo(lId);
ErrorContext *pCtx=ErrorContext::GetContext();
if(pCtx)
@@ -308,7 +293,7 @@ sal_uInt16 ErrorHandler::HandleError_Impl(
nErrFlags = nDynFlags;
}
- if(ErrHdl_Impl::CreateString(pData->pFirstHdl,pInfo,aErr,nErrFlags))
+ if(ErrHdl_Impl::CreateString(pData.pFirstHdl,pInfo,aErr,nErrFlags))
{
if (bJustCreateString)
{
@@ -317,7 +302,7 @@ sal_uInt16 ErrorHandler::HandleError_Impl(
}
else
{
- if(!pData->pDsp)
+ if(!pData.pDsp)
{
OStringBuffer aStr("Action: ");
aStr.append(OUStringToOString(aAction, RTL_TEXTENCODING_ASCII_US));
@@ -328,16 +313,16 @@ sal_uInt16 ErrorHandler::HandleError_Impl(
else
{
delete pInfo;
- if(!pData->bIsWindowDsp)
+ if(!pData.bIsWindowDsp)
{
- (*reinterpret_cast<BasicDisplayErrorFunc*>(pData->pDsp))(aErr,aAction);
+ (*reinterpret_cast<BasicDisplayErrorFunc*>(pData.pDsp))(aErr,aAction);
return 0;
}
else
{
if (nFlags != USHRT_MAX)
nErrFlags = nFlags;
- return (*reinterpret_cast<WindowDisplayErrorFunc*>(pData->pDsp))(
+ return (*reinterpret_cast<WindowDisplayErrorFunc*>(pData.pDsp))(
pParent, nErrFlags, aErr, aAction);
}
}