Remove SbErrorStack[Entry]

This commit is contained in:
August Sodora
2012-01-16 20:42:36 -05:00
parent 3c1ddd4de1
commit cd10d4e8a6
5 changed files with 2 additions and 91 deletions

View File

@ -36,8 +36,6 @@
#include "codegen.hxx"
#include <basic/basmgr.hxx>
SV_IMPL_PTRARR(SbErrorStack, SbErrorStackEntry*)
SbiGlobals* GetSbData()
{
SbiGlobals** pp = (SbiGlobals**) ::GetAppData( SHL_SBC );
@ -63,7 +61,6 @@ SbiGlobals::SbiGlobals()
bCompiler = sal_False;
bGlobalInitErr = sal_False;
bRunInit = sal_False;
pErrStack = NULL;
pTransliterationWrapper = NULL;
bBlockCompilerError = sal_False;
pAppBasMgr = NULL;
@ -72,7 +69,6 @@ SbiGlobals::SbiGlobals()
SbiGlobals::~SbiGlobals()
{
delete pErrStack;
delete pSbFac;
delete pUnoFac;
delete pTransliterationWrapper;

View File

@ -1155,11 +1155,6 @@ sal_uInt16 SbModule::Run( SbMethod* pMeth )
}
}
// Delete the Error-Stack
SbErrorStack*& rErrStack = GetSbData()->pErrStack;
delete rErrStack;
rErrStack = NULL;
if( nMaxCallLevel == 0 )
{
#ifdef UNX

View File

@ -87,70 +87,6 @@ public:
SbModule* FindClass( const String& rClassName );
};
// stack for the SbiRuntime chain which is removed in the case of an error
class BASIC_DLLPUBLIC SbErrorStackEntry
{
public:
SbErrorStackEntry(SbMethodRef aM, xub_StrLen nL, xub_StrLen nC1, xub_StrLen nC2)
: aMethod(aM), nLine(nL), nCol1(nC1), nCol2(nC2) {}
SbMethodRef aMethod;
xub_StrLen nLine;
xub_StrLen nCol1, nCol2;
};
typedef sal_Bool (*FnForEach_SbErrorStack)( const SbErrorStackEntry* &, void* );
class BASIC_DLLPUBLIC SbErrorStack: public SvPtrarr
{
public:
SbErrorStack( sal_uInt16 nIni=1, sal_uInt8 nG=1 )
: SvPtrarr(nIni,nG) {}
~SbErrorStack() { DeleteAndDestroy( 0, Count() ); }
void Insert( const SbErrorStack *pI, sal_uInt16 nP,
sal_uInt16 nS = 0, sal_uInt16 nE = USHRT_MAX ) {
SvPtrarr::Insert((const SvPtrarr*)pI, nP, nS, nE);
}
void Insert( const SbErrorStackEntry* & aE, sal_uInt16 nP ) {
SvPtrarr::Insert((const VoidPtr &)aE, nP );
}
void Insert( const SbErrorStackEntry* *pE, sal_uInt16 nL, sal_uInt16 nP ) {
SvPtrarr::Insert( (const VoidPtr *)pE, nL, nP );
}
void Replace( const SbErrorStackEntry* & aE, sal_uInt16 nP ) {
SvPtrarr::Replace( (const VoidPtr &)aE, nP );
}
void Replace( const SbErrorStackEntry* *pE, sal_uInt16 nL, sal_uInt16 nP ) {
SvPtrarr::Replace( (const VoidPtr*)pE, nL, nP );
}
void Remove( sal_uInt16 nP, sal_uInt16 nL = 1) {
SvPtrarr::Remove(nP,nL);
}
const SbErrorStackEntry** GetData() const {
return (const SbErrorStackEntry**)SvPtrarr::GetData();
}
void ForEach( CONCAT( FnForEach_, SbErrorStack ) fnForEach, void* pArgs = 0 )
{
_ForEach( 0, nA, (FnForEach_SvPtrarr)fnForEach, pArgs );
}
void ForEach( sal_uInt16 nS, sal_uInt16 nE,
CONCAT( FnForEach_, SbErrorStack ) fnForEach, void* pArgs = 0 )
{
_ForEach( nS, nE, (FnForEach_SvPtrarr)fnForEach, pArgs );
}
SbErrorStackEntry* operator[]( sal_uInt16 nP )const {
return (SbErrorStackEntry*)SvPtrarr::operator[](nP); }
SbErrorStackEntry* GetObject( sal_uInt16 nP )const {
return (SbErrorStackEntry*)SvPtrarr::GetObject(nP); }
sal_uInt16 GetPos( const SbErrorStackEntry* & aE ) const {
return SvPtrarr::GetPos((const VoidPtr &)aE);
}
void DeleteAndDestroy( sal_uInt16 nP, sal_uInt16 nL=1 );
private:
BASIC_DLLPRIVATE SbErrorStack( const SbErrorStack& );
BASIC_DLLPRIVATE SbErrorStack& operator=( const SbErrorStack& );
};
struct SbiGlobals
{
SbiInstance* pInst; // all active runtime instances
@ -172,7 +108,6 @@ struct SbiGlobals
sal_Bool bGlobalInitErr;
sal_Bool bRunInit; // sal_True, if RunInit active from the Basic
String aErrMsg; // buffer for GetErrorText()
SbErrorStack* pErrStack; // for the SbiRuntime chain
::utl::TransliterationWrapper* pTransliterationWrapper; // For StrComp
sal_Bool bBlockCompilerError;
BasicManager* pAppBasMgr;

View File

@ -794,11 +794,6 @@ sal_Bool SbiRuntime::Step()
if( pRtErrHdl )
{
SbErrorStack*& rErrStack = GetSbData()->pErrStack;
if( rErrStack )
delete rErrStack;
rErrStack = new SbErrorStack();
// manipulate all the RTs that are below in the call-stack
pRt = this;
do
@ -806,14 +801,9 @@ sal_Bool SbiRuntime::Step()
pRt->nError = err;
if( pRt != pRtErrHdl )
pRt->bRun = sal_False;
SbErrorStackEntry *pEntry = new SbErrorStackEntry
( pRt->pMeth, pRt->nLine, pRt->nCol1, pRt->nCol2 );
rErrStack->C40_INSERT(SbErrorStackEntry, pEntry, rErrStack->Count() );
if( pRt == pRtErrHdl )
else
break;
pRt = pRt->pNext;
pRt = pRt->pNext;
}
while( pRt );
}

View File

@ -397,11 +397,6 @@ void SbiRuntime::StepRESUME( sal_uInt32 nOp1 )
pInst->nErl = 0;
nError = 0;
bInError = sal_False;
SbErrorStack*& rErrStack = GetSbData()->pErrStack;
delete rErrStack;
rErrStack = NULL;
}
// close channel (+channel, 0=all)