remove ugly operator* in DynamicErrorInfo

I can see why you'd want to hide this horrible tunnelling of
information with objects registering themselves in a global list.
Urrgh.

Change-Id: Ib151a0d2d5a4508dc456e52883e488ce56d9a095
Reviewed-on: https://gerrit.libreoffice.org/33984
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel Grandin 2017-02-06 16:02:12 +02:00
parent bcb8aaf652
commit b5e3f8a5fa
19 changed files with 55 additions and 56 deletions

View File

@ -634,10 +634,10 @@ BasicManager::BasicManager( StarBASIC* pSLib, OUString* pLibPath, bool bDocMgr )
void BasicManager::ImpMgrNotLoaded( const OUString& rStorageName )
{
// pErrInf is only destroyed if the error os processed by an
// pErrInf is only destroyed if the error is processed by an
// ErrorHandler
StringErrorInfo* pErrInf = new StringErrorInfo( ERRCODE_BASMGR_MGROPEN, rStorageName, ERRCODE_BUTTON_OK );
aErrors.push_back(BasicError(*pErrInf, BasicErrorReason::OPENMGRSTREAM));
aErrors.push_back(BasicError(pErrInf->GetErrorCode(), BasicErrorReason::OPENMGRSTREAM));
// Create a stdlib otherwise we crash!
BasicLibInfo* pStdLibInfo = CreateLibInfo();
@ -777,7 +777,7 @@ void BasicManager::LoadOldBasicManager( SotStorage& rStorage )
if (!ImplLoadBasic( *xManagerStream, mpImpl->aLibs.front()->GetLibRef() ))
{
StringErrorInfo* pErrInf = new StringErrorInfo( ERRCODE_BASMGR_MGROPEN, aStorName, ERRCODE_BUTTON_OK );
aErrors.push_back(BasicError(*pErrInf, BasicErrorReason::OPENMGRSTREAM));
aErrors.push_back(BasicError(pErrInf->GetErrorCode(), BasicErrorReason::OPENMGRSTREAM));
// and it proceeds ...
}
xManagerStream->Seek( nBasicEndOff+1 ); // +1: 0x00 as separator
@ -825,7 +825,7 @@ void BasicManager::LoadOldBasicManager( SotStorage& rStorage )
else
{
StringErrorInfo* pErrInf = new StringErrorInfo( ERRCODE_BASMGR_LIBLOAD, aStorName, ERRCODE_BUTTON_OK );
aErrors.push_back(BasicError(*pErrInf, BasicErrorReason::STORAGENOTFOUND));
aErrors.push_back(BasicError(pErrInf->GetErrorCode(), BasicErrorReason::STORAGENOTFOUND));
}
}
}
@ -908,7 +908,7 @@ bool BasicManager::ImpLoadLibrary( BasicLibInfo* pLibInfo, SotStorage* pCurStora
if ( !xBasicStorage.is() || xBasicStorage->GetError() )
{
StringErrorInfo* pErrInf = new StringErrorInfo( ERRCODE_BASMGR_MGROPEN, xStorage->GetName(), ERRCODE_BUTTON_OK );
aErrors.push_back(BasicError(*pErrInf, BasicErrorReason::OPENLIBSTORAGE));
aErrors.push_back(BasicError(pErrInf->GetErrorCode(), BasicErrorReason::OPENLIBSTORAGE));
}
else
{
@ -917,7 +917,7 @@ bool BasicManager::ImpLoadLibrary( BasicLibInfo* pLibInfo, SotStorage* pCurStora
if ( !xBasicStream.is() || xBasicStream->GetError() )
{
StringErrorInfo* pErrInf = new StringErrorInfo( ERRCODE_BASMGR_LIBLOAD , pLibInfo->GetLibName(), ERRCODE_BUTTON_OK );
aErrors.push_back(BasicError(*pErrInf, BasicErrorReason::OPENLIBSTREAM));
aErrors.push_back(BasicError(pErrInf->GetErrorCode(), BasicErrorReason::OPENLIBSTREAM));
}
else
{
@ -940,7 +940,7 @@ bool BasicManager::ImpLoadLibrary( BasicLibInfo* pLibInfo, SotStorage* pCurStora
if ( !bLoaded )
{
StringErrorInfo* pErrInf = new StringErrorInfo( ERRCODE_BASMGR_LIBLOAD, pLibInfo->GetLibName(), ERRCODE_BUTTON_OK );
aErrors.push_back(BasicError(*pErrInf, BasicErrorReason::BASICLOADERROR));
aErrors.push_back(BasicError(pErrInf->GetErrorCode(), BasicErrorReason::BASICLOADERROR));
}
else
{
@ -1124,7 +1124,7 @@ bool BasicManager::RemoveLib( sal_uInt16 nLib, bool bDelBasicFromStorage )
if( !nLib || nLib < mpImpl->aLibs.size() )
{
StringErrorInfo* pErrInf = new StringErrorInfo( ERRCODE_BASMGR_REMOVELIB, OUString(), ERRCODE_BUTTON_OK );
aErrors.push_back(BasicError(*pErrInf, BasicErrorReason::STDLIB));
aErrors.push_back(BasicError(pErrInf->GetErrorCode(), BasicErrorReason::STDLIB));
return false;
}
@ -1160,7 +1160,7 @@ bool BasicManager::RemoveLib( sal_uInt16 nLib, bool bDelBasicFromStorage )
if ( !xBasicStorage.is() || xBasicStorage->GetError() )
{
StringErrorInfo* pErrInf = new StringErrorInfo( ERRCODE_BASMGR_REMOVELIB, OUString(), ERRCODE_BUTTON_OK );
aErrors.push_back(BasicError(*pErrInf, BasicErrorReason::OPENLIBSTORAGE));
aErrors.push_back(BasicError(pErrInf->GetErrorCode(), BasicErrorReason::OPENLIBSTORAGE));
}
else if (xBasicStorage->IsStream((*itLibInfo)->GetLibName()))
{
@ -1295,7 +1295,7 @@ bool BasicManager::LoadLib( sal_uInt16 nLib )
else
{
StringErrorInfo* pErrInf = new StringErrorInfo( ERRCODE_BASMGR_LIBLOAD, OUString(), ERRCODE_BUTTON_OK );
aErrors.push_back(BasicError(*pErrInf, BasicErrorReason::LIBNOTFOUND));
aErrors.push_back(BasicError(pErrInf->GetErrorCode(), BasicErrorReason::LIBNOTFOUND));
}
return bDone;
}

View File

@ -1663,7 +1663,7 @@ bool StarBASIC::CError( SbError code, const OUString& rMsg,
// Implementation of the code for the string transport to SFX-Error
if( !rMsg.isEmpty() )
{
code = (SbError)*new StringErrorInfo( code, rMsg );
code = (SbError)(new StringErrorInfo( code, rMsg ))->GetErrorCode();
}
SetErrorData( code, l, c1, c2 );
GetSbData()->bCompilerError = true;
@ -1702,11 +1702,11 @@ bool StarBASIC::RTError( SbError code, const OUString& rMsg, sal_Int32 l, sal_In
{
OUString aTmp = "\'" + OUString::number(SbxErrObject::getUnoErrObject()->getNumber()) +
"\'\n" + OUString(!GetSbData()->aErrMsg.isEmpty() ? GetSbData()->aErrMsg : rMsg);
code = (SbError)*new StringErrorInfo( code, aTmp );
code = (SbError)(new StringErrorInfo( code, aTmp ))->GetErrorCode();
}
else
{
code = (SbError)*new StringErrorInfo( code, rMsg );
code = (SbError)(new StringErrorInfo( code, rMsg ))->GetErrorCode();
}
}

View File

@ -180,8 +180,8 @@ IMPL_LINK_NOARG(SvxNewDictionaryDialog, OKHdl_Impl, Button*, void)
// error: couldn't create new dictionary
SfxErrorContext aContext( ERRCTX_SVX_LINGU_DICTIONARY, OUString(),
this, RID_SVXERRCTX, &CUI_MGR() );
ErrorHandler::HandleError( *new StringErrorInfo(
ERRCODE_SVX_LINGU_DICT_NOTWRITEABLE, sDict ) );
ErrorHandler::HandleError( (new StringErrorInfo(
ERRCODE_SVX_LINGU_DICT_NOTWRITEABLE, sDict ))->GetErrorCode() );
EndDialog();
}

View File

@ -973,8 +973,8 @@ void SvxBackgroundTabPage::RaiseLoadError_Impl()
&CUI_MGR() );
ErrorHandler::HandleError(
*new StringErrorInfo( ERRCODE_SVX_GRAPHIC_NOTREADABLE,
aBgdGraphicPath ) );
(new StringErrorInfo( ERRCODE_SVX_GRAPHIC_NOTREADABLE,
aBgdGraphicPath ))->GetErrorCode() );
}
bool SvxBackgroundTabPage::LoadLinkedGraphic_Impl()

View File

@ -104,14 +104,14 @@ void SvxSpellWrapper::ShowLanguageErrors()
{
OUString aErr( SvtLanguageTable::GetLanguageString( nLang ) );
ErrorHandler::HandleError(
*new StringErrorInfo( ERRCODE_SVX_LINGU_LANGUAGENOTEXISTS, aErr ) );
(new StringErrorInfo( ERRCODE_SVX_LINGU_LANGUAGENOTEXISTS, aErr ))->GetErrorCode() );
nTmpSpell = SVX_LANG_MISSING;
}
if (SVX_LANG_MISSING_DO_WARN == nTmpHyph)
{
OUString aErr( SvtLanguageTable::GetLanguageString( nLang ) );
ErrorHandler::HandleError(
*new StringErrorInfo( ERRCODE_SVX_LINGU_LANGUAGENOTEXISTS, aErr ) );
(new StringErrorInfo( ERRCODE_SVX_LINGU_LANGUAGENOTEXISTS, aErr ))->GetErrorCode() );
nTmpHyph = SVX_LANG_MISSING;
}

View File

@ -62,7 +62,7 @@ public:
DynamicErrorInfo(sal_uIntPtr lUserId, sal_uInt16 nMask);
virtual ~DynamicErrorInfo() override;
operator sal_uIntPtr() const;
sal_uIntPtr GetErrorCode() const;
sal_uInt16 GetDialogMask() const;
};

