projects
/
apps
/
pfixtools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rbl filter implementation.
[apps/pfixtools.git]
/
common
/
trie.c
diff --git
a/common/trie.c
b/common/trie.c
index
9ffa9b5
..
2569dff
100644
(file)
--- a/
common/trie.c
+++ b/
common/trie.c
@@
-33,8
+33,6
@@
* Copyright © 2008 Florent Bruneau
*/
* Copyright © 2008 Florent Bruneau
*/
-#include <sys/mman.h>
-
#include "array.h"
#include "str.h"
#include "trie.h"
#include "array.h"
#include "str.h"
#include "trie.h"
@@
-52,10
+50,10
@@
struct trie_entry_t {
ARRAY(trie_entry_t)
struct trie_t {
ARRAY(trie_entry_t)
struct trie_t {
-
trie_entry_t_array_t
entries;
-
char_array_t
c;
-
char_array_t
keys;
-
int_array_t
keys_offset;
+
A(trie_entry_t)
entries;
+
A(char)
c;
+
A(char)
keys;
+
A(int)
keys_offset;
bool locked;
};
bool locked;
};
@@
-152,7
+150,7
@@
static inline int trie_entry_new(trie_t *trie)
{
const trie_entry_t e = TRIE_ENTRY_INIT;
array_add(trie->entries, e);
{
const trie_entry_t e = TRIE_ENTRY_INIT;
array_add(trie->entries, e);
- return trie->entries.len;
+ return trie->entries.len
- 1
;
}
static inline int trie_add_leaf(trie_t *trie, const char *key)
}
static inline int trie_add_leaf(trie_t *trie, const char *key)
@@
-304,13
+302,13
@@
void trie_lock(trie_t *trie)
if (trie->locked) {
return;
}
if (trie->locked) {
return;
}
- if (
mlock(trie->entries.data, sizeof(trie_entry_t) * trie->entries.len) != 0
) {
+ if (
!array_lock(trie->entries)
) {
UNIXERR("mlock");
return;
}
UNIXERR("mlock");
return;
}
- if (
mlock(trie->c.data, trie->c.len) != 0
) {
+ if (
!array_lock(trie->c)
) {
UNIXERR("mlock");
UNIXERR("mlock");
-
munlock(trie->entries.data, sizeof(trie_entry_t) * trie->entries.len
);
+
array_unlock(trie->entries
);
return;
}
trie->locked = true;
return;
}
trie->locked = true;
@@
-321,8
+319,8
@@
void trie_unlock(trie_t *trie)
if (!trie->locked) {
return;
}
if (!trie->locked) {
return;
}
-
munlock(trie->entries.data, sizeof(trie_entry_t) * trie->entries.len
);
-
munlock(trie->c.data, trie->c.len
);
+
array_unlock(trie->entries
);
+
array_unlock(trie->entries
);
trie->locked = false;
}
trie->locked = false;
}