On Tue, 7 Apr 2015 12:12:14 -0500 Derek Foreman <[email protected]> wrote:
> Previously hash_table_lookup returned a pointer which must always be tested > for NULL - but rarely was. > > Now hash_table_lookup returns the found data as an out parameter and returns > an integer indicating whether the lookup succeeded or not. This lets us > flag the return value as warn_unused_result so the compiler can stop us from > missing the test. > > Signed-off-by: Derek Foreman <[email protected]> > --- > xwayland/hash.c | 15 +++++++++------ > xwayland/hash.h | 6 +++++- > xwayland/window-manager.c | 29 ++++++++++++++--------------- > 3 files changed, 28 insertions(+), 22 deletions(-) > > diff --git a/xwayland/hash.c b/xwayland/hash.c > index 54f3de9..2e5ecfc 100644 > --- a/xwayland/hash.c > +++ b/xwayland/hash.c > @@ -201,16 +201,19 @@ hash_table_for_each(struct hash_table *ht, > } > } > > -void * > -hash_table_lookup(struct hash_table *ht, uint32_t hash) > +int > +hash_table_lookup(struct hash_table *ht, uint32_t hash, > + struct weston_wm_window **ret) int for a boolean? ;-) Apart from that, Reviewed-by: Pekka Paalanen <[email protected]> > { > struct hash_entry *entry; > > entry = hash_table_search(ht, hash); > - if (entry != NULL) > - return entry->data; > - > - return NULL; > + if (entry != NULL) { > + *ret = entry->data; > + return 1; > + } > + *ret = NULL; > + return 0; > } > > static void > diff --git a/xwayland/hash.h b/xwayland/hash.h > index 6e1674e..b181f19 100644 > --- a/xwayland/hash.h > +++ b/xwayland/hash.h > @@ -36,11 +36,15 @@ > #define HASH_H > > struct hash_table; > +struct weston_wm_window; > struct hash_table *hash_table_create(void); > typedef void (*hash_table_iterator_func_t)(void *element, void *data); > > void hash_table_destroy(struct hash_table *ht); > -void *hash_table_lookup(struct hash_table *ht, uint32_t hash); > +int hash_table_lookup(struct hash_table *ht, uint32_t hash, > + struct weston_wm_window **ret) > + __attribute__ ((warn_unused_result)); I suppose this really isn't used for anything else than weston_wm_window, so ok for now. Thanks, pq _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
