I tried to fix hang by checking if k>0, while even just printf was
enough (I guess race condition somewhere?)

Igor, Andrea, Phyllis - can you test  this patch very well with
various group/plugin/label moves?

On Tue, Sep 12, 2023 at 4:23 PM Andrew Randrianasulu
<[email protected]> wrote:
>
> On Tue, Sep 12, 2023 at 3:47 PM Andrew Randrianasulu
> <[email protected]> wrote:
> >
> > So, I tried some of the simples group move moves.
> >
> > 1) load 28 sec of media (1 audio/1 video mp4).
> >
> > 2) switch to d&d mode.
> >
> > 3) double-clic on video track where media piece is.
> >
> > It highlight it and add both A and V to group (observe little lines
> > highlighting them)
> >
> > try to drag group somewhere.
> >
> > It usually works one time but not second.
> >
> > dump reads:
> >
> >  BC_Signals::dump_stack
> > cin() [0x88b2082]
> > linux-gate.so.1(__kernel_rt_sigreturn+0) [0xf7ec8570]
> > cin() [0x85e6032]
> > cin(_ZN3EDL18delete_edit_labelsEP9ArrayListIP4EditEi+0x43) [0x85e82d3]
> > cin(_ZN7MWindow10move_groupEP3EDLP5Trackdi+0xa9) [0x86b6eb9]
> > cin(_ZN11TrackCanvas9drag_stopEPi+0x3bf) [0x87c708f]
> > cin(_ZN10MWindowGUI9drag_stopEv+0x4f) [0x86c11df]
> > cin(_ZN11TrackCanvas15drag_stop_eventEv+0x1a) [0x87b6f7a]
> > cin(_ZN13BC_WindowBase18dispatch_drag_stopEv+0x683) [0x88d5793]
> > cin(_ZN13BC_WindowBase23dispatch_button_releaseEv+0xb8) [0x88d5968]
> > cin(_ZN13BC_WindowBase14dispatch_eventEv+0x73e) [0x88e0d0e]
> > cin(_ZN13BC_WindowBase10run_windowEv+0x98) [0x88e15b8]
> > cin(_ZN7MWindow3runEv+0x31) [0x86d7be1]
> > cin(main+0x4cf) [0x83bfdef]
> > /lib/libc.so.6(__libc_start_main+0xf9) [0xf5e4d909]
> > cin(_start+0x21) [0x83c7fa1]
> >
> > full dump attached ....
> >
> > Note I have no labels on timeline at this point ...
>
>
> Interesting, if I lock labels from moving while editing (via
> mainwindow icon) I see no hang ...
From 260470de3e65ec72d7f206c4ce21c621bfea53d9 Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <[email protected]>
Date: Tue, 12 Sep 2023 17:37:14 +0300
Subject: [PATCH] Possible fix for group move hang

---
 cinelerra-5.1/cinelerra/edl.C | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/cinelerra-5.1/cinelerra/edl.C b/cinelerra-5.1/cinelerra/edl.C
index 0780ac72..f1886dde 100644
--- a/cinelerra-5.1/cinelerra/edl.C
+++ b/cinelerra-5.1/cinelerra/edl.C
@@ -929,9 +929,12 @@ void EDL::delete_edit_labels(ArrayList<Edit*> *edits, int collapse)
 	ArrayList<Range> regions;
 	get_edit_regions(edits, regions);
 	int n = regions.size(), k = n;
+	//printf("delete_edit_label: k= %i\n", k);
+	if (k>0) {
 	while( --k >= 0 ) {
 		Range &range = regions[k];
 		labels->clear(range.start, range.end, collapse);
+	    }
 	}
 }
 
-- 
2.35.7

-- 
Cin mailing list
[email protected]
https://lists.cinelerra-gg.org/mailman/listinfo/cin

Reply via email to