View File

@ -216,17 +216,17 @@ sal_uInt32 ScXMLImportWrapper::ImportFromComponent(const uno::Reference<uno::XCo
if( !sDocName.isEmpty() )
{
nReturn = *new TwoStringErrorInfo(
nReturn = (new TwoStringErrorInfo(
(bMustBeSuccessfull ? SCERR_IMPORT_FILE_ROWCOL
: SCWARN_IMPORT_FILE_ROWCOL),
sDocName, sErr,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR );
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ))->GetErrorCode();
}
else
{
OSL_ENSURE( bMustBeSuccessfull, "Warnings are not supported" );
nReturn = *new StringErrorInfo( SCERR_IMPORT_FORMAT_ROWCOL, sErr,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR );
nReturn = (new StringErrorInfo( SCERR_IMPORT_FORMAT_ROWCOL, sErr,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ))->GetErrorCode();
}
}
}

View File

@ -2465,10 +2465,10 @@ bool ScDocShell::ConvertTo( SfxMedium &rMed )
bRet = aImExport.ExportStream(*pStream, rMed.GetBaseURL(true), SotClipboardFormatId::HTML);
if (bRet && !aImExport.GetNonConvertibleChars().isEmpty())
{
SetError(*new StringErrorInfo(
SetError((new StringErrorInfo(
SCWARN_EXPORT_NONCONVERTIBLE_CHARS,
aImExport.GetNonConvertibleChars(),
ERRCODE_BUTTON_OK | ERRCODE_MSG_INFO), OSL_LOG_PREFIX);
ERRCODE_BUTTON_OK | ERRCODE_MSG_INFO))->GetErrorCode(), OSL_LOG_PREFIX);
}
}
}

