← Back to team overview

hugin-devs team mailing list archive

Re: [Bug 1451172] Re: hugin 2015.0.0-beta1 throws ASSERT INFO; invalid list ctrl item index in SetItem when deleteing a mask

 

On 04.05.2015 17:36, tmodes wrote:
> I can't reproduce the issue. Tested on 2 different systems: Windows and
> Linux (both with wxWidgets 3.x).

The following is done in "Expert mode" if this makes a difference.

I can reproduce this easily in 2015.0.0-beta 1:
o Create a new project
o Add two images
o Add a mask to the second image
o save the project (attached as
o press "Delete mask" in Masks

and I immediately get this:
ASSERT INFO:
../src/generic/listctrl.cpp(3367): assert "litem >= 0 && (size_t)litem <
GetItemCount()" failed in SetItemState(): invalid list ctrl item index
in SetItem

BACKTRACE:
[1] wxGenericListCtrl::SetItemState(long, long, long)
[2] MaskEditorPanel::panoramaImagesChanged(HuginBase::Panorama&,
std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned
int> > const&)
[3] HuginBase::Panorama::changeFinished(bool)
[4] PanoCommand::PanoCommand::execute()
[5] PanoCommand::CommandHistory::addCommand(PanoCommand::PanoCommand*, bool)
[6] MaskEditorPanel::OnMaskDelete(wxCommandEvent&)
[7] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&,
wxEvent&) const
[8] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&)
[9] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[10] wxEvtHandler::TryHereOnly(wxEvent&)
[11] wxEvtHandler::ProcessEventLocally(wxEvent&)
[12] wxEvtHandler::ProcessEvent(wxEvent&)
[13] wxWindowBase::TryAfter(wxEvent&)
[14] wxWindowBase::TryAfter(wxEvent&)
[15] wxWindowBase::TryAfter(wxEvent&)
[16] wxWindowBase::TryAfter(wxEvent&)
[17] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[18] g_signal_emit_valist
[19] g_signal_emit
[20] g_closure_invoke
[21] g_signal_emit_valist
[22] g_signal_emit
[23] g_closure_invoke
[24] g_signal_emit_valist
[25] g_signal_emit
[26] gtk_propagate_event
[27] gtk_main_do_event
[28] g_main_context_dispatch
[29] g_main_loop_run
[30] gtk_main
[31] wxGUIEventLoop::DoRun()
[32] wxEventLoopBase::Run()
[33] wxAppConsoleBase::MainLoop()
[34] wxEntry(int&, wchar_t**)
[35] main
[36] __libc_start_main
[37] _start

I can reproduce this by
o loading the attached pto
o changing to the Masks tab
o selecting image 1
o selecting '0 Exclude region'
o pressing the "Delete mask" button

> 
> Could you provide the project file and mention with mask you are deleting (image and mask number) when you get the assert message?
> Maybe it is a coincidence of several different issues.

I will try if I can reproduce this with the master. Maybe one of the
fixes you applied in the meantime has an influence.

> Is the option show extend of masks and crops switched on or off?

it is disabled in my case. However, enabling it doe snot change the
assert message:
ASSERT INFO:
../src/generic/listctrl.cpp(3367): assert "litem >= 0 && (size_t)litem <
GetItemCount()" failed in SetItemState(): invalid list ctrl item index
in SetItem

BACKTRACE:
[1] wxGenericListCtrl::SetItemState(long, long, long)
[2] MaskEditorPanel::panoramaImagesChanged(HuginBase::Panorama&,
std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned
int> > const&)
[3] HuginBase::Panorama::changeFinished(bool)
[4] PanoCommand::PanoCommand::execute()
[5] PanoCommand::CommandHistory::addCommand(PanoCommand::PanoCommand*, bool)
[6] MaskEditorPanel::OnMaskDelete(wxCommandEvent&)
[7] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&,
wxEvent&) const
[8] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&)
[9] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[10] wxEvtHandler::TryHereOnly(wxEvent&)
[11] wxEvtHandler::ProcessEventLocally(wxEvent&)
[12] wxEvtHandler::ProcessEvent(wxEvent&)
[13] wxWindowBase::TryAfter(wxEvent&)
[14] wxWindowBase::TryAfter(wxEvent&)
[15] wxWindowBase::TryAfter(wxEvent&)
[16] wxWindowBase::TryAfter(wxEvent&)
[17] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[18] g_signal_emit_valist
[19] g_signal_emit
[20] g_closure_invoke
[21] g_signal_emit_valist
[22] g_signal_emit
[23] g_closure_invoke
[24] g_signal_emit_valist
[25] g_signal_emit
[26] gtk_propagate_event
[27] gtk_main_do_event
[28] g_main_context_dispatch
[29] g_main_loop_run
[30] gtk_main
[31] wxGUIEventLoop::DoRun()
[32] wxEventLoopBase::Run()
[33] wxAppConsoleBase::MainLoop()
[34] wxEntry(int&, wchar_t**)
[35] main
[36] __libc_start_main
[37] _start


