summaryrefslogtreecommitdiff
path: root/basctl
diff options
context:
space:
mode:
authorLaurent Godard <lgodard.libre@laposte.net>2015-08-18 09:24:26 +0200
committerCaolán McNamara <caolanm@redhat.com>2015-08-18 09:27:18 +0000
commitddb43837ca74295b848d3217064a2442b0a12b8c (patch)
tree3192ec4b9e94d13aaf5fd85bbe836681606e7f02 /basctl
parent222f10e773ba51a19880be1b798990260c198147 (diff)
avoid basic ide crash in code autocompletion
due to code completion and user defined types type MyType a as string b as string end type dim aa as MyType typing aa.b. the last point led to crash remaining problem code autocorrection now shows wrong behaviour as aa.b. autocorrects (wrongly) to aaaa. Change-Id: I3e05680cd9d82f7dc124c5923f9858e22961896e Reviewed-on: https://gerrit.libreoffice.org/17824 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'basctl')
-rw-r--r--basctl/source/basicide/baside2b.cxx11
1 files changed, 11 insertions, 0 deletions
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx
index d1a29ae6f003..d4961d559481 100644
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -860,8 +860,10 @@ void EditorWindow::HandleCodeCompletion()
if( aVect.empty() )//nothing to do
return;
+
OUString sBaseName = aVect[0];//variable name
OUString sVarType = aCodeCompleteCache.GetVarType( sBaseName );
+
if( !sVarType.isEmpty() && CodeCompleteOptions::IsAutoCorrectOn() )
{//correct variable name, if autocorrection on
const OUString& sStr = aCodeCompleteCache.GetCorrectCaseVarName( sBaseName, GetActualSubName(nLine) );
@@ -3002,6 +3004,10 @@ std::vector< OUString > UnoTypeCodeCompletetor::GetXIdlClassFields() const
bool UnoTypeCodeCompletetor::CheckField( const OUString& sFieldName )
{// modifies xClass!!!
+
+ if ( xClass == NULL )
+ return false;
+
Reference< reflection::XIdlField> xField = xClass->getField( sFieldName );
if( xField != NULL )
{
@@ -3016,6 +3022,11 @@ bool UnoTypeCodeCompletetor::CheckField( const OUString& sFieldName )
bool UnoTypeCodeCompletetor::CheckMethod( const OUString& sMethName )
{// modifies xClass!!!
+
+
+ if ( xClass == NULL )
+ return false;
+
Reference< reflection::XIdlMethod> xMethod = xClass->getMethod( sMethName );
if( xMethod != NULL ) //method OK, check return type
{