View File

@ -1088,12 +1088,12 @@ sal_uLong ScDocShell::DBaseExport( const OUString& rFullFileName, rtl_TextEncodi
}
OUString sPosition( ScAddress( nDocCol, nDocRow, nTab).GetColRowString());
OUString sEncoding( SvxTextEncodingTable().GetTextString( eCharSet));
nErr = *new TwoStringErrorInfo( (bEncErr ? SCERR_EXPORT_ENCODING :
nErr = (new TwoStringErrorInfo( (bEncErr ? SCERR_EXPORT_ENCODING :
SCERR_EXPORT_FIELDWIDTH), sPosition, sEncoding,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR);
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR))->GetErrorCode();
}
else if ( !aException.Message.isEmpty() )
nErr = *new StringErrorInfo( (SCERR_EXPORT_SQLEXCEPTION), aException.Message, ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR);
nErr = (new StringErrorInfo( SCERR_EXPORT_SQLEXCEPTION, aException.Message, ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR))->GetErrorCode();
else
nErr = SCERR_EXPORT_DATA;
}

View File

@ -245,17 +245,17 @@ sal_Int32 ReadThroughComponent(
if (!rStreamName.isEmpty())
{
return *new TwoStringErrorInfo(
return (new TwoStringErrorInfo(
(bMustBeSuccessfull ? ERR_FORMAT_FILE_ROWCOL
: WARN_FORMAT_FILE_ROWCOL),
rStreamName, sErr,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR );
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ))->GetErrorCode();
}
else
{
DBG_ASSERT( bMustBeSuccessfull, "Warnings are not supported" );
return *new StringErrorInfo( ERR_FORMAT_ROWCOL, sErr,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR );
return (new StringErrorInfo( ERR_FORMAT_ROWCOL, sErr,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ))->GetErrorCode();
}
}
catch (const xml::sax::SAXException& r)

