aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--table.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/table.c b/table.c
index 3e8c7f1..f234717 100644
--- a/table.c
+++ b/table.c
@@ -46,10 +46,14 @@ static inline int compare(struct string a, struct string b) {
int val = memcmp(a.data, b.data, len);
- if (val == 0 && a.len != b.len)
- return 1;
- else
- return val;
+ if (val == 0) {
+ if (a.len < b.len)
+ return 1;
+ else if (a.len > b.len)
+ return -1;
+ }
+
+ return val;
}
static inline uint64_t search(struct table tbl, struct string name, uint8_t *exists) {