Kaydet (Commit) 5481d32d authored tarafından Armin Le Grand's avatar Armin Le Grand Kaydeden (comit) Caolán McNamara

Secured SlideSorterModel::DeleteSlide for negative page indices

(cherry picked from commit f6bff98d)

Change-Id: I8c7ca633043ec224df4e4ab08c20d44f969a8059

Corrected signed/unsigned mix

(cherry picked from commit 20a3aee5)

Change-Id: I6f8ffc6f541c2a06c9e97ef06711f312adc438f2
üst 1685d098
......@@ -670,13 +670,36 @@ void SlideSorterModel::InsertSlide (SdPage* pPage)
void SlideSorterModel::DeleteSlide (const SdPage* pPage)
{
const sal_Int32 nIndex (GetIndex(pPage));
if (maPageDescriptors[nIndex])
if (maPageDescriptors[nIndex]->GetPage() != pPage)
return;
sal_Int32 nIndex(0);
maPageDescriptors.erase(maPageDescriptors.begin()+nIndex);
UpdateIndices(nIndex);
// Caution, GetIndex() may be negative since it uses GetPageNumber()-1
// for calculation, so do this only when page is inserted, else the
// GetPageNumber() will be zero and thus GetIndex() == -1
if(pPage->IsInserted())
{
nIndex = GetIndex(pPage);
}
else
{
// if not inserted, search for page
for(; nIndex < static_cast<sal_Int32>(maPageDescriptors.size()); nIndex++)
{
if(maPageDescriptors[nIndex]->GetPage() == pPage)
{
break;
}
}
}
if(nIndex >= 0 && nIndex < static_cast<sal_Int32>(maPageDescriptors.size()))
{
if (maPageDescriptors[nIndex])
if (maPageDescriptors[nIndex]->GetPage() != pPage)
return;
maPageDescriptors.erase(maPageDescriptors.begin()+nIndex);
UpdateIndices(nIndex);
}
OSL_TRACE("page removed");
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment