mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 06:55:30 +00:00
Merged rt42563 (ht.c fixes)
This commit is contained in:
@@ -621,7 +621,7 @@ pre_parse_args(int argc, char **argv) {
|
||||
memdebugging = ISC_TRUE;
|
||||
if (strcasecmp("trace", isc_commandline_argument) == 0)
|
||||
isc_mem_debugging |= ISC_MEM_DEBUGTRACE;
|
||||
else if (!strcasecmp("record",
|
||||
else if (strcasecmp("record",
|
||||
isc_commandline_argument) == 0)
|
||||
isc_mem_debugging |= ISC_MEM_DEBUGRECORD;
|
||||
else if (strcasecmp("usage",
|
||||
|
26
lib/isc/ht.c
26
lib/isc/ht.c
@@ -50,7 +50,7 @@ struct isc_ht {
|
||||
|
||||
struct isc_ht_iter {
|
||||
isc_ht_t *ht;
|
||||
isc_uint32_t i;
|
||||
size_t i;
|
||||
isc_ht_node_t *cur;
|
||||
};
|
||||
|
||||
@@ -136,17 +136,15 @@ isc_ht_add(isc_ht_t *ht, const unsigned char *key,
|
||||
node = ht->table[hash & ht->mask];
|
||||
while (node != NULL) {
|
||||
if (keysize == node->keysize &&
|
||||
memcmp(key, node->key, keysize) == 0)
|
||||
{
|
||||
memcmp(key, node->key, keysize) == 0) {
|
||||
return (ISC_R_EXISTS);
|
||||
}
|
||||
node = node->next;
|
||||
}
|
||||
|
||||
node = isc_mem_get(ht->mctx, sizeof(isc_ht_node_t) + keysize);
|
||||
if (node == NULL) {
|
||||
if (node == NULL)
|
||||
return (ISC_R_NOMEMORY);
|
||||
}
|
||||
|
||||
memmove(node->key, key, keysize);
|
||||
node->keysize = keysize;
|
||||
@@ -173,8 +171,7 @@ isc_ht_find(const isc_ht_t *ht, const unsigned char *key,
|
||||
node = ht->table[hash & ht->mask];
|
||||
while (node != NULL) {
|
||||
if (keysize == node->keysize &&
|
||||
memcmp(key, node->key, keysize) == 0)
|
||||
{
|
||||
memcmp(key, node->key, keysize) == 0) {
|
||||
*valuep = node->value;
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
@@ -197,13 +194,11 @@ isc_ht_delete(isc_ht_t *ht, const unsigned char *key, isc_uint32_t keysize) {
|
||||
node = ht->table[hash & ht->mask];
|
||||
while (node != NULL) {
|
||||
if (keysize == node->keysize &&
|
||||
memcmp(key, node->key, keysize) == 0)
|
||||
{
|
||||
if (prev == NULL) {
|
||||
memcmp(key, node->key, keysize) == 0) {
|
||||
if (prev == NULL)
|
||||
ht->table[hash & ht->mask] = node->next;
|
||||
} else {
|
||||
else
|
||||
prev->next = node->next;
|
||||
}
|
||||
isc_mem_put(ht->mctx, node,
|
||||
sizeof(isc_ht_node_t) + node->keysize);
|
||||
ht->count--;
|
||||
@@ -259,7 +254,7 @@ isc_ht_iter_first(isc_ht_iter_t *it) {
|
||||
while (it->i < it->ht->size && it->ht->table[it->i] == NULL)
|
||||
it->i++;
|
||||
|
||||
if(it->i == it->ht->size)
|
||||
if (it->i == it->ht->size)
|
||||
return (ISC_R_NOMORE);
|
||||
|
||||
it->cur = it->ht->table[it->i];
|
||||
@@ -318,11 +313,10 @@ isc_ht_iter_delcurrent_next(isc_ht_iter_t *it) {
|
||||
INSIST(node != NULL);
|
||||
}
|
||||
|
||||
if (prev == NULL) {
|
||||
if (prev == NULL)
|
||||
ht->table[hash & ht->mask] = node->next;
|
||||
} else {
|
||||
else
|
||||
prev->next = node->next;
|
||||
}
|
||||
isc_mem_put(ht->mctx, node,
|
||||
sizeof(isc_ht_node_t) + node->keysize);
|
||||
ht->count--;
|
||||
|
Reference in New Issue
Block a user