View File

@ -452,8 +452,7 @@ void FuInsertOLE::DoExecute( SfxRequest& rReq )
}
else
{
ErrorHandler::HandleError(* new StringErrorInfo(ERRCODE_SFX_OLEGENERAL,
"" ) );
ErrorHandler::HandleError( (new StringErrorInfo(ERRCODE_SFX_OLEGENERAL, ""))->GetErrorCode() );
}
}
else

View File

@ -864,7 +864,7 @@ bool ViewShell::ActivateObject(SdrOle2Obj* pObj, long nVerb)
if (aErrCode != 0 && !bAbort)
{
ErrorHandler::HandleError(* new StringErrorInfo(aErrCode, OUString() ) );
ErrorHandler::HandleError( (new StringErrorInfo(aErrCode, ""))->GetErrorCode() );
}
return aErrCode == 0;

View File

@ -2296,8 +2296,8 @@ bool SfxObjectShell::ImportFrom(SfxMedium& rMedium,
io::WrongFormatException e;
if (rWrapped.TargetException >>= e)
{
SetError(*new StringErrorInfo(ERRCODE_SFX_FORMAT_ROWCOL,
e.Message, ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ), "");
SetError((new StringErrorInfo(ERRCODE_SFX_FORMAT_ROWCOL,
e.Message, ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ))->GetErrorCode(), "");
}
}
catch(...)

View File

@ -226,8 +226,8 @@ sal_uLong HTMLReader::Read( SwDoc &rDoc, const OUString& rBaseURL, SwPaM &rPam,
+ "," + OUString::number((sal_Int32)xParser->GetLinePos()));
// den Stream als Fehlernummer Transporter benutzen
nRet = *new StringErrorInfo( ERR_FORMAT_ROWCOL, sErr,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR );
nRet = (new StringErrorInfo( ERR_FORMAT_ROWCOL, sErr,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ))->GetErrorCode();
}
return nRet;

View File

@ -206,17 +206,17 @@ sal_Int32 ReadThroughComponent(
if( !rStreamName.isEmpty() )
{
return *new TwoStringErrorInfo(
return (new TwoStringErrorInfo(
(bMustBeSuccessfull ? ERR_FORMAT_FILE_ROWCOL
: WARN_FORMAT_FILE_ROWCOL),
rStreamName, sErr,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR );
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ))->GetErrorCode();
}
else
{
OSL_ENSURE( bMustBeSuccessfull, "Warnings are not supported" );
return *new StringErrorInfo( ERR_FORMAT_ROWCOL, sErr,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR );
return (new StringErrorInfo( ERR_FORMAT_ROWCOL, sErr,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ))->GetErrorCode();
}
}
catch(const xml::sax::SAXException& r)

View File

