- Fix bug-in-waiting when adding more than one TAP event type
- Infinite loop bugfix when running tap configure a second time git-svn-id: svn://svn.berlios.de/openocd/trunk@2681 b42882b7-edfa-0310-969c-e2dbd0fdcd60__archive__
parent
aa46b15377
commit
983f5a1ae9
|
@ -141,9 +141,11 @@ static int jtag_tap_configure_cmd(Jim_GetOptInfo *goi, jtag_tap_t * tap)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (goi->isconfigure) {
|
if (goi->isconfigure) {
|
||||||
|
bool replace = true;
|
||||||
if (jteap == NULL) {
|
if (jteap == NULL) {
|
||||||
/* create new */
|
/* create new */
|
||||||
jteap = calloc(1, sizeof (*jteap));
|
jteap = calloc(1, sizeof (*jteap));
|
||||||
|
replace = false;
|
||||||
}
|
}
|
||||||
jteap->event = n->value;
|
jteap->event = n->value;
|
||||||
Jim_GetOpt_Obj(goi, &o);
|
Jim_GetOpt_Obj(goi, &o);
|
||||||
|
@ -153,9 +155,12 @@ static int jtag_tap_configure_cmd(Jim_GetOptInfo *goi, jtag_tap_t * tap)
|
||||||
jteap->body = Jim_DuplicateObj(goi->interp, o);
|
jteap->body = Jim_DuplicateObj(goi->interp, o);
|
||||||
Jim_IncrRefCount(jteap->body);
|
Jim_IncrRefCount(jteap->body);
|
||||||
|
|
||||||
|
if (!replace)
|
||||||
|
{
|
||||||
/* add to head of event list */
|
/* add to head of event list */
|
||||||
jteap->next = tap->event_action;
|
jteap->next = tap->event_action;
|
||||||
tap->event_action = jteap;
|
tap->event_action = jteap;
|
||||||
|
}
|
||||||
Jim_SetEmptyResult(goi->interp);
|
Jim_SetEmptyResult(goi->interp);
|
||||||
} else {
|
} else {
|
||||||
/* get */
|
/* get */
|
||||||
|
@ -374,7 +379,8 @@ static void jtag_tap_handle_event(jtag_tap_t *tap, enum jtag_event e)
|
||||||
* can't fail. That presumes later code
|
* can't fail. That presumes later code
|
||||||
* will be verifying the scan chains ...
|
* will be verifying the scan chains ...
|
||||||
*/
|
*/
|
||||||
tap->enabled = (e == JTAG_TAP_EVENT_ENABLE);
|
if (e == JTAG_TAP_EVENT_ENABLE)
|
||||||
|
tap->enabled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue