- added patch for faster start of OpenOCD
(thanks to oyvind harboe for the patch) git-svn-id: svn://svn.berlios.de/openocd/trunk@250 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
0160320060
commit
64aac5f7e1
|
@ -76,9 +76,15 @@ int build_unique_lengths(command_context_t *context, command_t *commands)
|
|||
return ERROR_OK;
|
||||
}
|
||||
|
||||
/* Avoid evaluating this each time we add a command. Reduces overhead from O(n^2) to O(n).
|
||||
* Makes a difference on ARM7 types machines and is not observable on GHz machines.
|
||||
*/
|
||||
static int unique_length_dirty=1;
|
||||
|
||||
command_t* register_command(command_context_t *context, command_t *parent, char *name, int (*handler)(struct command_context_s *context, char* name, char** args, int argc), enum command_mode mode, char *help)
|
||||
{
|
||||
command_t *c, *p;
|
||||
unique_length_dirty=1;
|
||||
|
||||
if (!context || !name)
|
||||
return NULL;
|
||||
|
@ -127,14 +133,13 @@ command_t* register_command(command_context_t *context, command_t *parent, char
|
|||
}
|
||||
}
|
||||
|
||||
/* update unique lengths */
|
||||
build_unique_lengths(context, (parent) ? parent : context->commands);
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
int unregister_command(command_context_t *context, char *name)
|
||||
{
|
||||
unique_length_dirty=1;
|
||||
|
||||
command_t *c, *p = NULL, *c2;
|
||||
|
||||
if ((!context) || (!name))
|
||||
|
@ -309,6 +314,13 @@ int find_and_run_command(command_context_t *context, command_t *commands, char *
|
|||
{
|
||||
command_t *c;
|
||||
|
||||
if (unique_length_dirty)
|
||||
{
|
||||
unique_length_dirty=0;
|
||||
/* update unique lengths */
|
||||
build_unique_lengths(context, context->commands);
|
||||
}
|
||||
|
||||
for (c = commands; c; c = c->next)
|
||||
{
|
||||
if (strncasecmp(c->name, words[start_word], c->unique_len))
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
/* DANGER!!!! These must be defined *BEFORE* replacements.h and the malloc() macro!!!! */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
/*
|
||||
* clear_malloc
|
||||
|
|
Loading…
Reference in New Issue