View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001797 | ardour | bugs | public | 2007-07-28 15:13 | 2020-04-19 20:12 |
Reporter | giso | Assigned To | paul | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 2.0 | ||||
Summary | 0001797: pushing 'prev_track' on frontier tranzport causes ardour2 to deadlock | ||||
Description | a) When pushing the 'prev_track' button on a tranzport device and the first route (master) is selected, ardour2 goes into a dead-lock causing 100% CPU load b) selecting the last route is not possible with the tranzport device Both problems seem to be in file libs/surfaces/control_protocol/control_protocol.cc, a solution for a is to change in function void ControlProtocol::prev_track (uint32_t initial_id) near line 98 the type of variable 'id' from uint32_t to int32_t. The problem is a comparison if( id >= 0), which is always true. | ||||
Tags | No tags attached. | ||||
2007-07-30 18:13
|
bug1797_deadlock_and_trackselection.diff (919 bytes)
--- ardour-2.0.3-orig/libs/surfaces/control_protocol/control_protocol.cc 2007-05-10 13:30:45.000000000 +0200 +++ ardour-2.0.3/libs/surfaces/control_protocol/control_protocol.cc 2007-07-30 20:01:59.000000000 +0200 @@ -70,14 +70,14 @@ id++; } - while (id < limit) { + while (id <= limit) { if ((cr = session->route_by_remote_id (id)) != 0) { break; } id++; } - if (id == limit) { + if (id >= limit) { id = 0; while (id != initial_id) { if ((cr = session->route_by_remote_id (id)) != 0) { @@ -93,9 +93,9 @@ void ControlProtocol::prev_track (uint32_t initial_id) { - uint32_t limit = session->nroutes() - 1; + uint32_t limit = session->nroutes(); boost::shared_ptr<Route> cr = route_table[0]; - uint32_t id; + int32_t id; if (cr) { id = cr->remote_control_id (); @@ -104,7 +104,7 @@ } if (id == 0) { - id = session->nroutes() - 1; + id = limit; } else { id--; } |
|
The attached patch resolves both problems described above. Please check if this introduces new problems... |
|
this patch works fine for me (applied to r4269 without fuzz or massaging). please review and commit. thx, jörn |
|
Assigned to Paul to review the patch. Seablade |
|
committed to svn, and will be 2.7.1 release. |
|
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. |
Date Modified | Username | Field | Change |
---|---|---|---|
2007-07-28 15:13 | giso | New Issue | |
2007-07-30 07:17 | timbyr | Severity | block => major |
2007-07-30 07:17 | timbyr | Additional Information Updated | |
2007-07-30 18:13 | giso | File Added: bug1797_deadlock_and_trackselection.diff | |
2007-07-30 18:16 | giso | Note Added: 0004203 | |
2008-12-01 12:32 | nettings | Note Added: 0005408 | |
2008-12-03 04:16 | seablade | Status | new => assigned |
2008-12-03 04:16 | seablade | Assigned To | => paul |
2008-12-03 04:17 | seablade | Note Added: 0005424 | |
2008-12-05 08:21 | paul | cost | => 0.00 |
2008-12-05 08:21 | paul | Status | assigned => resolved |
2008-12-05 08:21 | paul | Resolution | open => fixed |
2008-12-05 08:21 | paul | Note Added: 0005492 | |
2020-04-19 20:12 | system | Note Added: 0021542 | |
2020-04-19 20:12 | system | Status | resolved => closed |