BASIC: Don't use SbiStringPool to pass SbiParser.

Change-Id: I15949e604285d804de1554d36acf36e8a407ebd9
Reviewed-on: https://gerrit.libreoffice.org/16137
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Arnaud Versini <arnaud.versini@libreoffice.org>
This commit is contained in:
Arnaud Versini
2015-06-07 17:44:13 +02:00
committed by Arnaud Versini
parent 2181f936c8
commit 0766db041e
3 changed files with 12 additions and 19 deletions

View File

@@ -111,11 +111,9 @@ static const SbiStatement StmntTable [] = {
SbiParser::SbiParser( StarBASIC* pb, SbModule* pm )
: SbiTokenizer( pm->GetSource32(), pb ),
aGblStrings( this ),
aLclStrings( this ),
aGlobals( aGblStrings, SbGLOBAL ),
aPublics( aGblStrings, SbPUBLIC ),
aRtlSyms( aGblStrings, SbRTL ),
aGlobals( aGblStrings, SbGLOBAL, this ),
aPublics( aGblStrings, SbPUBLIC, this ),
aRtlSyms( aGblStrings, SbRTL, this ),
aGen( *pm, this, 1024 )
{
pBasic = pb;

View File

@@ -38,10 +38,8 @@
|*
***************************************************************************/
SbiStringPool::SbiStringPool( SbiParser* p )
{
pParser = p;
}
SbiStringPool::SbiStringPool( )
{}
SbiStringPool::~SbiStringPool()
{}
@@ -89,9 +87,8 @@ short SbiStringPool::Add( double n, SbxDataType t )
|*
***************************************************************************/
SbiSymPool::SbiSymPool( SbiStringPool& r, SbiSymScope s ) : rStrings( r )
SbiSymPool::SbiSymPool( SbiStringPool& r, SbiSymScope s, SbiParser* pP ) : rStrings( r ), pParser( pP )
{
pParser = r.GetParser();
eScope = s;
pParent = NULL;
nCur =
@@ -375,7 +372,7 @@ SbiSymPool& SbiSymDef::GetPool()
{
if( !pPool )
{
pPool = new SbiSymPool( pIn->pParser->aGblStrings, SbLOCAL ); // is dumped
pPool = new SbiSymPool( pIn->pParser->aGblStrings, SbLOCAL, pIn->pParser ); // is dumped
}
return *pPool;
}
@@ -396,12 +393,12 @@ SbiSymScope SbiSymDef::GetScope() const
SbiProcDef::SbiProcDef( SbiParser* pParser, const OUString& rName,
bool bProcDecl )
: SbiSymDef( rName )
, aParams( pParser->aGblStrings, SbPARAM ) // is dumped
, aLabels( pParser->aLclStrings, SbLOCAL ) // is not dumped
, aParams( pParser->aGblStrings, SbPARAM, pParser ) // is dumped
, aLabels( pParser->aLclStrings, SbLOCAL, pParser ) // is not dumped
, mbProcDecl( bProcDecl )
{
aParams.SetParent( &pParser->aPublics );
pPool = new SbiSymPool( pParser->aGblStrings, SbLOCAL );
pPool = new SbiSymPool( pParser->aGblStrings, SbLOCAL, pParser );
pPool->SetParent( &aParams );
nLine1 =
nLine2 = 0;

View File

@@ -37,9 +37,8 @@ enum SbiSymScope { SbLOCAL, SbPARAM, SbPUBLIC, SbGLOBAL, SbRTL };
class SbiStringPool {
const OUString aEmpty;
std::vector<OUString> aData;
SbiParser* pParser;
public:
SbiStringPool( SbiParser* );
SbiStringPool();
~SbiStringPool();
sal_uInt32 GetSize() const { return aData.size(); }
// From 8.4.1999: default changed to true because of #64236 -
@@ -47,7 +46,6 @@ public:
short Add( const OUString&, bool=true );
short Add( double, SbxDataType );
const OUString& Find( sal_uInt32 ) const;
SbiParser* GetParser() { return pParser; }
};
@@ -65,7 +63,7 @@ protected:
sal_uInt16 nProcId; // for STATIC-variable
sal_uInt16 nCur; // iterator
public:
SbiSymPool( SbiStringPool&, SbiSymScope );
SbiSymPool( SbiStringPool&, SbiSymScope, SbiParser* pParser_ );
~SbiSymPool();
void SetParent( SbiSymPool* p ) { pParent = p; }