[PATCH] input: optimize key_names list.

Reimar Döffinger <[email protected]>
Newsgroups gmane.comp.video.mplayer.devel
Message-ID <[email protected]>
Avoid relocations for string pointers.
---
 input/input.c | 8 ++++----
 input/input.h | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/input/input.c b/input/input.c
index b560c69..0f25553 100644
--- a/input/input.c
+++ b/input/input.c
@@ -372,7 +372,7 @@ static const mp_key_name_t key_names[] = {
 
   { KEY_CLOSE_WIN, "CLOSE_WIN" },
 
-  { 0, NULL }
+  { 0, "" }
 };
 
 // This is the default binding. The content of input.conf overrides these.
@@ -1463,7 +1463,7 @@ static char*
 mp_input_get_key_name(int key) {
   int i;
 
-  for(i = 0; key_names[i].name != NULL; i++) {
+  for(i = 0; key_names[i].name[0]; i++) {
     if(key_names[i].key == key)
       return key_names[i].name;
   }
@@ -1489,7 +1489,7 @@ mp_input_get_key_from_name(const char *name) {
   } else if(len > 2 && strncasecmp("0x",name,2) == 0)
     return strtol(name,NULL,16);
 
-  for(i = 0; key_names[i].name != NULL; i++) {
+  for(i = 0; key_names[i].name[0]; i++) {
     if(strcasecmp(key_names[i].name,name) == 0)
       return key_names[i].key;
   }
@@ -1857,7 +1857,7 @@ mp_input_register_options(m_config_t* cfg) {
 static int mp_input_print_key_list(m_option_t* cfg) {
   int i;
   printf("\n");
-  for(i= 0; key_names[i].name != NULL ; i++)
+  for(i= 0; key_names[i].name[0] ; i++)
     printf("%s\n",key_names[i].name);
   exit(0);
 }
diff --git a/input/input.h b/input/input.h
index 3e1b463..f13729d 100644
--- a/input/input.h
+++ b/input/input.h
@@ -229,7 +229,7 @@ typedef struct mp_cmd_bind {
 
 typedef struct mp_key_name {
   int key;
-  char* name;
+  char name[20];
 } mp_key_name_t;
 
 // These typedefs are for the drivers. They are the functions used to retrieve
-- 
2.7.0

_______________________________________________
MPlayer-dev-eng mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.