View Issue Details

IDProjectCategoryView StatusLast Update
0003753ardourbugspublic2020-04-19 20:15
Reporterv2 Assigned Tocth103  
PriorityhighSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Summary0003753: MIDI region context menu crash
DescriptionOpening the MIDI region context menu twice crashes ardour. Tested with r8681. Backtrace attached.
Additional InformationTo duplicate:
 1. Start ardour
 2. Create new session
 3. Add MIDI track
 4. Record region on track
 5. Right click on region
 6. Click outside context menu to close it
 7. Right click again on region
TagsNo tags attached.

Activities

2011-02-02 21:33

 

midi_context_menu_bt.txt (15,746 bytes)   
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff0afe963 in gtk_menu_item_set_label () from /usr/lib/libgtk-x11-2.0.so.0
(gdb) thread apply all bt

Thread 23 (Thread 0x7fffb6c79820 (LWP 7915)):
#0  0x00007fffec91d11d in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007ffff24f77d8 in g_usleep () from /lib/libglib-2.0.so.0
#2  0x00007ffff62ab600 in ARDOUR::AudioEngine::meter_thread (this=0x2422450) at ../libs/ardour/audioengine.cc:701
#3  0x00007ffff62cc181 in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator() (this=0x2192ed0, p=0x2422450) at /usr/include/boost/bind/mem_fn_template.hpp:49
#4  0x00007ffff62c75c8 in boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list0> (this=0x2192ee0, f=..., a=...)
    at /usr/include/boost/bind/bind.hpp:246
#5  0x00007ffff62c2fcb in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator() (this=0x2192ed0)
    at /usr/include/boost/bind/bind_template.hpp:20
