diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2013-02-18 02:12:13 -0600 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2013-02-22 07:42:27 +0000 |
commit | bb82f5c1e946333781779cd21ab64aa19f02cd85 (patch) | |
tree | 0b20afef087419ff0911428b04fbe59b547359b5 | |
parent | 13ed66c9ce46d7f9ec9f670544e6fdf440412c72 (diff) |
coverity#982443 Explicitt null dereferenced
Change-Id: I470c34c38eda673e6663b23cdb28ea4be0bef914
Reviewed-on: https://gerrit.libreoffice.org/2218
Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
-rw-r--r-- | basctl/source/basicide/bastype3.cxx | 64 |
1 files changed, 30 insertions, 34 deletions
diff --git a/basctl/source/basicide/bastype3.cxx b/basctl/source/basicide/bastype3.cxx index db15a6a6787e..c734642ddc26 100644 --- a/basctl/source/basicide/bastype3.cxx +++ b/basctl/source/basicide/bastype3.cxx @@ -208,49 +208,45 @@ SbxVariable* TreeListBox::FindVariable( SvTreeListEntry* pEntry ) switch ( pBE->GetType() ) { - case OBJ_TYPE_LIBRARY: - { - if (BasicManager* pBasMgr = aDocument.getBasicManager()) - pVar = pBasMgr->GetLib( aName ); - } + case OBJ_TYPE_LIBRARY: + if (BasicManager* pBasMgr = aDocument.getBasicManager()) + pVar = pBasMgr->GetLib( aName ); break; - case OBJ_TYPE_MODULE: + case OBJ_TYPE_MODULE: + DBG_ASSERT(dynamic_cast<StarBASIC*>(pVar), "FindVariable: invalid Basic"); + if(!pVar) { - DBG_ASSERT(dynamic_cast<StarBASIC*>(pVar), "FindVariable: invalid Basic"); - // extract the module name from the string like "Sheet1 (Example1)" - if( bDocumentObjects ) - { - sal_uInt16 nIndex = 0; - aName = aName.GetToken( 0, ' ', nIndex ); - } - pVar = static_cast<StarBASIC*>(pVar)->FindModule( aName ); + break; } - break; - case OBJ_TYPE_METHOD: + // extract the module name from the string like "Sheet1 (Example1)" + if( bDocumentObjects ) { - DBG_ASSERT(dynamic_cast<SbxObject*>(pVar), "FindVariable: invalid modul/object"); - pVar = static_cast<SbxObject*>(pVar)->GetMethods()->Find(aName, SbxCLASS_METHOD); + sal_uInt16 nIndex = 0; + aName = aName.GetToken( 0, ' ', nIndex ); } + pVar = static_cast<StarBASIC*>(pVar)->FindModule( aName ); break; - case OBJ_TYPE_DIALOG: + case OBJ_TYPE_METHOD: + DBG_ASSERT(dynamic_cast<SbxObject*>(pVar), "FindVariable: invalid modul/object"); + if(!pVar) { - // sbx dialogs removed + break; } + pVar = static_cast<SbxObject*>(pVar)->GetMethods()->Find(aName, SbxCLASS_METHOD); break; - case OBJ_TYPE_DOCUMENT_OBJECTS: - bDocumentObjects = true; - case OBJ_TYPE_USERFORMS: - case OBJ_TYPE_NORMAL_MODULES: - case OBJ_TYPE_CLASS_MODULES: - { - // skip, to find the child entry. - continue; - } - default: - { - OSL_FAIL( "FindVariable: Unbekannter Typ!" ); - pVar = 0; - } + case OBJ_TYPE_DIALOG: + // sbx dialogs removed + break; + case OBJ_TYPE_DOCUMENT_OBJECTS: + bDocumentObjects = true; + case OBJ_TYPE_USERFORMS: + case OBJ_TYPE_NORMAL_MODULES: + case OBJ_TYPE_CLASS_MODULES: + // skip, to find the child entry. + continue; + default: + OSL_FAIL( "FindVariable: Unbekannter Typ!" ); + pVar = 0; break; } if ( !pVar ) |