diff options
author | Gergo Mocsi <gmocsi91@gmail.com> | 2013-08-20 13:29:18 +0200 |
---|---|---|
committer | Gergo Mocsi <gmocsi91@gmail.com> | 2013-09-02 18:17:01 +0200 |
commit | 755a74906ef3564f17d694787ba8de650e577677 (patch) | |
tree | da2edaaa26b31491395a59302fb4df494a95dc88 | |
parent | 31f3859884618cc19d0810795c45c9f6ed73e622 (diff) |
GSOC work, multiple fixes
Code completion: parser recognizes extended types ony when the checkbox is checked.
Fixed a crash caused by a misspelled uno type.
Fixed function CodeCompleteDataCache::Clear() to clear both internal variables.
Change-Id: I82fdd2e1cf749237e2e2de4a9a2fc7d07fb7eb4a
-rw-r--r-- | basctl/source/basicide/baside2b.cxx | 4 | ||||
-rw-r--r-- | basic/source/classes/codecompletecache.cxx | 1 | ||||
-rw-r--r-- | basic/source/comp/dim.cxx | 6 |
3 files changed, 6 insertions, 5 deletions
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx index e73d66df8387..06e9567c9280 100644 --- a/basctl/source/basicide/baside2b.cxx +++ b/basctl/source/basicide/baside2b.cxx @@ -2905,7 +2905,7 @@ UnoTypeCodeCompletetor::UnoTypeCodeCompletetor( const std::vector< OUString >& a std::vector< OUString > UnoTypeCodeCompletetor::GetXIdlClassMethods() const { std::vector< OUString > aRetVect; - if( bCanComplete ) + if( bCanComplete && ( xClass != NULL ) ) { Sequence< Reference< reflection::XIdlMethod > > aMethods = xClass->getMethods(); if( aMethods.getLength() != 0 ) @@ -2922,7 +2922,7 @@ std::vector< OUString > UnoTypeCodeCompletetor::GetXIdlClassMethods() const std::vector< OUString > UnoTypeCodeCompletetor::GetXIdlClassFields() const { std::vector< OUString > aRetVect; - if( bCanComplete ) + if( bCanComplete && ( xClass != NULL ) ) { Sequence< Reference< reflection::XIdlField > > aFields = xClass->getFields(); if( aFields.getLength() != 0 ) diff --git a/basic/source/classes/codecompletecache.cxx b/basic/source/classes/codecompletecache.cxx index a5b9ce6a8601..aad0e4fcd622 100644 --- a/basic/source/classes/codecompletecache.cxx +++ b/basic/source/classes/codecompletecache.cxx @@ -136,6 +136,7 @@ void CodeCompleteDataCache::print() const void CodeCompleteDataCache::Clear() { aVarScopes.clear(); + aGlobalVars.clear(); } void CodeCompleteDataCache::InsertGlobalVar( const OUString& sVarName, const OUString& sVarType ) diff --git a/basic/source/comp/dim.cxx b/basic/source/comp/dim.cxx index 2b94c397ef52..64d056534c8f 100644 --- a/basic/source/comp/dim.cxx +++ b/basic/source/comp/dim.cxx @@ -407,13 +407,13 @@ void SbiParser::DefVar( SbiOpcode eOp, bool bStatic ) OUString aTypeName( aGblStrings.Find( pDef->GetTypeId() ) ); if( rTypeArray->Find( aTypeName, SbxCLASS_OBJECT ) == NULL ) { - if(!CodeCompleteOptions::IsCodeCompleteOn()) - Error( SbERR_UNDEF_TYPE, aTypeName ); - else + if( CodeCompleteOptions::IsExtendedTypeDeclaration() ) { if(!IsUnoInterface(aTypeName)) Error( SbERR_UNDEF_TYPE, aTypeName ); } + else + Error( SbERR_UNDEF_TYPE, aTypeName ); } } |