Blender V4.3
wm_utils.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
11#include "WM_api.hh"
12#include "WM_types.hh"
13
14#include "MEM_guardedalloc.h"
15
16/* -------------------------------------------------------------------- */
21{
22 if (callback->free_user_data) {
23 callback->free_user_data(callback->user_data);
24 }
26}
27
28static void do_nothing(bContext * /*C*/, void * /*user_data*/) {}
29
31{
32 wmGenericCallback *new_callback = static_cast<wmGenericCallback *>(MEM_dupallocN(callback));
33 callback->exec = do_nothing;
34 callback->free_user_data = nullptr;
35 callback->user_data = nullptr;
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
Read Guarded memory(de)allocation.
DEGForeachIDComponentCallback callback
void MEM_freeN(void *vmemh)
Definition mallocn.cc:105
void *(* MEM_dupallocN)(const void *vmemh)
Definition mallocn.cc:39
wmGenericUserDataFreeFn free_fn
Definition WM_types.hh:143
static void do_nothing(bContext *, void *)
Definition wm_utils.cc:28
void WM_generic_callback_free(wmGenericCallback *callback)
Definition wm_utils.cc:20
wmGenericCallback * WM_generic_callback_steal(wmGenericCallback *callback)
Definition wm_utils.cc:30
void WM_generic_user_data_free(wmGenericUserData *wm_userdata)
Definition wm_utils.cc:45