Line | Branch | Exec | Source |
---|---|---|---|
1 | #include <core.h> | ||
2 | #include <comparator.h> | ||
3 | |||
4 | |||
5 | /** | ||
6 | * Free allocated GTree & unref comparator for GC access | ||
7 | */ | ||
8 | void | ||
9 | 163 | freeNativeBTree(napi_env env, void *finalize_data, void *finalize_hint) { | |
10 | 163 | BTree_t *bTree = (BTree_t *) finalize_data; | |
11 | |||
12 | // Unref comparator function for GC access | ||
13 |
1/6✓ Branch 0 taken 163 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
163 | NAPI_CALL(env, false, |
14 | napi_delete_reference(env, bTree->comparator)); | ||
15 | // Destroy native bTree & release memory | ||
16 | 163 | g_tree_destroy(bTree->nativeTree); | |
17 | |||
18 | // Release BTree_t struct memory | ||
19 | 163 | g_free((gpointer) bTree); | |
20 | 163 | } | |
21 | |||
22 | static void | ||
23 | 1495 | freeTreeValue(gpointer treeValue) { | |
24 |
1/6✓ Branch 0 taken 1495 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
1495 | FREE_NODE(treeValue); |
25 | 1495 | } | |
26 | |||
27 | BTree_t* | ||
28 | 163 | btreeAlloc(napi_env env) | |
29 | { | ||
30 | // Allocate memory for usre data wich recived in native comparator | ||
31 | 163 | BTree_t *bTree = g_new(BTree_t, 1); | |
32 | |||
33 | // Initialize native BTree with native comparator & additional user data | ||
34 | // Key & Value is same pointer (ES object). Need free one of key or value. | ||
35 | 163 | GTree *nativeTree = g_tree_new_full(nativeComparator, bTree, NULL, freeTreeValue); | |
36 | |||
37 | // Fill user data | ||
38 | 163 | bTree->nativeTree = nativeTree; | |
39 | 163 | bTree->env = env; | |
40 | |||
41 | 163 | return bTree; | |
42 | } | ||
43 |