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 |