1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00

Use void pointer instead of char for binary key

dm_hash binary functions takes void* key - so there is no need to cast
pointers to char* (also the hash key does not have trailing '\0').

This is slight API change, but presents no change for the API user side
it just allows to write code easier as the casting could be removed.
This commit is contained in:
Zdenek Kabelac 2011-03-10 12:48:40 +00:00
parent b5d7757c3d
commit 938ebb30bf
3 changed files with 11 additions and 10 deletions

View File

@ -1,5 +1,6 @@
Version 1.02.64 - Version 1.02.64 -
=================================== ===================================
Change dm_hash API for binary data to accept const void *key.
Fix memory access of empty params string in _reload_with_suppression_v4(). Fix memory access of empty params string in _reload_with_suppression_v4().
Lower severity of selabel_lookup and matchpathcon failure to log_debug. Lower severity of selabel_lookup and matchpathcon failure to log_debug.
Accept multiple mapped device names on many dmsetup command lines. Accept multiple mapped device names on many dmsetup command lines.

View File

@ -1,6 +1,6 @@
/* /*
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
* Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. * Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved.
* *
* This file is part of the device-mapper userspace tools. * This file is part of the device-mapper userspace tools.
* *
@ -133,7 +133,7 @@ void dm_hash_destroy(struct dm_hash_table *t)
dm_free(t); dm_free(t);
} }
static struct dm_hash_node **_find(struct dm_hash_table *t, const char *key, static struct dm_hash_node **_find(struct dm_hash_table *t, const void *key,
uint32_t len) uint32_t len)
{ {
unsigned h = _hash(key, len) & (t->num_slots - 1); unsigned h = _hash(key, len) & (t->num_slots - 1);
@ -150,15 +150,15 @@ static struct dm_hash_node **_find(struct dm_hash_table *t, const char *key,
return c; return c;
} }
void *dm_hash_lookup_binary(struct dm_hash_table *t, const char *key, void *dm_hash_lookup_binary(struct dm_hash_table *t, const void *key,
uint32_t len) uint32_t len)
{ {
struct dm_hash_node **c = _find(t, key, len); struct dm_hash_node **c = _find(t, key, len);
return *c ? (*c)->data : 0; return *c ? (*c)->data : 0;
} }
int dm_hash_insert_binary(struct dm_hash_table *t, const char *key, int dm_hash_insert_binary(struct dm_hash_table *t, const void *key,
uint32_t len, void *data) uint32_t len, void *data)
{ {
struct dm_hash_node **c = _find(t, key, len); struct dm_hash_node **c = _find(t, key, len);
@ -180,7 +180,7 @@ int dm_hash_insert_binary(struct dm_hash_table *t, const char *key,
return 1; return 1;
} }
void dm_hash_remove_binary(struct dm_hash_table *t, const char *key, void dm_hash_remove_binary(struct dm_hash_table *t, const void *key,
uint32_t len) uint32_t len)
{ {
struct dm_hash_node **c = _find(t, key, len); struct dm_hash_node **c = _find(t, key, len);

View File

@ -1,6 +1,6 @@
/* /*
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
* Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved. * Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved.
* *
* This file is part of the device-mapper userspace tools. * This file is part of the device-mapper userspace tools.
* *
@ -713,10 +713,10 @@ void *dm_hash_lookup(struct dm_hash_table *t, const char *key);
int dm_hash_insert(struct dm_hash_table *t, const char *key, void *data); int dm_hash_insert(struct dm_hash_table *t, const char *key, void *data);
void dm_hash_remove(struct dm_hash_table *t, const char *key); void dm_hash_remove(struct dm_hash_table *t, const char *key);
void *dm_hash_lookup_binary(struct dm_hash_table *t, const char *key, uint32_t len); void *dm_hash_lookup_binary(struct dm_hash_table *t, const void *key, uint32_t len);
int dm_hash_insert_binary(struct dm_hash_table *t, const char *key, uint32_t len, int dm_hash_insert_binary(struct dm_hash_table *t, const void *key, uint32_t len,
void *data); void *data);
void dm_hash_remove_binary(struct dm_hash_table *t, const char *key, uint32_t len); void dm_hash_remove_binary(struct dm_hash_table *t, const void *key, uint32_t len);
unsigned dm_hash_get_num_entries(struct dm_hash_table *t); unsigned dm_hash_get_num_entries(struct dm_hash_table *t);
void dm_hash_iter(struct dm_hash_table *t, dm_hash_iterate_fn f); void dm_hash_iter(struct dm_hash_table *t, dm_hash_iterate_fn f);