OLD | NEW |
1 /* This Source Code Form is subject to the terms of the Mozilla Public | 1 /* This Source Code Form is subject to the terms of the Mozilla Public |
2 * License, v. 2.0. If a copy of the MPL was not distributed with this | 2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
4 | 4 |
5 /* | 5 /* |
6 * hashops.c | 6 * hashops.c |
7 * | 7 * |
8 * This file includes a set of PLHashAllocOps that use NSSArenas. | 8 * This file includes a set of PLHashAllocOps that use NSSArenas. |
9 */ | 9 */ |
10 | 10 |
11 #ifndef BASE_H | 11 #ifndef BASE_H |
12 #include "base.h" | 12 #include "base.h" |
13 #endif /* BASE_H */ | 13 #endif /* BASE_H */ |
14 | 14 |
15 static void * PR_CALLBACK | 15 static void *PR_CALLBACK |
16 nss_arena_hash_alloc_table | 16 nss_arena_hash_alloc_table(void *pool, PRSize size) |
17 ( | |
18 void *pool, | |
19 PRSize size | |
20 ) | |
21 { | 17 { |
22 NSSArena *arena = (NSSArena *)NULL; | 18 NSSArena *arena = (NSSArena *)NULL; |
23 | 19 |
24 #ifdef NSSDEBUG | 20 #ifdef NSSDEBUG |
25 if( (void *)NULL != arena ) { | 21 if ((void *)NULL != arena) { |
26 if( PR_SUCCESS != nssArena_verifyPointer(arena) ) { | 22 if (PR_SUCCESS != nssArena_verifyPointer(arena)) { |
27 return (void *)NULL; | 23 return (void *)NULL; |
| 24 } |
28 } | 25 } |
29 } | |
30 #endif /* NSSDEBUG */ | 26 #endif /* NSSDEBUG */ |
31 | 27 |
32 return nss_ZAlloc(arena, size); | 28 return nss_ZAlloc(arena, size); |
33 } | 29 } |
34 | 30 |
35 static void PR_CALLBACK | 31 static void PR_CALLBACK |
36 nss_arena_hash_free_table | 32 nss_arena_hash_free_table(void *pool, void *item) |
37 ( | |
38 void *pool, | |
39 void *item | |
40 ) | |
41 { | 33 { |
42 (void)nss_ZFreeIf(item); | 34 (void)nss_ZFreeIf(item); |
43 } | 35 } |
44 | 36 |
45 static PLHashEntry * PR_CALLBACK | 37 static PLHashEntry *PR_CALLBACK |
46 nss_arena_hash_alloc_entry | 38 nss_arena_hash_alloc_entry(void *pool, const void *key) |
47 ( | |
48 void *pool, | |
49 const void *key | |
50 ) | |
51 { | 39 { |
52 NSSArena *arena = NULL; | 40 NSSArena *arena = NULL; |
53 | 41 |
54 #ifdef NSSDEBUG | 42 #ifdef NSSDEBUG |
55 if( (void *)NULL != arena ) { | 43 if ((void *)NULL != arena) { |
56 if( PR_SUCCESS != nssArena_verifyPointer(arena) ) { | 44 if (PR_SUCCESS != nssArena_verifyPointer(arena)) { |
57 return (void *)NULL; | 45 return (void *)NULL; |
| 46 } |
58 } | 47 } |
59 } | |
60 #endif /* NSSDEBUG */ | 48 #endif /* NSSDEBUG */ |
61 | 49 |
62 return nss_ZNEW(arena, PLHashEntry); | 50 return nss_ZNEW(arena, PLHashEntry); |
63 } | 51 } |
64 | 52 |
65 static void PR_CALLBACK | 53 static void PR_CALLBACK |
66 nss_arena_hash_free_entry | 54 nss_arena_hash_free_entry(void *pool, PLHashEntry *he, PRUintn flag) |
67 ( | |
68 void *pool, | |
69 PLHashEntry *he, | |
70 PRUintn flag | |
71 ) | |
72 { | 55 { |
73 if( HT_FREE_ENTRY == flag ) { | 56 if (HT_FREE_ENTRY == flag) { |
74 (void)nss_ZFreeIf(he); | 57 (void)nss_ZFreeIf(he); |
75 } | 58 } |
76 } | 59 } |
77 | 60 |
78 NSS_IMPLEMENT_DATA PLHashAllocOps | 61 NSS_IMPLEMENT_DATA PLHashAllocOps nssArenaHashAllocOps = { |
79 nssArenaHashAllocOps = { | 62 nss_arena_hash_alloc_table, nss_arena_hash_free_table, |
80 nss_arena_hash_alloc_table, | 63 nss_arena_hash_alloc_entry, nss_arena_hash_free_entry |
81 nss_arena_hash_free_table, | |
82 nss_arena_hash_alloc_entry, | |
83 nss_arena_hash_free_entry | |
84 }; | 64 }; |
OLD | NEW |