forked from amazingfate/loongoffice
Remove SbErrorStack[Entry]
This commit is contained in:
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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 );
|
||||
}
|
||||
|
||||
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user