From 9703dbc6415b30506be72b961fd33338b67f45bc Mon Sep 17 00:00:00 2001 From: Yersa Nordman Date: Sun, 17 Mar 2024 21:57:23 +0100 Subject: [PATCH] Mark patterns used for searching as const in args --- README.md | 4 ++-- benchmark.c | 15 +++++++++++++++ src/mindex.c | 4 ++-- src/mindex.h | 4 ++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 28d6739..1e1acbb 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ void mindex_set(struct mindex_t *mindex, void *item); Simple query, fetch an entry in the index matching the pattern ```C -void * mindex_get(struct mindex_t *mindex, void *pattern); +void * mindex_get(struct mindex_t *mindex, const void *pattern); ``` @@ -115,7 +115,7 @@ void * mindex_rand(struct mindex_t *mindex); Delete a single entry from the index matching the pattern ```C -void mindex_delete(struct mindex_t *mindex, void *pattern); +void mindex_delete(struct mindex_t *mindex, const void *pattern); ``` diff --git a/benchmark.c b/benchmark.c index 7ec0fd4..d43307b 100644 --- a/benchmark.c +++ b/benchmark.c @@ -38,12 +38,25 @@ void mindex_bmark_rstr_1024() { } } +void mindex_bmark_rstr_65536() { + for(int i=0; i<65536; i++) { + free(random_str(16)); + } +} + void mindex_bmark_assign_1024() { struct mindex_t *mindex = mindex_init(fn_compare_string, fn_purge, NULL); for(int i=0; i<1024; i++) { mindex_set(mindex, random_str(16)); } + mindex_free(mindex); +} +void mindex_bmark_assign_65536() { + struct mindex_t *mindex = mindex_init(fn_compare_string, fn_purge, NULL); + for(int i=0; i<65536; i++) { + mindex_set(mindex, random_str(16)); + } mindex_free(mindex); } @@ -55,6 +68,8 @@ int main() { BMARK(mindex_bmark_rstr_1024); BMARK(mindex_bmark_assign_1024); + BMARK(mindex_bmark_rstr_65536); + BMARK(mindex_bmark_assign_65536); return bmark_run(100, percentiles); return 0; } diff --git a/src/mindex.c b/src/mindex.c index d72c975..9b1563d 100644 --- a/src/mindex.c +++ b/src/mindex.c @@ -139,7 +139,7 @@ void mindex_set(struct mindex_t *mindex, void *item) { free(resp); } -void * mindex_get(struct mindex_t *mindex, void *pattern) { +void * mindex_get(struct mindex_t *mindex, const void *pattern) { struct mindex_find_response *resp = mindex_find(mindex, pattern, mindex->items, mindex->length); void *value = resp->value; free(resp); @@ -160,7 +160,7 @@ void * mindex_rand(struct mindex_t *mindex) { return mindex->items[rand() % mindex->length]; } -void mindex_delete(struct mindex_t *mindex, void *pattern) { +void mindex_delete(struct mindex_t *mindex, const void *pattern) { struct mindex_find_response *resp = mindex_find(mindex, pattern, mindex->items, mindex->length); // Not found = done diff --git a/src/mindex.h b/src/mindex.h index 2d649eb..50f1e56 100644 --- a/src/mindex.h +++ b/src/mindex.h @@ -91,7 +91,7 @@ void mindex_set(struct mindex_t *mindex, void *item); /// /// Simple query, fetch an entry in the index matching the pattern /// /// @@ -118,7 +118,7 @@ void * mindex_rand(struct mindex_t *mindex); /// /// Delete a single entry from the index matching the pattern /// ///