jtag: avoid using interp global variable
Adds 'interp' field to jtag_tap_event_action structure to avoid using the global variable of same name.
This commit is contained in:
parent
be65f497f5
commit
e1ee270265
|
@ -209,9 +209,14 @@ enum jtag_event {
|
||||||
|
|
||||||
struct jtag_tap_event_action
|
struct jtag_tap_event_action
|
||||||
{
|
{
|
||||||
enum jtag_event event;
|
/// The event for which this action will be triggered.
|
||||||
Jim_Obj* body;
|
enum jtag_event event;
|
||||||
struct jtag_tap_event_action* next;
|
/// The interpreter to use for evaluating the @c body.
|
||||||
|
Jim_Interp *interp;
|
||||||
|
/// Contains a script to 'eval' when the @c event is triggered.
|
||||||
|
Jim_Obj *body;
|
||||||
|
// next action in linked list
|
||||||
|
struct jtag_tap_event_action *next;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -341,8 +341,9 @@ static int jtag_tap_configure_event(Jim_GetOptInfo *goi, struct jtag_tap * tap)
|
||||||
if (!found)
|
if (!found)
|
||||||
jteap = calloc(1, sizeof(*jteap));
|
jteap = calloc(1, sizeof(*jteap));
|
||||||
else if (NULL != jteap->body)
|
else if (NULL != jteap->body)
|
||||||
Jim_DecrRefCount(interp, jteap->body);
|
Jim_DecrRefCount(goi->interp, jteap->body);
|
||||||
|
|
||||||
|
jteap->interp = goi->interp;
|
||||||
jteap->event = n->value;
|
jteap->event = n->value;
|
||||||
|
|
||||||
Jim_Obj *o;
|
Jim_Obj *o;
|
||||||
|
@ -359,6 +360,7 @@ static int jtag_tap_configure_event(Jim_GetOptInfo *goi, struct jtag_tap * tap)
|
||||||
}
|
}
|
||||||
else if (found)
|
else if (found)
|
||||||
{
|
{
|
||||||
|
jteap->interp = goi->interp;
|
||||||
Jim_SetResult(goi->interp,
|
Jim_SetResult(goi->interp,
|
||||||
Jim_DuplicateObj(goi->interp, jteap->body));
|
Jim_DuplicateObj(goi->interp, jteap->body));
|
||||||
}
|
}
|
||||||
|
@ -616,9 +618,9 @@ static void jtag_tap_handle_event(struct jtag_tap *tap, enum jtag_event e)
|
||||||
tap->dotted_name, e, nvp->name,
|
tap->dotted_name, e, nvp->name,
|
||||||
Jim_GetString(jteap->body, NULL));
|
Jim_GetString(jteap->body, NULL));
|
||||||
|
|
||||||
if (Jim_EvalObj(interp, jteap->body) != JIM_OK)
|
if (Jim_EvalObj(jteap->interp, jteap->body) != JIM_OK)
|
||||||
{
|
{
|
||||||
Jim_PrintErrorMessage(interp);
|
Jim_PrintErrorMessage(jteap->interp);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue