Project

General

Profile

Bug #2009

Core dump when updating a WStandardItem filterKeyColumn with WSortFilterProxyModel

Added by Stefan Ruppert about 9 years ago. Updated about 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
07/05/2013
Due date:
% Done:

0%

Estimated time:

Description

Hi,

I use a WStandardItemModel with a WSortFilterProxyModel to filter rows using the filterKeyColumn() of class WSortFilterProxyModel. I have enabled dynamic sorting using setDynamicSortFilter(true)!

If I change an filterKeyColumn item and some rows are filtered I get the following core dump. I figured out a workaround by the following steps:

  • setDynamicSortFilter(false);
  • change filter key column items
  • setDynamicSortFilter(true);

However the core dump should be fixed!

Wt git version: kdeforche-wt-53cd144

(gdb) where
#0  __memmove_ssse3_back () at ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S:1556
#1  0x00007ffff72da9b0 in __copy_m<int> (__result=<optimized out>, __last=<optimized out>, __first=<optimized out>) at /opt/devel/build/x86_64-unknown-linux-gnu/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.3.3/../../../../include/c++/4.3.3/bits/stl_algobase.h:377
#2  __copy_move_a<false, int*, int*> (__result=<optimized out>, __last=<optimized out>, __first=<optimized out>) at /opt/devel/build/x86_64-unknown-linux-gnu/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.3.3/../../../../include/c++/4.3.3/bits/stl_algobase.h:396
#3  __copy_move_a2<false, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > (__first=..., __last=..., __result=...)
    at /opt/devel/build/x86_64-unknown-linux-gnu/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.3.3/../../../../include/c++/4.3.3/bits/stl_algobase.h:435
#4  copy<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > (__first=..., __last=..., __result=...)
    at /opt/devel/build/x86_64-unknown-linux-gnu/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.3.3/../../../../include/c++/4.3.3/bits/stl_algobase.h:466
#5  std::vector<int, std::allocator<int> >::erase (this=0x7fffd00020b8, __position=...) at /opt/devel/build/x86_64-unknown-linux-gnu/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.3.3/../../../../include/c++/4.3.3/bits/vector.tcc:124
#6  0x00007ffff740cfbb in Wt::WSortFilterProxyModel::sourceDataChanged (this=0x7fffdc03d450, topLeft=..., bottomRight=...) at /home/ruppert/work/wt/kdeforche-wt-53cd144/src/Wt/WSortFilterProxyModel.C:559
#7  0x00007ffff740d373 in operator() (a2=..., a1=..., p=<optimized out>, this=<optimized out>) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/bind/mem_fn_template.hpp:280
#8  operator()<boost::_mfi::mf2<void, Wt::WSortFilterProxyModel, const Wt::WModelIndex&, const Wt::WModelIndex&>, boost::_bi::list6<Wt::WModelIndex&, Wt::WModelIndex&, Wt::NoClass&, Wt::NoClass&, Wt::NoClass&, Wt::NoClass&> > (a=..., f=..., this=<optimized out>)
    at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/bind/bind.hpp:392
#9  operator()<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> (a6=..., a5=..., a4=..., a3=..., a2=..., a1=..., this=<optimized out>) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/bind/bind_template.hpp:203
#10 boost::detail::function::void_function_obj_invoker6<boost::_bi::bind_t<void, boost::_mfi::mf2<void, Wt::WSortFilterProxyModel, Wt::WModelIndex const&, Wt::WModelIndex const&>, boost::_bi::list3<boost::_bi::value<Wt::WSortFilterProxyModel*>, boost::arg<1>, boost::arg<2> > >, void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass>::invoke (function_obj_ptr=..., a0=..., a1=..., a2=..., a3=..., a4=..., a5=...) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/function/function_template.hpp:153
#11 0x00007ffff728f026 in operator() (a5=..., a4=..., a3=..., a2=..., a1=..., a0=..., this=<optimized out>) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/function/function_template.hpp:760
#12 operator()<boost::signals::detail::connection_slot_pair> (slot=..., this=<optimized out>) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/signals/signal_template.hpp:119
#13 dereference (this=<optimized out>) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/signals/detail/slot_call_iterator.hpp:61
#14 dereference<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> >, boost::signals::detail::named_slot_map_iterator> > (f=...) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/iterator/iterator_facade.hpp:517
#15 operator* (this=<optimized out>) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/iterator/iterator_facade.hpp:643
#16 postfix_increment_proxy (this=<optimized out>, x=...) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/iterator/iterator_facade.hpp:145
#17 operator++<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, const boost::signals::detail::unusable&, long int> (i=...) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/iterator/iterator_facade.hpp:732
#18 operator()<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> >, boost::signals::detail::named_slot_map_iterator> > (this=<optimized out>, first=..., last=...) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/last_value.hpp:49
#19 boost::signal6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::last_value<void>, int, std::less<int>, boost::function6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> >::operator() (this=0x7fffdc040e60, a1=..., 
    a2=..., a3=..., a4=..., a5=..., a6=...) at /opt/devel/x86_64-unknown-linux-gnu/boost-1.48/include/boost/signals/signal_template.hpp:354
#20 0x00007ffff72dca2b in Wt::Signal<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass>::emit(Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass) const () from /opt/myarm_devel/webapp/lib/libwt.so.35
#21 0x00007ffff7418a32 in Wt::WStandardItem::setData (this=0x7fffdc06bde0, d=..., role=32) at /home/ruppert/work/wt/kdeforche-wt-53cd144/src/Wt/WStandardItem.C:165
#1

Updated by Pierluigi Vicinanza about 9 years ago

I think this could well be related to Bug #2039

#2

Updated by Koen Deforche about 9 years ago

  • Status changed from New to Closed

This is indeed a duplicate of #2039!

Also available in: Atom PDF