From 03b25f13a52d6a9dc7b1e6532952c99e31c5d030 Mon Sep 17 00:00:00 2001 From: Richard Brooksby Date: Fri, 31 Aug 2012 20:15:26 +0100 Subject: [PATCH] Tidying up fixmes. Catching errors from EVENT_CLOCK_WRITE. Printing more information about unknown event types. Copied from Perforce Change: 179143 ServerID: perforce.ravenbrook.com --- mps/code/event.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/mps/code/event.c b/mps/code/event.c index cdcd6e9bb21..c83d99205a0 100644 --- a/mps/code/event.c +++ b/mps/code/event.c @@ -209,7 +209,7 @@ void EventFinish(void) * Flip(M) EventControl(0,M) * Read() EventControl(0,0) * - * FIXME: Candy-machine interface is a transgression. + * TODO: Candy-machine interface is a transgression. */ EventControlSet EventControl(EventControlSet resetMask, @@ -274,11 +274,12 @@ void EventLabelAddr(Addr addr, EventStringId id) #define EVENT_WRITE_PARAM_B(name, index, sort, ident) \ " $U", (WriteFU)event->name.f##index, + Res EventDescribe(Event event, mps_lib_FILE *stream) { Res res; - /* FIXME: Some sort of EventCheck would be good */ + /* TODO: Some sort of EventCheck would be good */ if (event == NULL) return ResFAIL; if (stream == NULL) @@ -286,23 +287,24 @@ Res EventDescribe(Event event, mps_lib_FILE *stream) res = WriteF(stream, "Event $P {\n", (WriteFP)event, - NULL); + " code $U\n", (WriteFU)event->any.code, + " clock ", NULL); + if (res != ResOK) return res; + res = EVENT_CLOCK_WRITE(stream, event->any.clock); + if (res != ResOK) return res; + res = WriteF(stream, "\n size $U\n", (WriteFU)event->any.size, NULL); if (res != ResOK) return res; switch (event->any.code) { #define EVENT_DESC_PARAM(name, index, sort, ident) \ - "\n $S", (WriteFS)#ident, \ - EVENT_WRITE_PARAM_##sort(name, index, sort, ident) + "\n $S", (WriteFS)#ident, \ + EVENT_WRITE_PARAM_##sort(name, index, sort, ident) #define EVENT_DESC(X, name, _code, always, kind) \ case _code: \ res = WriteF(stream, \ - " code $U ($S)\n", (WriteFU)event->any.code, (WriteFS)#name, \ - " clock ", NULL); \ - if (res != ResOK) return res; \ - EVENT_CLOCK_WRITE(stream, event->any.clock); /* FIXME: return code */ \ - res = WriteF(stream, "\n size $U", (WriteFU)event->any.size, \ + " event \"$S\"", (WriteFS)#name, \ EVENT_##name##_PARAMS(EVENT_DESC_PARAM, name) \ NULL); \ if (res != ResOK) return res; \ @@ -311,7 +313,10 @@ Res EventDescribe(Event event, mps_lib_FILE *stream) EVENT_LIST(EVENT_DESC, X) default: - NOTREACHED; /* FIXME: should print .any info */ + res = WriteF(stream, " event type unknown", NULL); + if (res != ResOK) return res; + /* TODO: Hexdump unknown event contents. */ + break; } res = WriteF(stream, @@ -328,7 +333,9 @@ Res EventWrite(Event event, mps_lib_FILE *stream) if (event == NULL) return ResFAIL; if (stream == NULL) return ResFAIL; - EVENT_CLOCK_WRITE(stream, event->any.clock); /* FIXME: return code */ + res = EVENT_CLOCK_WRITE(stream, event->any.clock); + if (res != ResOK) + return res; switch (event->any.code) { @@ -337,7 +344,7 @@ Res EventWrite(Event event, mps_lib_FILE *stream) #define EVENT_WRITE(X, name, code, always, kind) \ case code: \ - res = WriteF(stream, " "#name, \ + res = WriteF(stream, " $S", #name, \ EVENT_##name##_PARAMS(EVENT_WRITE_PARAM, name) \ NULL); \ if (res != ResOK) return res; \ @@ -347,7 +354,7 @@ Res EventWrite(Event event, mps_lib_FILE *stream) default: res = WriteF(stream, " ", event->any.code, NULL); if (res != ResOK) return res; - /* FIXME: Should dump contents in hex. */ + /* TODO: Hexdump unknown event contents. */ break; }