registering a target event twice caused infinite loop. Same bug as in jtag/core.c copy & pasted.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2690 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
6dd8f37e6d
commit
58b78818e0
|
@ -2,7 +2,7 @@
|
|||
* Copyright (C) 2005 by Dominic Rath *
|
||||
* Dominic.Rath@gmx.de *
|
||||
* *
|
||||
* Copyright (C) 2007,2008 Øyvind Harboe *
|
||||
* Copyright (C) 2007-2009 Øyvind Harboe *
|
||||
* oyvind.harboe@zylin.com *
|
||||
* *
|
||||
* Copyright (C) 2008, Duane Ellis *
|
||||
|
@ -3547,9 +3547,11 @@ static int target_configure(Jim_GetOptInfo *goi, target_t *target)
|
|||
}
|
||||
|
||||
if (goi->isconfigure) {
|
||||
bool replace = true;
|
||||
if (teap == NULL) {
|
||||
/* create new */
|
||||
teap = calloc(1, sizeof(*teap));
|
||||
replace = false;
|
||||
}
|
||||
teap->event = n->value;
|
||||
Jim_GetOpt_Obj(goi, &o);
|
||||
|
@ -3569,9 +3571,12 @@ static int target_configure(Jim_GetOptInfo *goi, target_t *target)
|
|||
*/
|
||||
Jim_IncrRefCount(teap->body);
|
||||
|
||||
/* add to head of event list */
|
||||
teap->next = target->event_action;
|
||||
target->event_action = teap;
|
||||
if (!replace)
|
||||
{
|
||||
/* add to head of event list */
|
||||
teap->next = target->event_action;
|
||||
target->event_action = teap;
|
||||
}
|
||||
Jim_SetEmptyResult(goi->interp);
|
||||
} else {
|
||||
/* get */
|
||||
|
|
Loading…
Reference in New Issue