| OLD | NEW |
| (Empty) |
| 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 | |
| 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | |
| 4 | |
| 5 /* | |
| 6 * hashops.c | |
| 7 * | |
| 8 * This file includes a set of PLHashAllocOps that use NSSArenas. | |
| 9 */ | |
| 10 | |
| 11 #ifndef BASE_H | |
| 12 #include "base.h" | |
| 13 #endif /* BASE_H */ | |
| 14 | |
| 15 static void *PR_CALLBACK | |
| 16 nss_arena_hash_alloc_table(void *pool, PRSize size) | |
| 17 { | |
| 18 NSSArena *arena = (NSSArena *)NULL; | |
| 19 | |
| 20 #ifdef NSSDEBUG | |
| 21 if ((void *)NULL != arena) { | |
| 22 if (PR_SUCCESS != nssArena_verifyPointer(arena)) { | |
| 23 return (void *)NULL; | |
| 24 } | |
| 25 } | |
| 26 #endif /* NSSDEBUG */ | |
| 27 | |
| 28 return nss_ZAlloc(arena, size); | |
| 29 } | |
| 30 | |
| 31 static void PR_CALLBACK | |
| 32 nss_arena_hash_free_table(void *pool, void *item) | |
| 33 { | |
| 34 (void)nss_ZFreeIf(item); | |
| 35 } | |
| 36 | |
| 37 static PLHashEntry *PR_CALLBACK | |
| 38 nss_arena_hash_alloc_entry(void *pool, const void *key) | |
| 39 { | |
| 40 NSSArena *arena = NULL; | |
| 41 | |
| 42 #ifdef NSSDEBUG | |
| 43 if ((void *)NULL != arena) { | |
| 44 if (PR_SUCCESS != nssArena_verifyPointer(arena)) { | |
| 45 return (void *)NULL; | |
| 46 } | |
| 47 } | |
| 48 #endif /* NSSDEBUG */ | |
| 49 | |
| 50 return nss_ZNEW(arena, PLHashEntry); | |
| 51 } | |
| 52 | |
| 53 static void PR_CALLBACK | |
| 54 nss_arena_hash_free_entry(void *pool, PLHashEntry *he, PRUintn flag) | |
| 55 { | |
| 56 if (HT_FREE_ENTRY == flag) { | |
| 57 (void)nss_ZFreeIf(he); | |
| 58 } | |
| 59 } | |
| 60 | |
| 61 NSS_IMPLEMENT_DATA PLHashAllocOps nssArenaHashAllocOps = { | |
| 62 nss_arena_hash_alloc_table, nss_arena_hash_free_table, | |
| 63 nss_arena_hash_alloc_entry, nss_arena_hash_free_entry | |
| 64 }; | |
| OLD | NEW |