From db9d18bd260d7f2b696bddaf283306e80b0d5299 Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Wed, 23 Jul 2014 21:34:25 +0400 Subject: [PATCH] Don't dump trash --- src/libruntime/target/linux/serializer.c | 22 ++++++++++++++++------ src/libruntime/target/stm32f4/serializer.c | 2 +- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/libruntime/target/linux/serializer.c b/src/libruntime/target/linux/serializer.c index e3d7efa30..c2abf59d1 100644 --- a/src/libruntime/target/linux/serializer.c +++ b/src/libruntime/target/linux/serializer.c @@ -22,11 +22,19 @@ _FILE *dump; #define OPCODE_STR(op) \ #op, -static char* massive[] = { +#define OPCODE_SIZE(op) \ + sizeof (struct __op_##op) + 1, + +static char* opcode_names[] = { OP_LIST (OPCODE_STR) "" }; +static uint8_t opcode_sizes[] = { + OP_LIST (OPCODE_SIZE) + 0 +}; + void serializer_init (void) { @@ -42,7 +50,7 @@ serializer_dump_strings (const char *strings[], uint8_t size) for (i = 0; i < size; i++) { __printf ("%3d %3d %20s\n", i, offset, strings[i]); - offset = (uint8_t ) (offset + __strlen (strings[i])); + offset = (uint8_t ) (offset + __strlen (strings[i]) + 1); } return offset; @@ -70,9 +78,10 @@ void serializer_dump_opcode (const void *opcode) { uint8_t i; + int opcode_num = (int)((char*)opcode)[0]; - __printf ("%03d: %20s ", opcode_counter++, massive[(int)((char*)opcode)[0]]); - for (i = 1; i < 4; i++) + __printf ("%03d: %20s ", opcode_counter++, opcode_names[opcode_num]); + for (i = 1; i < opcode_sizes[opcode_num]; i++) __printf ("%4d ", ((char*)opcode)[i]); __printf ("\n"); @@ -82,9 +91,10 @@ void serializer_rewrite_opcode (const uint8_t loc, const void *opcode) { uint8_t i; + int opcode_num = (int)((char*)opcode)[0]; - __printf ("%03d: %20s ", loc, massive[(int)((char*)opcode)[0]]); - for (i = 1; i < 4; i++) + __printf ("%03d: %20s ", loc, opcode_names[opcode_num]); + for (i = 1; i < opcode_sizes[opcode_num]; i++) __printf ("%4d ", ((char*)opcode)[i]); __printf ("// REWRITE\n"); diff --git a/src/libruntime/target/stm32f4/serializer.c b/src/libruntime/target/stm32f4/serializer.c index 816979ef6..eb08884db 100644 --- a/src/libruntime/target/stm32f4/serializer.c +++ b/src/libruntime/target/stm32f4/serializer.c @@ -41,7 +41,7 @@ serializer_dump_opcode (const void *opcode) } void -serializer_rewrite_opcode (const int8_t offset, const void *opcode) +serializer_rewrite_opcode (const uint8_t offset, const void *opcode) { JERRY_UNIMPLEMENTED_REF_UNUSED_VARS( offset, opcode); }