From 67e0aea25850b8286f750e6458e5de741e6cb3b5 Mon Sep 17 00:00:00 2001 From: oharboe Date: Fri, 29 Feb 2008 11:16:38 +0000 Subject: Summary: passing of variable argument list reduced, strings sent to logging are now formatted just once - more efficient. As a result, ugly string malloc+strcpy are not needed anymore. git-svn-id: svn://svn.berlios.de/openocd/trunk@386 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/server/gdb_server.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'src/server/gdb_server.c') diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index d06c7a07..57ba2806 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -47,7 +47,7 @@ static unsigned short gdb_port; static const char *DIGITS = "0123456789abcdef"; static void gdb_log_callback(void *priv, const char *file, int line, - const char *function, const char *format, va_list args); + const char *function, const char *string); enum gdb_detach_mode { @@ -504,7 +504,7 @@ int gdb_get_packet(connection_t *connection, char *buffer, int *len) return retval; } -int gdb_output_con(connection_t *connection, char* line) +int gdb_output_con(connection_t *connection, const char* line) { char *hex_buffer; int i, bin_size; @@ -512,6 +512,8 @@ int gdb_output_con(connection_t *connection, char* line) bin_size = strlen(line); hex_buffer = malloc(bin_size*2 + 2); + if (hex_buffer == NULL) + return ERROR_GDB_BUFFER_TOO_SMALL; hex_buffer[0] = 'O'; for (i=0; ipriv; @@ -1807,13 +1809,7 @@ static void gdb_log_callback(void *priv, const char *file, int line, return; } - char *t = alloc_printf(format, args); - if (t == NULL) - return; - - gdb_output_con(connection, t); - - free(t); + gdb_output_con(connection, string); } int gdb_input_inner(connection_t *connection) -- cgit v1.2.3