Blender  V3.3
wm_utils.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
9 #include "WM_api.h"
10 #include "WM_types.h"
11 
12 #include "MEM_guardedalloc.h"
13 
14 /* -------------------------------------------------------------------- */
19 {
20  if (callback->free_user_data) {
21  callback->free_user_data(callback->user_data);
22  }
24 }
25 
26 static void do_nothing(struct bContext *UNUSED(C), void *UNUSED(user_data))
27 {
28 }
29 
31 {
32  wmGenericCallback *new_callback = MEM_dupallocN(callback);
33  callback->exec = do_nothing;
34  callback->free_user_data = NULL;
35  callback->user_data = NULL;
36  return new_callback;
37 }
38 
41 /* -------------------------------------------------------------------- */
46 {
47  if (wm_userdata->data && wm_userdata->use_free) {
48  if (wm_userdata->free_fn) {
49  wm_userdata->free_fn(wm_userdata->data);
50  }
51  else {
52  MEM_freeN(wm_userdata->data);
53  }
54  }
55 }
56 
#define UNUSED(x)
Read Guarded memory(de)allocation.
#define C
Definition: RandGen.cpp:25
void * user_data
DEGForeachIDComponentCallback callback
void(* MEM_freeN)(void *vmemh)
Definition: mallocn.c:27
void *(* MEM_dupallocN)(const void *vmemh)
Definition: mallocn.c:28
wmGenericUserDataFreeFn free_fn
Definition: WM_types.h:129
wmGenericCallback * WM_generic_callback_steal(wmGenericCallback *callback)
Definition: wm_utils.c:30
void WM_generic_callback_free(wmGenericCallback *callback)
Definition: wm_utils.c:18
void WM_generic_user_data_free(wmGenericUserData *wm_userdata)
Definition: wm_utils.c:45
static void do_nothing(struct bContext *UNUSED(C), void *UNUSED(user_data))
Definition: wm_utils.c:26