Thank you for your time investigating this issue. Please let me know if
I can do anything else to help find the issue.

With kind regards

Stefan Peter

-- 
Any technology that does not appear magical is insufficiently advanced."
~ Gregory Benford


** Attachment added: "test1451172.pto"
   https://bugs.launchpad.net/bugs/1451172/+attachment/4390784/+files/test1451172.pto

-- 
You received this bug notification because you are a member of Hugin
Developers, which is subscribed to Hugin.
https://bugs.launchpad.net/bugs/1451172

Title:
  hugin 2015.0.0-beta1 throws ASSERT INFO; invalid list ctrl item index
  in SetItem when deleteing a mask

Status in Hugin - Panorama Tools GUI:
  New

Bug description:
  In hugin 2015.0.0-Beta1, when deleting a mask, the following is thrown

  ASSERT INFO:
  ../src/generic/listctrl.cpp(3367): assert "litem >= 0 && (size_t)litem < GetItemCount()" failed in SetItemState(): invalid list ctrl item index in SetItem

  BACKTRACE:
  [1] wxGenericListCtrl::SetItemState(long, long, long)
  [2] MaskEditorPanel::panoramaImagesChanged(HuginBase::Panorama&, std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > const&)
  [3] HuginBase::Panorama::changeFinished(bool)
  [4] PanoCommand::PanoCommand::execute()
  [5] PanoCommand::CommandHistory::addCommand(PanoCommand::PanoCommand*, bool)
  [6] MaskEditorPanel::OnMaskDelete(wxCommandEvent&)
  [7] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
  [8] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
  [9] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
  [10] wxEvtHandler::TryHereOnly(wxEvent&)
  [11] wxEvtHandler::ProcessEventLocally(wxEvent&)
  [12] wxEvtHandler::ProcessEvent(wxEvent&)
  [13] wxWindowBase::TryAfter(wxEvent&)
  [14] wxWindowBase::TryAfter(wxEvent&)
  [15] wxWindowBase::TryAfter(wxEvent&)
  [16] wxWindowBase::TryAfter(wxEvent&)
  [17] wxEvtHandler::SafelyProcessEvent(wxEvent&)
  [18] g_signal_emit_valist
  [19] g_signal_emit
  [20] g_closure_invoke
  [21] g_signal_emit_valist
  [22] g_signal_emit
  [23] g_closure_invoke
  [24] g_signal_emit_valist
  [25] g_signal_emit
  [26] gtk_propagate_event
  [27] gtk_main_do_event
  [28] g_main_context_dispatch
  [29] g_main_loop_run
  [30] gtk_main
  [31] wxGUIEventLoop::DoRun()
  [32] wxEventLoopBase::Run()
  [33] wxAppConsoleBase::MainLoop()
  [34] wxEntry(int&, wchar_t**)
  [35] main
  [36] __libc_start_main
  [37] _start

  This is under Ubuntu 14.04 LTS using 2015.0.0~beta1+dfsg-0ubuntu2~trusty from 
  https://launchpad.net/~hugin/+archive/ubuntu/next. 

  Please note that this version already has 
  6903:aace4a6969bc : Fixes a further assert message
  and
  6904:213b546a477e: Fixes crash in cp editor [1449065]
  applied

  With kind regards

  Stefan Peter

To manage notifications about this bug go to:
https://bugs.launchpad.net/hugin/+bug/1451172/+subscriptions


Follow ups

References