2
0
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:
Francis Dupont
2016-06-01 14:49:01 +02:00
parent 2020043d8c
commit 3933e5c763
2 changed files with 14 additions and 20 deletions

View File

@@ -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",

View File

@@ -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--;