#6  0x00007ffff62bdf2c in sigc::adaptor_functor<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > > >::operator()
    (this=0x2192ed0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#7  0x00007ffff62b9936 in sigc::internal::slot_call0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >, void>::call_it (rep=0x2192ea0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#8  0x00007ffff165f862 in ?? () from /usr/lib/libglibmm-2.4.so.1
#9  0x00007ffff24f4b84 in ?? () from /lib/libglib-2.0.so.0
#10 0x00007fffec9149ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#11 0x00007fffec67170d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 22 (Thread 0x7fffd77e0700 (LWP 7914)):
#0  0x00007fffec664f93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007ffff24cf4a9 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007ffff24cfc55 in g_main_loop_run () from /lib/libglib-2.0.so.0
#3  0x00007ffff76e2c4b in BaseUI::main_thread (this=0x3e62cc0) at ../libs/pbd/base_ui.cc:76
#4  0x00007ffff76e40f7 in sigc::bound_mem_functor0<void, BaseUI>::operator() (this=0x3e62008) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
#5  0x00007ffff76e3f52 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, BaseUI> >::operator() (this=0x3e62000) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#6  0x00007ffff76e3cab in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, BaseUI>, void>::call_it (rep=0x3e61fd0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#7  0x00007ffff165f862 in ?? () from /usr/lib/libglibmm-2.4.so.1
#8  0x00007ffff24f4b84 in ?? () from /lib/libglib-2.0.so.0
#9  0x00007fffec9149ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007fffec67170d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 21 (Thread 0x7fffb6cf4820 (LWP 7913)):
#0  0x00007fffec664f93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007ffff632e37a in ARDOUR::Butler::thread_work (this=0x3c39130) at ../libs/ardour/butler.cc:159
#2  0x00007ffff632e2ee in ARDOUR::Butler::_thread_work (arg=0x3c39130) at ../libs/ardour/butler.cc:140
#3  0x00007ffff771970c in fake_thread_start (arg=0x3e56770) at ../libs/pbd/pthread_utils.cc:81
#4  0x00007fffec9149ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#5  0x00007fffec67170d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 20 (Thread 0x7fffb6d76700 (LWP 7912)):
#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
#1  0x00007ffff6424e68 in PBD::ProcessSemaphore::wait (this=0x3c3a588) at ../libs/pbd/pbd/semutils.h:41
#2  0x00007ffff64224ff in ARDOUR::Graph::restart_cycle (this=0x3c3a4b0) at ../libs/ardour/graph.cc:228
#3  0x00007ffff64224c9 in ARDOUR::Graph::dec_ref (this=0x3c3a4b0) at ../libs/ardour/graph.cc:214
#4  0x00007ffff6429446 in ARDOUR::GraphNode::finish (this=0x3cd05b0, chain=0) at ../libs/ardour/graphnode.cc:61
#5  0x00007ffff6423467 in ARDOUR::Graph::run_one (this=0x3c3a4b0) at ../libs/ardour/graph.cc:374
#6  0x00007ffff6423794 in ARDOUR::Graph::main_thread (this=0x3c3a4b0) at ../libs/ardour/graph.cc:438
#7  0x00007ffff6428863 in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (this=0x7fffb6d75d58, p=0x3c3a4b0) at /usr/include/boost/bind/mem_fn_template.hpp:49
#8  0x00007ffff64284ac in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (this=0x7fffb6d75d68, f=..., a=...)
    at /usr/include/boost/bind/bind.hpp:246
#9  0x00007ffff64281dd in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (this=0x7fffb6d75d58)
    at /usr/include/boost/bind/bind_template.hpp:20
#10 0x00007ffff6427e37 in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> ---Type <return> to continue, or q <return> to quit---
> >, void>::invoke (function_obj_ptr=...) at /usr/include/boost/function/function_template.hpp:153
#11 0x0000000000fde9b9 in boost::function0<void>::operator() (this=0x7fffb6d75d50) at /usr/include/boost/function/function_template.hpp:1013
#12 0x00007ffff62ae97f in ARDOUR::AudioEngine::_start_process_thread (arg=0x3c4a930) at ../libs/ardour/audioengine.cc:1516
#13 0x00007fffec9149ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#14 0x00007fffec67170d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#15 0x0000000000000000 in ?? ()

Thread 19 (Thread 0x7fffb6df7700 (LWP 7911)):
#0  0x00007fffec664f93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=2147483) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007ffff2794ee6 in Jack::JackFifo::TimedWait(long) () from /usr/lib/libjack.so.0
#2  0x00007ffff277c1aa in Jack::JackConnectionManager::SuspendRefNum(Jack::JackClientControl*, Jack::JackFifo*, Jack::JackClientTiming*, long) () from /usr/lib/libjack.so.0
#3  0x00007ffff27795c7 in Jack::JackClient::CycleWait() () from /usr/lib/libjack.so.0
#4  0x00007ffff62aa835 in ARDOUR::AudioEngine::process_thread (this=0x2422450) at ../libs/ardour/audioengine.cc:460
#5  0x00007ffff62aa46c in ARDOUR::AudioEngine::_process_thread (arg=0x2422450) at ../libs/ardour/audioengine.cc:382
#6  0x00007ffff277aebb in Jack::JackClient::Execute() () from /usr/lib/libjack.so.0
#7  0x00007ffff2793820 in Jack::JackPosixThread::ThreadHandler(void*) () from /usr/lib/libjack.so.0
#8  0x00007fffec9149ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#9  0x00007fffec67170d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 18 (Thread 0x7fffd6f5e700 (LWP 7910)):
#0  0x00007fffec91c93d in read () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007ffff27956d2 in Jack::JackClientSocket::Read(void*, int) () from /usr/lib/libjack.so.0
#2  0x00007ffff2797e74 in Jack::JackSocketClientChannel::Execute() () from /usr/lib/libjack.so.0
#3  0x00007ffff2793820 in Jack::JackPosixThread::ThreadHandler(void*) () from /usr/lib/libjack.so.0
#4  0x00007fffec9149ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#5  0x00007fffec67170d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 17 (Thread 0x7fffd6fdf700 (LWP 7909)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff2795331 in Jack::JackProcessSync::Wait() () from /usr/lib/libjack.so.0
#2  0x00007ffff278e0b9 in Jack::JackMessageBuffer::Execute() () from /usr/lib/libjack.so.0
#3  0x00007ffff2793820 in Jack::JackPosixThread::ThreadHandler(void*) () from /usr/lib/libjack.so.0
#4  0x00007fffec9149ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#5  0x00007fffec67170d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fffe2a38700 (LWP 7896)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff623ab65 in ARDOUR::Analyser::work () at ../libs/ardour/analyser.cc:85
#2  0x00007ffff623a895 in analyser_work () at ../libs/ardour/analyser.cc:49
#3  0x00000000015d1613 in sigc::pointer_functor0<void>::operator()() const ()
#4  0x00000000015cee2e in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator()() const ()
#5  0x00000000015cbd77 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it(sigc::internal::slot_rep*) ()
#6  0x00007ffff165f862 in ?? () from /usr/lib/libglibmm-2.4.so.1
#7  0x00007ffff24f4b84 in ?? () from /lib/libglib-2.0.so.0
#8  0x00007fffec9149ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#9  0x00007fffec67170d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fffe3239700 (LWP 7895)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff67118f7 in peak_thread_work () at ../libs/ardour/source_factory.cc:69
#2  0x00000000015d1613 in sigc::pointer_functor0<void>::operator()() const ()
#3  0x00000000015cee2e in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator()() const ()
#4  0x00000000015cbd77 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it(sigc::internal::slot_rep*) ()
---Type <return> to continue, or q <return> to quit---
#5  0x00007ffff165f862 in ?? () from /usr/lib/libglibmm-2.4.so.1
#6  0x00007ffff24f4b84 in ?? () from /lib/libglib-2.0.so.0
#7  0x00007fffec9149ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#8  0x00007fffec67170d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fffe3a3a700 (LWP 7894)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff67118f7 in peak_thread_work () at ../libs/ardour/source_factory.cc:69
#2  0x00000000015d1613 in sigc::pointer_functor0<void>::operator()() const ()
#3  0x00000000015cee2e in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator()() const ()
#4  0x00000000015cbd77 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it(sigc::internal::slot_rep*) ()
#5  0x00007ffff165f862 in ?? () from /usr/lib/libglibmm-2.4.so.1
#6  0x00007ffff24f4b84 in ?? () from /lib/libglib-2.0.so.0
#7  0x00007fffec9149ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#8  0x00007fffec67170d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ffff7f99820 (LWP 7886)):
#0  0x00007ffff0afe963 in gtk_menu_item_set_label () from /usr/lib/libgtk-x11-2.0.so.0
#1  0x0000000001159339 in Editor::add_region_context_items (this=0x25fadd0, edit_items=..., multiple_regions_at_position=false) at ../gtk2_ardour/editor.cc:1729
#2  0x0000000001157d35 in Editor::build_track_region_context_menu (this=0x25fadd0) at ../gtk2_ardour/editor.cc:1540
#3  0x0000000001157077 in Editor::popup_track_context_menu (this=0x25fadd0, button=1, time=31880688, item_type=RegionItem, with_selection=false) at ../gtk2_ardour/editor.cc:1407
#4  0x000000000125af20 in Editor::button_release_handler (this=0x25fadd0, item=0x7fffdc8fe770, event=0x422e9e0, item_type=RegionItem) at ../gtk2_ardour/editor_mouse.cc:1266
#5  0x00000000011ff205 in Editor::canvas_region_view_event (this=0x25fadd0, event=0x422e9e0, item=0x7fffdc8fe770, rv=0x7fffdc900b80) at ../gtk2_ardour/editor_canvas_events.cc:242
#6  0x000000000106a1d5 in sigc::bound_mem_functor3<bool, PublicEditor, _GdkEvent*, Gnome::Canvas::Item*, RegionView*>::operator() (this=0x7fffdc901df0, _A_a1=@0x7fffffffcb58, 
    _A_a2=@0x7fffffffcac8, _A_a3=@0x7fffdc901e18) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1985
