diff options
author | Marc Schink <openocd-dev@marcschink.de> | 2016-05-22 20:35:34 +0200 |
---|---|---|
committer | Paul Fertser <fercerpav@gmail.com> | 2016-12-08 12:34:53 +0000 |
commit | 69ff7354d9c9accf09374772310098f1f00e8ccb (patch) | |
tree | 94a7803244c884ec26965101d45e10f6c53d8477 /src/server | |
parent | 1461237073e377d315799999b8e29f1605084449 (diff) |
helper: Code cleanup for hexify()
Simplify hexify() and do not longer use 0 as special case for the
parameter 'count' to determine the string length of the binary input.
Instead, use strlen() outside of the function if needed.
Additionally, fix the return value and return the length of the
converted string. The old function always returned 2 * count.
Also, use more appropriate data types for the function parameters and
add a small documentation.
Change-Id: I133a8ab786b8f7c1296afcaf9c0a0b43881e5112
Signed-off-by: Marc Schink <openocd-dev@marcschink.de>
Reviewed-on: http://openocd.zylin.com/3793
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/gdb_server.c | 5 | ||||
-rw-r--r-- | src/server/tcl_server.c | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index 6f111e14..fe007444 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -697,7 +697,8 @@ static int gdb_output_con(struct connection *connection, const char *line) return ERROR_GDB_BUFFER_TOO_SMALL; hex_buffer[0] = 'O'; - int pkt_len = hexify(hex_buffer + 1, line, bin_size, bin_size * 2 + 1); + size_t pkt_len = hexify(hex_buffer + 1, (const uint8_t *)line, bin_size, + bin_size * 2 + 1); int retval = gdb_put_packet(connection, hex_buffer, pkt_len + 1); free(hex_buffer); @@ -1407,7 +1408,7 @@ static int gdb_read_memory_packet(struct connection *connection, if (retval == ERROR_OK) { hex_buffer = malloc(len * 2 + 1); - int pkt_len = hexify(hex_buffer, (char *)buffer, len, len * 2 + 1); + size_t pkt_len = hexify(hex_buffer, buffer, len, len * 2 + 1); gdb_put_packet(connection, hex_buffer, pkt_len); diff --git a/src/server/tcl_server.c b/src/server/tcl_server.c index 15a8736f..0077339f 100644 --- a/src/server/tcl_server.c +++ b/src/server/tcl_server.c @@ -105,7 +105,7 @@ static int tcl_target_callback_trace_handler(struct target *target, if (tclc->tc_trace) { hex = malloc(hex_len); buf = malloc(max_len); - hexify(hex, (const char *)data, len, hex_len); + hexify(hex, data, len, hex_len); snprintf(buf, max_len, "%s%s%s", header, hex, trailer); tcl_output(connection, buf, strlen(buf)); free(hex); |