[Libreoffice-commits] core.git: basctl/source
Mike Kaganski (via logerrit)
logerrit at kemper.freedesktop.org
Tue Jan 14 18:27:06 UTC 2020
basctl/source/basicide/baside2b.cxx | 24 +++++++++---------------
1 file changed, 9 insertions(+), 15 deletions(-)
New commits:
commit 9f7ac479ff134d0f9ce65f6f8681e5e7664f357b
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Tue Jan 14 12:19:15 2020 +0300
Commit: Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Tue Jan 14 19:26:31 2020 +0100
tdf#129360: don't try to use uninitialized objects
And also don't forget to re-initialize member list of watch item.
Another old bug masked by hacks removed in commit
62f3f3d92aa204eaaa063b30d7ade44df501b997. E.g., previously in code
Type t1
var1
var2
End Type
Type t2
var1
var2
var3
End Type
Sub test
Dim v1 As t1, v2 As t2, v
v = v1
v = v2
End Sub
breaking on line 'v = v1', expanding v in Watch, and stepping to next
line, didn't update the children count. After the change, this surfaced,
and now fixed.
Change-Id: Ia47f5363a2fc62042701ff14d084870d1cced392
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86792
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx
index c6c954d36013..7449ba41f197 100644
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -2492,21 +2492,16 @@ void WatchTreeListBox::UpdateWatches( bool bBasicStopped )
{
if ( pItem->mpObject.is() && !pItem->maMemberList.empty() )
{
- bool bObjChanged = false; // Check if member list has changed
+ createAllObjectProperties(pObj);
SbxArray* pProps = pObj->GetProperties();
const sal_uInt32 nPropCount = getCorrectedPropCount(pProps);
- for( sal_uInt32 i = 0 ; i < nPropCount ; i++ )
+ // Check if member list has changed
+ bCollapse = pItem->maMemberList.size() != nPropCount;
+ for( sal_uInt32 i = 0 ; !bCollapse && i < nPropCount ; i++ )
{
SbxVariable* pVar_ = pProps->Get32( i );
if( pItem->maMemberList[i] != pVar_->GetName() )
- {
- bObjChanged = true;
- break;
- }
- }
- if( bObjChanged )
- {
- bCollapse = true;
+ bCollapse = true;
}
}
@@ -2520,8 +2515,6 @@ void WatchTreeListBox::UpdateWatches( bool bBasicStopped )
if( pItem->mpObject.is() )
{
bCollapse = true;
- pItem->clearWatchItem();
-
implEnableChildren( pEntry, false );
}
}
@@ -2531,8 +2524,6 @@ void WatchTreeListBox::UpdateWatches( bool bBasicStopped )
if( pItem->mpObject.is() )
{
bCollapse = true;
- pItem->clearWatchItem();
-
implEnableChildren( pEntry, false );
}
@@ -2565,6 +2556,7 @@ void WatchTreeListBox::UpdateWatches( bool bBasicStopped )
if( bCollapse )
{
implCollapseModifiedObjectEntry( pEntry, this );
+ pItem->clearWatchItem();
}
}
@@ -2573,8 +2565,10 @@ void WatchTreeListBox::UpdateWatches( bool bBasicStopped )
if( pItem->mpObject.is() || pItem->mpArray.is() )
{
implCollapseModifiedObjectEntry( pEntry, this );
- pItem->mpObject = nullptr;
+ pItem->mpObject.clear();
+ pItem->mpArray.clear();
}
+ pItem->clearWatchItem();
}
SvHeaderTabListBox::SetEntryText( aWatchStr, pEntry, ITEM_ID_VALUE-1 );
More information about the Libreoffice-commits
mailing list