#7  0x0000000001640237 in sigc::adaptor_functor<sigc::bound_mem_functor3<bool, PublicEditor, _GdkEvent*, Gnome::Canvas::Item*, RegionView*> >::operator()<_GdkEvent* const&, Gnome::Canvas::Group*&, RegionView*&> (this=0x7fffdc901de8, _A_arg1=@0x7fffffffcb58, _A_arg2=@0x7fffdc901e10, _A_arg3=@0x7fffdc901e18) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:123
#8  0x000000000163fbc2 in sigc::bind_functor<-1, sigc::bound_mem_functor3<bool, PublicEditor, _GdkEvent*, Gnome::Canvas::Item*, RegionView*>, Gnome::Canvas::Group*, RegionView*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator()<_GdkEvent* const&> (this=0x7fffdc901de0, _A_arg1=@0x7fffffffcb58) at /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:1336
#9  0x000000000163f0c4 in sigc::internal::slot_call1<sigc::bind_functor<-1, sigc::bound_mem_functor3<bool, PublicEditor, _GdkEvent*, Gnome::Canvas::Item*, RegionView*>, Gnome::Canvas::Group*, RegionView*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, bool, _GdkEvent*>::call_it (rep=0x7fffdc901db0, a_1=@0x7fffffffcb58) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:137
#10 0x00007fffed751f22 in ?? () from /usr/lib/libgnomecanvasmm-2.6.so.1
#11 0x00007ffff4e8367d in gnome_canvas_marshal_BOOLEAN__BOXED (closure=0x7fffdc901e60, return_value=0x7fffffffcd50, n_param_values=2, param_values=0x7fffdc905b80, 
    invocation_hint=0x7fffffffcd10, marshal_data=0x0) at ../libs/gnomecanvas/libgnomecanvas/gnome-canvas-marshal.c:125
