diff --git a/internal/midi.c b/internal/midi.c index ef50026..04c9dd1 100644 --- a/internal/midi.c +++ b/internal/midi.c @@ -244,6 +244,7 @@ JSC_CCALL(midi_parse, JS_ROOT(evt, JS_NULL); int idx = 0; + JSValue tmp; for (tml_message *msg = midi; msg; msg = msg->next) { evt.val = JS_NewObject(js); JS_SetPropertyStr(js, evt.val, "time", JS_NewInt32(js, msg->time)); @@ -251,29 +252,35 @@ JSC_CCALL(midi_parse, switch (msg->type) { case TML_NOTE_ON: - JS_SetPropertyStr(js, evt.val, "type", JS_NewString(js, "note_on")); + tmp = JS_NewString(js, "note_on"); + JS_SetPropertyStr(js, evt.val, "type", tmp); JS_SetPropertyStr(js, evt.val, "key", JS_NewInt32(js, msg->key)); JS_SetPropertyStr(js, evt.val, "velocity", JS_NewInt32(js, msg->velocity)); break; case TML_NOTE_OFF: - JS_SetPropertyStr(js, evt.val, "type", JS_NewString(js, "note_off")); + tmp = JS_NewString(js, "note_off"); + JS_SetPropertyStr(js, evt.val, "type", tmp); JS_SetPropertyStr(js, evt.val, "key", JS_NewInt32(js, msg->key)); break; case TML_CONTROL_CHANGE: - JS_SetPropertyStr(js, evt.val, "type", JS_NewString(js, "control")); + tmp = JS_NewString(js, "control"); + JS_SetPropertyStr(js, evt.val, "type", tmp); JS_SetPropertyStr(js, evt.val, "control", JS_NewInt32(js, msg->control)); JS_SetPropertyStr(js, evt.val, "value", JS_NewInt32(js, msg->control_value)); break; case TML_PROGRAM_CHANGE: - JS_SetPropertyStr(js, evt.val, "type", JS_NewString(js, "program")); + tmp = JS_NewString(js, "program"); + JS_SetPropertyStr(js, evt.val, "type", tmp); JS_SetPropertyStr(js, evt.val, "program", JS_NewInt32(js, msg->program)); break; case TML_PITCH_BEND: - JS_SetPropertyStr(js, evt.val, "type", JS_NewString(js, "pitch_bend")); + tmp = JS_NewString(js, "pitch_bend"); + JS_SetPropertyStr(js, evt.val, "type", tmp); JS_SetPropertyStr(js, evt.val, "pitch_bend", JS_NewInt32(js, msg->pitch_bend)); break; case TML_SET_TEMPO: - JS_SetPropertyStr(js, evt.val, "type", JS_NewString(js, "tempo")); + tmp = JS_NewString(js, "tempo"); + JS_SetPropertyStr(js, evt.val, "type", tmp); JS_SetPropertyStr(js, evt.val, "tempo", JS_NewInt32(js, tml_get_tempo_value(msg))); break; default: