aboutsummaryrefslogtreecommitdiffstats
path: root/dmenu.c
diff options
context:
space:
mode:
authorNRK <nrk@disroot.org>2023-07-07 13:00:42 +0200
committerHiltjo Posthuma <hiltjo@codemadness.org>2023-07-07 15:03:57 +0200
commit7ab0cb5ef0e19352fc5d64ae0d57a5cf4540acbf (patch)
tree9d68f06933733c75cceca65a19f1a16501946327 /dmenu.c
parent0fe460dbd469a1d5b6a7140d0e1801935e4a923b (diff)
downloaddmenu-7ab0cb5ef0e19352fc5d64ae0d57a5cf4540acbf.tar.zst
drw: minor improvement to the nomatches cache
1. use `unsigned int` to store the codepoints, this avoids waste on common case where `long` is 64bits. and POSIX guarantees `int` to be at least 32bits so there's no risk of truncation. 2. since switching to `unsigned int` cuts down the memory requirement by half, double the cache size from 64 to 128. 3. instead of a linear search, use a simple hash-table for O(1) lookups.
Diffstat (limited to 'dmenu.c')
-rw-r--r--dmenu.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/dmenu.c b/dmenu.c
index 62f1089..40f93e0 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -22,7 +22,6 @@
/* macros */
#define INTERSECT(x,y,w,h,r) (MAX(0, MIN((x)+(w),(r).x_org+(r).width) - MAX((x),(r).x_org)) \
* MAX(0, MIN((y)+(h),(r).y_org+(r).height) - MAX((y),(r).y_org)))
-#define LENGTH(X) (sizeof X / sizeof X[0])
#define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad)
/* enums */