Clarify the ownership of the parameters of rz_search_collection_new (#5640)
This commit is contained in:
parent
83a8c21394
commit
060507196e
2 changed files with 11 additions and 8 deletions
|
|
@ -5,17 +5,20 @@
|
|||
#include <rz_search.h>
|
||||
#include "search_internal.h"
|
||||
|
||||
static RZ_OWN RzSearchCollection *rz_search_collection_new(RzSearchSpace space, RZ_NONNULL void *find, RZ_NONNULL RzSearchIsEmptyCallback is_empty, RZ_NULLABLE RzSearchFreeCallback free, RZ_NULLABLE void *user) {
|
||||
static RZ_OWN RzSearchCollection *rz_search_collection_new(RzSearchSpace space, RZ_NONNULL void *find, RZ_NONNULL RzSearchIsEmptyCallback is_empty, RZ_NULLABLE RzSearchFreeCallback free_user, RZ_OWN RZ_NULLABLE void *user) {
|
||||
rz_return_val_if_fail(find && is_empty, NULL);
|
||||
RzSearchCollection *sc = RZ_NEW0(RzSearchCollection);
|
||||
if (!sc) {
|
||||
if (free_user && user) {
|
||||
free_user(user);
|
||||
}
|
||||
RZ_LOG_ERROR("search: failed to allocate RzSearchCollection\n");
|
||||
return NULL;
|
||||
}
|
||||
sc->space = space;
|
||||
sc->find = find;
|
||||
sc->is_empty = is_empty;
|
||||
sc->free = free;
|
||||
sc->free = free_user;
|
||||
sc->user = user;
|
||||
return sc;
|
||||
}
|
||||
|
|
@ -30,9 +33,9 @@ static RZ_OWN RzSearchCollection *rz_search_collection_new(RzSearchSpace space,
|
|||
*
|
||||
* \return On success returns a valid pointer, otherwise NULL.
|
||||
*/
|
||||
RZ_IPI RZ_OWN RzSearchCollection *rz_search_collection_new_graph_space(RZ_NONNULL RzSearchFindGraphCallback find, RZ_NONNULL RzSearchIsEmptyCallback is_empty, RZ_NULLABLE RzSearchFreeCallback free, RZ_NULLABLE void *user) {
|
||||
RZ_IPI RZ_OWN RzSearchCollection *rz_search_collection_new_graph_space(RZ_NONNULL RzSearchFindGraphCallback find, RZ_NONNULL RzSearchIsEmptyCallback is_empty, RZ_NULLABLE RzSearchFreeCallback free_user, RZ_OWN RZ_NULLABLE void *user) {
|
||||
rz_return_val_if_fail(find && is_empty, NULL);
|
||||
return rz_search_collection_new(RZ_SEARCH_SPACE_GRAPH, find, is_empty, free, user);
|
||||
return rz_search_collection_new(RZ_SEARCH_SPACE_GRAPH, find, is_empty, free_user, user);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -45,9 +48,9 @@ RZ_IPI RZ_OWN RzSearchCollection *rz_search_collection_new_graph_space(RZ_NONNUL
|
|||
*
|
||||
* \return On success returns a valid pointer, otherwise NULL.
|
||||
*/
|
||||
RZ_IPI RZ_OWN RzSearchCollection *rz_search_collection_new_bytes_space(RZ_NONNULL RzSearchFindBytesCallback find, RZ_NONNULL RzSearchIsEmptyCallback is_empty, RZ_NULLABLE RzSearchFreeCallback free, RZ_NULLABLE void *user) {
|
||||
RZ_IPI RZ_OWN RzSearchCollection *rz_search_collection_new_bytes_space(RZ_NONNULL RzSearchFindBytesCallback find, RZ_NONNULL RzSearchIsEmptyCallback is_empty, RZ_NULLABLE RzSearchFreeCallback free_user, RZ_OWN RZ_NULLABLE void *user) {
|
||||
rz_return_val_if_fail(find && is_empty, NULL);
|
||||
return rz_search_collection_new(RZ_SEARCH_SPACE_BYTES, find, is_empty, free, user);
|
||||
return rz_search_collection_new(RZ_SEARCH_SPACE_BYTES, find, is_empty, free_user, user);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -174,8 +174,8 @@ RZ_IPI int rz_search_hit_cmp(RZ_NULLABLE RzSearchHit *a, RZ_NULLABLE RzSearchHit
|
|||
RZ_IPI RZ_OWN RzSearchInterval *rz_search_interval_new(RzInterval interval, size_t n_hits);
|
||||
RZ_IPI void rz_search_interval_free(RZ_NULLABLE RzSearchInterval *interval);
|
||||
|
||||
RZ_IPI RZ_OWN RzSearchCollection *rz_search_collection_new_bytes_space(RZ_NONNULL RzSearchFindBytesCallback find, RZ_NONNULL RzSearchIsEmptyCallback is_empty, RZ_NULLABLE RzSearchFreeCallback free, RZ_NULLABLE void *user);
|
||||
RZ_IPI RZ_OWN RzSearchCollection *rz_search_collection_new_graph_space(RZ_NONNULL RzSearchFindGraphCallback find, RZ_NONNULL RzSearchIsEmptyCallback is_empty, RZ_NULLABLE RzSearchFreeCallback free, RZ_NULLABLE void *user);
|
||||
RZ_IPI RZ_OWN RzSearchCollection *rz_search_collection_new_bytes_space(RZ_NONNULL RzSearchFindBytesCallback find, RZ_NONNULL RzSearchIsEmptyCallback is_empty, RZ_NULLABLE RzSearchFreeCallback free_user, RZ_OWN RZ_NULLABLE void *user);
|
||||
RZ_IPI RZ_OWN RzSearchCollection *rz_search_collection_new_graph_space(RZ_NONNULL RzSearchFindGraphCallback find, RZ_NONNULL RzSearchIsEmptyCallback is_empty, RZ_NULLABLE RzSearchFreeCallback free_user, RZ_OWN RZ_NULLABLE void *user);
|
||||
RZ_IPI bool rz_search_collection_has_find_callback(RZ_NONNULL RzSearchCollection *col, RZ_NONNULL void *expected);
|
||||
RZ_IPI bool rz_search_collection_is_empty(RZ_NONNULL RzSearchCollection *col);
|
||||
RZ_IPI static inline bool rz_search_collection_on_bytes_space(RZ_NONNULL RzSearchCollection *col) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue