diff options
author | Ailin Nemui <ailin@esf51.localdomain> | 2014-06-08 02:18:57 +0200 |
---|---|---|
committer | Ailin Nemui <ailin@esf51.localdomain> | 2014-06-15 23:37:13 +0200 |
commit | a4c62a3fee26761ff909e7fb01f372484db3057f (patch) | |
tree | 76fee293501c3125d094e234db69d541e63e3d01 | |
parent | d1e60a3b8f8a154a33e935279a6aeb356686efda (diff) | |
download | irssi-a4c62a3fee26761ff909e7fb01f372484db3057f.zip |
speed up window_item_find by interning name and removing call to channel_find
-rw-r--r-- | src/core/channel-rec.h | 1 | ||||
-rw-r--r-- | src/core/query-rec.h | 1 | ||||
-rw-r--r-- | src/core/window-item-rec.h | 2 | ||||
-rw-r--r-- | src/fe-common/core/window-items.c | 10 |
4 files changed, 3 insertions, 11 deletions
diff --git a/src/core/channel-rec.h b/src/core/channel-rec.h index 7b806ca4..f3ec5f8d 100644 --- a/src/core/channel-rec.h +++ b/src/core/channel-rec.h @@ -2,7 +2,6 @@ #include "window-item-rec.h" -char *name; char *topic; char *topic_by; time_t topic_time; diff --git a/src/core/query-rec.h b/src/core/query-rec.h index ddb85ba4..fc08d2ef 100644 --- a/src/core/query-rec.h +++ b/src/core/query-rec.h @@ -2,7 +2,6 @@ #include "window-item-rec.h" -char *name; char *address; char *server_tag; time_t last_unread_msg; diff --git a/src/core/window-item-rec.h b/src/core/window-item-rec.h index d7b6f7db..7bf5ba5f 100644 --- a/src/core/window-item-rec.h +++ b/src/core/window-item-rec.h @@ -7,7 +7,7 @@ GHashTable *module_data; void *window; STRUCT_SERVER_REC *server; char *visible_name; - +char *name; time_t createtime; int data_level; char *hilight_color; diff --git a/src/fe-common/core/window-items.c b/src/fe-common/core/window-items.c index 303a80db..c29db9e6 100644 --- a/src/fe-common/core/window-items.c +++ b/src/fe-common/core/window-items.c @@ -218,16 +218,10 @@ WI_ITEM_REC *window_item_find_window(WINDOW_REC *window, WI_ITEM_REC *rec = tmp->data; if ((server == NULL || rec->server == server) && - g_ascii_strcasecmp(name, rec->visible_name) == 0) + (g_ascii_strcasecmp(name, rec->visible_name) == 0 + || (rec->name && g_ascii_strcasecmp(name, rec->name) == 0))) return rec; } - - /* try with channel name too, it's not necessarily - same as visible_name (!channels) */ - channel = channel_find(server, name); - if (channel != NULL && window_item_window(channel) == window) - return (WI_ITEM_REC *) channel; - return NULL; } |