blob: e73fd0169fdc2837740b75e93abdec8af1b05852 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include "util/util.h"
/*
* talloc_takeover
* This function will take a non-talloc pointer and add it to a talloc
* memory context. It will accept a destructor for the original pointer
* so that when the parent memory context is freed, the non-talloc
* pointer will also be freed properly.
*/
TALLOC_CTX *talloc_takeover(TALLOC_CTX *mem_ctx, void *ptr, int (*destructor)(void **)) {
void **handle;
if (ptr == NULL) {
return NULL;
}
handle = talloc_named_const(mem_ctx, sizeof(void *), "void *");
if (handle == NULL) {
return NULL;
}
*handle = ptr;
talloc_set_destructor(handle,destructor);
return handle;
}
|