aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2017-05-26 13:20:20 -0400
committerKevin O'Connor <kevin@koconnor.net>2017-05-26 13:25:51 -0400
commitd4bed025ed6de39e517422b076b5af9d7b31abb7 (patch)
treef526383fe6ebe2702f46cf34233327fc75b38a0e /src
parenta82e949c00aceaedd9d9a76ddcc3c88c9cad3d80 (diff)
downloadkutter-d4bed025ed6de39e517422b076b5af9d7b31abb7.tar.gz
kutter-d4bed025ed6de39e517422b076b5af9d7b31abb7.tar.xz
kutter-d4bed025ed6de39e517422b076b5af9d7b31abb7.zip
command: Store the command parsing information directly in array
Instead of defining an array of pointers, just define the array directly. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src')
-rw-r--r--src/command.c11
-rw-r--r--src/command.h2
2 files changed, 4 insertions, 9 deletions
diff --git a/src/command.c b/src/command.c
index 2a248f16..ae2b10fe 100644
--- a/src/command.c
+++ b/src/command.c
@@ -213,14 +213,9 @@ DECL_SHUTDOWN(sendf_shutdown);
static const struct command_parser *
command_get_handler(uint8_t cmdid)
{
- if (cmdid >= READP(command_index_size))
- goto error;
- const struct command_parser *cp = READP(command_index[cmdid]);
- if (!cp)
- goto error;
- return cp;
-error:
- shutdown("Invalid command");
+ if (!cmdid || cmdid >= READP(command_index_size))
+ shutdown("Invalid command");
+ return &command_index[cmdid];
}
enum { CF_NEED_SYNC=1<<0, CF_NEED_VALID=1<<1 };
diff --git a/src/command.h b/src/command.h
index 609becd9..5bd6faf4 100644
--- a/src/command.h
+++ b/src/command.h
@@ -50,7 +50,7 @@ enum {
PT_uint32, PT_int32, PT_uint16, PT_int16, PT_byte,
PT_string, PT_progmem_buffer, PT_buffer,
};
-extern const struct command_parser * const command_index[];
+extern const struct command_parser command_index[];
extern const uint8_t command_index_size;
extern const uint8_t command_identify_data[];
extern const uint32_t command_identify_size;