basic/source/comp/parser.cxx | 8 +++----- basic/source/comp/symtbl.cxx | 17 +++++++---------- basic/source/inc/symtbl.hxx | 6 ++---- 3 files changed, 12 insertions(+), 19 deletions(-)
New commits: commit 0766db041e17a7cb1ba2659f88f7e94fec720f67 Author: Arnaud Versini <arnaud.vers...@gmail.com> Date: Sun Jun 7 17:44:13 2015 +0200 BASIC: Don't use SbiStringPool to pass SbiParser. Change-Id: I15949e604285d804de1554d36acf36e8a407ebd9 Reviewed-on: https://gerrit.libreoffice.org/16137 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Arnaud Versini <arnaud.vers...@libreoffice.org> diff --git a/basic/source/comp/parser.cxx b/basic/source/comp/parser.cxx index c257922..d867cb4 100644 --- a/basic/source/comp/parser.cxx +++ b/basic/source/comp/parser.cxx @@ -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; diff --git a/basic/source/comp/symtbl.cxx b/basic/source/comp/symtbl.cxx index bc38628..7a79de8 100644 --- a/basic/source/comp/symtbl.cxx +++ b/basic/source/comp/symtbl.cxx @@ -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; diff --git a/basic/source/inc/symtbl.hxx b/basic/source/inc/symtbl.hxx index 3c67c8d..cc4fac5 100644 --- a/basic/source/inc/symtbl.hxx +++ b/basic/source/inc/symtbl.hxx @@ -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; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits