Skip to content

Commit

Permalink
[libhash] fix return of get_and_del
Browse files Browse the repository at this point in the history
  • Loading branch information
gozfree committed Jan 27, 2023
1 parent 1e8bdfe commit 53dee1a
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 2 deletions.
3 changes: 3 additions & 0 deletions gear-lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ ENDIF ()
ENDIF ()

SET(DICT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libdict/)
SET(STREX_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libstrex/)
SET(HASH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libhash/)
SET(DARRAY_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libdarray/)
SET(THREAD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libthread/)
SET(GEVENT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libgevent/)
Expand All @@ -31,6 +33,7 @@ ADD_SUBDIRECTORY(libposix)
ADD_SUBDIRECTORY(libstrex)
ADD_SUBDIRECTORY(libbitmap)
ADD_SUBDIRECTORY(libdict)
ADD_SUBDIRECTORY(libhash)
ADD_SUBDIRECTORY(libdarray)
IF (NOT DEFINED OS_WINDOWS)
ADD_SUBDIRECTORY(libqueue)
Expand Down
7 changes: 7 additions & 0 deletions gear-lib/libhash/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)

INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)

ADD_LIBRARY(hash ${SOURCE_FILES})
1 change: 1 addition & 0 deletions gear-lib/libhash/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ CFLAGS += -I$(OUTPUT)/include/gear-lib
SHARED := -shared

LDFLAGS := $($(ARCH)_LDFLAGS)
LDFLAGS += -L$(OUTLIBPATH)/lib/gear-lib -lstrex
LDFLAGS += -pthread

###############################################################################
Expand Down
5 changes: 3 additions & 2 deletions gear-lib/libhash/libhash.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
* [bucket2] -> item[1] -> item[2] -> ... -> item[m2]
* ...
* [bucketn] -> item[1] -> item[2] -> ... -> item[mn]
*
*
*/

#define HASH_MAX_KEY_STRLEN 32
Expand Down Expand Up @@ -285,10 +285,11 @@ void *hash_get_and_del(struct hash *h, const char *key)
uint32_t hash = 0;
struct hash_item *hi = hash_lookup(h, key, &hash);
if (hi) {
void *val = memdup(hi->val, sizeof(void *));
hlist_del((struct hlist_node *)hi);
free(hi->key);
free(hi);
return NULL;
return val;
}
return NULL;
}
Expand Down

0 comments on commit 53dee1a

Please sign in to comment.