@ -413,15 +413,15 @@ sal_uInt32 SwXMLWriter::Write_( const uno::Reference < task::XStatusIndicator >&
if( bErr )
{
if( !sErrFile.isEmpty() )
return *new StringErrorInfo( ERR_WRITE_ERROR_FILE, sErrFile,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR );
return (new StringErrorInfo( ERR_WRITE_ERROR_FILE, sErrFile,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ))->GetErrorCode();
return ERR_SWG_WRITE_ERROR;
}
else if( bWarn )
{
if( !sWarnFile.isEmpty() )
return *new StringErrorInfo( WARN_WRITE_ERROR_FILE, sWarnFile,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR );
return (new StringErrorInfo( WARN_WRITE_ERROR_FILE, sWarnFile,
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ))->GetErrorCode();
return WARN_SWG_FEATURES_LOST;
}

View File

@ -398,9 +398,9 @@ void SwGlossaries::UpdateGlosPath(bool bFull)
m_aInvalidPaths = aInvalidPaths;
// wrong path, that means AutoText directory doesn't exist
ErrorHandler::HandleError( *new StringErrorInfo(
ErrorHandler::HandleError( (new StringErrorInfo(
ERR_AUTOPATH_ERROR, lcl_makePath(m_aInvalidPaths),
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ));
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ))->GetErrorCode());
m_bError = true;
}
else
@ -419,8 +419,8 @@ void SwGlossaries::UpdateGlosPath(bool bFull)
void SwGlossaries::ShowError()
{
sal_uInt32 nPathError = *new StringErrorInfo(ERR_AUTOPATH_ERROR,
lcl_makePath(m_aInvalidPaths), ERRCODE_BUTTON_OK );
sal_uInt32 nPathError = (new StringErrorInfo(ERR_AUTOPATH_ERROR,
lcl_makePath(m_aInvalidPaths), ERRCODE_BUTTON_OK ))->GetErrorCode();
ErrorHandler::HandleError( nPathError );
}

View File

@ -359,7 +359,7 @@ void SwView::SpellError(LanguageType eLang)
if ( LANGUAGE_NONE == eLang )
ErrorHandler::HandleError( ERRCODE_SVX_LINGU_NOLANGUAGE );
else
ErrorHandler::HandleError( *new StringErrorInfo( ERRCODE_SVX_LINGU_LANGUAGENOTEXISTS, aErr ) );
ErrorHandler::HandleError( (new StringErrorInfo( ERRCODE_SVX_LINGU_LANGUAGENOTEXISTS, aErr ))->GetErrorCode() );
while( nWaitCnt )
{

View File

@ -86,7 +86,7 @@ void DynamicErrorInfo_Impl::RegisterEDcr(DynamicErrorInfo *pDcr)
void DynamicErrorInfo_Impl::UnRegisterEDcr(DynamicErrorInfo const *pDcr)
{
DynamicErrorInfo **ppDcr = TheEDcrData::get().ppDcr;
sal_uIntPtr lIdx = (((sal_uIntPtr)(*pDcr) & ERRCODE_DYNAMIC_MASK) >> ERRCODE_DYNAMIC_SHIFT) - 1;
sal_uIntPtr lIdx = ((pDcr->GetErrorCode() & ERRCODE_DYNAMIC_MASK) >> ERRCODE_DYNAMIC_SHIFT) - 1;
DBG_ASSERT(ppDcr[lIdx]==pDcr,"ErrHdl: Error nicht gefunden");
if(ppDcr[lIdx]==pDcr)
ppDcr[lIdx]=nullptr;
@ -105,7 +105,7 @@ ErrorInfo *ErrorInfo::GetErrorInfo(sal_uIntPtr lId)
return new ErrorInfo(lId);
}
DynamicErrorInfo::operator sal_uIntPtr() const
sal_uIntPtr DynamicErrorInfo::GetErrorCode() const
{
return pImpl->lErrId;
}
@ -127,7 +127,7 @@ ErrorInfo* DynamicErrorInfo_Impl::GetDynamicErrorInfo(sal_uIntPtr lId)
{
sal_uIntPtr lIdx = ((lId & ERRCODE_DYNAMIC_MASK)>>ERRCODE_DYNAMIC_SHIFT)-1;
DynamicErrorInfo* pDcr = TheEDcrData::get().ppDcr[lIdx];
if(pDcr && (sal_uIntPtr)(*pDcr)==lId)
if(pDcr && pDcr->GetErrorCode()==lId)
return pDcr;
else
return new ErrorInfo(lId & ~ERRCODE_DYNAMIC_MASK);