#12 0x00007ffff13ee5de in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#13 0x00007ffff14029a4 in ?? () from /usr/lib/libgobject-2.0.so.0
#14 0x00007ffff14038b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#15 0x00007ffff1404033 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#16 0x00007ffff4e8998d in emit_event (canvas=0x2269350, event=0x265c8b0) at ../libs/gnomecanvas/libgnomecanvas/gnome-canvas.c:2583
#17 0x00007ffff4e8a3bd in gnome_canvas_button (widget=0x2269350, event=0x265c8b0) at ../libs/gnomecanvas/libgnomecanvas/gnome-canvas.c:2798
#18 0x00007ffff0af4178 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#19 0x00007ffff13ee5de in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#20 0x00007ffff14021dd in ?? () from /usr/lib/libgobject-2.0.so.0
#21 0x00007ffff14038b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#22 0x00007ffff1404033 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#23 0x00007ffff0c0b0bf in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#24 0x00007ffff0aec643 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#25 0x00007ffff0aed71b in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#26 0x00007ffff076186c in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#27 0x00007ffff24cb8c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#28 0x00007ffff24cf748 in ?? () from /lib/libglib-2.0.so.0
#29 0x00007ffff24cfc55 in g_main_loop_run () from /lib/libglib-2.0.so.0
#30 0x00007ffff0aedbb7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#31 0x00007ffff5225a0f in Gtkmm2ext::UI::run (this=0x200da10, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:265
#32 0x000000000141db09 in main (argc=1, argv=0x7fffffffd978) at ../gtk2_ardour/main.cc:615
(gdb) 

midi_context_menu_bt.txt (15,746 bytes)   

2011-02-05 01:39

 

region-context-menu-crash-fix.patch (1,949 bytes)   
Index: editor.cc
===================================================================
--- editor.cc	(revision 8719)
+++ editor.cc	(working copy)
@@ -395,18 +395,21 @@
 	bbt_label.set_padding (5,0);
 	bbt_label.hide ();
 	bbt_label.set_no_show_all();
+	
 	minsec_label.set_name ("EditorTimeButton");
 	minsec_label.set_size_request (-1, (int)timebar_height);
 	minsec_label.set_alignment (1.0, 0.5);
 	minsec_label.set_padding (5,0);
 	minsec_label.hide ();
 	minsec_label.set_no_show_all();
+	
 	timecode_label.set_name ("EditorTimeButton");
 	timecode_label.set_size_request (-1, (int)timebar_height);
 	timecode_label.set_alignment (1.0, 0.5);
 	timecode_label.set_padding (5,0);
 	timecode_label.hide ();
 	timecode_label.set_no_show_all();
+	
 	samples_label.set_name ("EditorTimeButton");
 	samples_label.set_size_request (-1, (int)timebar_height);
 	samples_label.set_alignment (1.0, 0.5);
@@ -728,16 +731,18 @@
 {
 #ifdef WITH_CMT
 	if(image_socket_listener) {
+	  
 		if(image_socket_listener->is_connected())
 		{
 			image_socket_listener->close_connection() ;
 		}
 
 		delete image_socket_listener ;
+		
 		image_socket_listener = 0 ;
 	}
 #endif
-        
+
 	delete _routes;
 	delete _route_groups;
 	delete track_canvas;
@@ -1722,7 +1727,7 @@
 	}
 
 	if (_popup_region_menu_item == 0) {
-		_popup_region_menu_item = manage (new MenuItem (menu_item_name));
+		_popup_region_menu_item = new MenuItem (menu_item_name);
 		_popup_region_menu_item->set_submenu (*dynamic_cast<Menu*> (ActionManager::get_widget (X_("/PopupRegionMenu"))));
 		_popup_region_menu_item->show ();
 	} else {
@@ -1730,9 +1735,11 @@
 	}
 
 	edit_items.push_back (*_popup_region_menu_item);
+
 	if (multiple_regions_at_position && (layering_order_editor == 0 || !layering_order_editor->is_visible ())) {
 		edit_items.push_back (*manage (_region_actions->get_action ("choose-top-region")->create_menu_item ()));
 	}
+
 	edit_items.push_back (SeparatorElem());
 }
 

lincoln

2011-02-05 01:42

reporter   ~0010039

I can see this on audio regions too. The second time the context menu is summoned, Ardour crashes.

The attached patch clears this. I am thinking that the edit_items.clear() in build_track_region_context_menu is invalidating the managed MenuItem.

cth103

2011-02-06 17:18

administrator   ~0010040

Patch applied (without the whitespace) to SVN 0008742.

system

2020-04-19 20:15

developer   ~0022394

Issue has been closed automatically, by Trigger Close Plugin.
Feel free to re-open with additional information if you think the issue is not resolved.

Issue History

Date Modified Username Field Change
2011-02-02 21:33 v2 New Issue
2011-02-02 21:33 v2 File Added: midi_context_menu_bt.txt
2011-02-02 21:33 v2 cost => 0.00
2011-02-03 00:16 cth103 Target Version => 3.0-alpha1
2011-02-05 01:39 lincoln File Added: region-context-menu-crash-fix.patch
2011-02-05 01:42 lincoln Note Added: 0010039
2011-02-06 17:18 cth103 Note Added: 0010040
2011-02-06 17:18 cth103 Status new => resolved
2011-02-06 17:18 cth103 Resolution open => fixed
2011-02-06 17:18 cth103 Assigned To => cth103
2020-04-19 20:15 system Note Added: 0022394
2020-04-19 20:15 system Status resolved => closed