diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-07-02 16:21:26 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2015-09-28 08:28:20 +0200 |
commit | 87e3ee9c3c5d84f8f3cb460e7069d8c6ed487eda (patch) | |
tree | e38f2b2c373267a726ed2889a9fb18e07367ea06 /vcl | |
parent | 8529bc6074015d06188eeab6034854a9d1be8255 (diff) |
Resolves: tdf#92467 crashes with empty history list on pressing down
regression from some 16->32 bit listbox limit changing
Change-Id: I045eeef935afed4154fe11bfd11916c2d6a722e9
(cherry picked from commit c51d5706205cd0282c07d778ffac5f265c3eaf5f)
(cherry picked from commit a8ddd3b0280baa1b770f439fbbca9ff073faa16b)
Reviewed-on: https://gerrit.libreoffice.org/16699
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
(cherry picked from commit db6257d009facfa7f75e34f40e4d1fd5df372464)
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/control/ilstbox.cxx | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/vcl/source/control/ilstbox.cxx b/vcl/source/control/ilstbox.cxx index 2769e905423b..22d5f7db29c9 100644 --- a/vcl/source/control/ilstbox.cxx +++ b/vcl/source/control/ilstbox.cxx @@ -1615,8 +1615,9 @@ bool ImplListBoxWindow::ProcessKeyInput( const KeyEvent& rKEvt ) ) { DBG_ASSERT( !mpEntryList->IsEntryPosSelected( nSelect ) || mbMulti, "ImplListBox: Selecting same Entry" ); - if( nSelect >= mpEntryList->GetEntryCount() ) - nSelect = mpEntryList->GetEntryCount()-1; + sal_Int32 nCount = mpEntryList->GetEntryCount(); + if (nSelect >= nCount) + nSelect = nCount ? nCount-1 : LISTBOX_ENTRY_NOTFOUND; bool bCurPosChange = (mnCurrentPos != nSelect); mnCurrentPos = nSelect; if(SelectEntries( nSelect, eLET, bShift, bCtrl, bCurPosChange)) @@ -1676,8 +1677,9 @@ void ImplListBoxWindow::SelectEntry( ::vcl::StringEntryIdentifier _entry ) // normalize OSL_ENSURE( nSelect < mpEntryList->GetEntryCount(), "ImplListBoxWindow::SelectEntry: how that?" ); - if( nSelect >= mpEntryList->GetEntryCount() ) - nSelect = mpEntryList->GetEntryCount()-1; + sal_Int32 nCount = mpEntryList->GetEntryCount(); + if (nSelect >= nCount) + nSelect = nCount ? nCount-1 : LISTBOX_ENTRY_NOTFOUND; // make visible ShowProminentEntry( nSelect ); |