diff options
| author | Andre Weissflog <floooh@gmail.com> | 2023-09-25 16:30:57 +0200 |
|---|---|---|
| committer | Andre Weissflog <floooh@gmail.com> | 2023-09-25 16:30:57 +0200 |
| commit | 754d32619fef272efeeaaa5ba629b68ba9f3c74e (patch) | |
| tree | 3a54deea7f6de77d839ef1be8f15bd0fe10cd23a | |
| parent | 0bc47658c816e9b9fd556fc074787ca613a97979 (diff) | |
rename custom allocator callbacks to alloc_fn/free_fn
| -rw-r--r-- | CHANGELOG.md | 10 | ||||
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | sokol_app.h | 23 | ||||
| -rw-r--r-- | sokol_args.h | 24 | ||||
| -rw-r--r-- | sokol_audio.h | 26 | ||||
| -rw-r--r-- | sokol_fetch.h | 24 | ||||
| -rw-r--r-- | sokol_gfx.h | 26 | ||||
| -rw-r--r-- | util/sokol_debugtext.h | 20 | ||||
| -rw-r--r-- | util/sokol_fontstash.h | 20 | ||||
| -rw-r--r-- | util/sokol_gfx_imgui.h | 22 | ||||
| -rw-r--r-- | util/sokol_gl.h | 18 | ||||
| -rw-r--r-- | util/sokol_imgui.h | 20 | ||||
| -rw-r--r-- | util/sokol_memtrack.h | 4 | ||||
| -rw-r--r-- | util/sokol_nuklear.h | 18 | ||||
| -rw-r--r-- | util/sokol_spine.h | 22 |
15 files changed, 141 insertions, 138 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index d15e8977..e130b0aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ ## Updates +#### 25-Sep-2023 + +- The allocator callback functions in all headers that support custom allocators have been renamed + from `alloc` and `free` to `alloc_fn` and `free_fn`, this is because the symbol `free` is quite + likely to collide with a preprocessor macro of the same name if the standard C allocator is + replaced with a custom allocator. + + This is a breaking change only if you've been providing your own allocator functions to + the sokol headers. + #### 23-Sep-2023 - sokol_gfx.h gl: Allow to inject an external GL framebuffer id into the sokol-gfx default @@ -4,7 +4,7 @@ Simple [STB-style](https://github.com/nothings/stb/blob/master/docs/stb_howto.txt) cross-platform libraries for C and C++, written in C. -[**See what's new**](https://github.com/floooh/sokol/blob/master/CHANGELOG.md) (**17-Sep-2023** debug label support in sokol_gfx.h Metal backend) +[**See what's new**](https://github.com/floooh/sokol/blob/master/CHANGELOG.md) (**25-Sep-2023** POTENTIALLY BREAKING: allocator callbacks have been renamed) [](/../../actions/workflows/main.yml) [](/../../actions/workflows/gen_bindings.yml) [](https://github.com/floooh/sokol-zig/actions/workflows/main.yml) [](https://github.com/floooh/sokol-nim/actions/workflows/main.yml) [](https://github.com/floooh/sokol-odin/actions/workflows/main.yml)[](https://github.com/floooh/sokol-rust/actions/workflows/main.yml) diff --git a/sokol_app.h b/sokol_app.h index f3b68ebc..4d1f2b6b 100644 --- a/sokol_app.h +++ b/sokol_app.h @@ -1039,8 +1039,8 @@ return (sapp_desc){ // ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ..., } }; @@ -1493,12 +1493,12 @@ typedef struct sapp_icon_desc { Used in sapp_desc to provide custom memory-alloc and -free functions to sokol_app.h. If memory management should be overridden, both the - alloc and free function must be provided (e.g. it's not valid to + alloc_fb and free_fn function must be provided (e.g. it's not valid to override one function but not the other). */ typedef struct sapp_allocator { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } sapp_allocator; @@ -2862,10 +2862,9 @@ _SOKOL_PRIVATE void _sapp_clear(void* ptr, size_t size) { _SOKOL_PRIVATE void* _sapp_malloc(size_t size) { SOKOL_ASSERT(size > 0); void* ptr; - if (_sapp.desc.allocator.alloc) { - ptr = _sapp.desc.allocator.alloc(size, _sapp.desc.allocator.user_data); - } - else { + if (_sapp.desc.allocator.alloc_fn) { + ptr = _sapp.desc.allocator.alloc_fn(size, _sapp.desc.allocator.user_data); + } else { ptr = malloc(size); } if (0 == ptr) { @@ -2881,8 +2880,8 @@ _SOKOL_PRIVATE void* _sapp_malloc_clear(size_t size) { } _SOKOL_PRIVATE void _sapp_free(void* ptr) { - if (_sapp.desc.allocator.free) { - _sapp.desc.allocator.free(ptr, _sapp.desc.allocator.user_data); + if (_sapp.desc.allocator.free_fn) { + _sapp.desc.allocator.free_fn(ptr, _sapp.desc.allocator.user_data); } else { free(ptr); @@ -2986,7 +2985,7 @@ _SOKOL_PRIVATE bool _sapp_strcpy(const char* src, char* dst, int max_len) { } _SOKOL_PRIVATE sapp_desc _sapp_desc_defaults(const sapp_desc* desc) { - SOKOL_ASSERT((desc->allocator.alloc && desc->allocator.free) || (!desc->allocator.alloc && !desc->allocator.free)); + SOKOL_ASSERT((desc->allocator.alloc_fn && desc->allocator.free_fn) || (!desc->allocator.alloc_fn && !desc->allocator.free_fn)); sapp_desc res = *desc; res.sample_count = _sapp_def(res.sample_count, 1); res.swap_interval = _sapp_def(res.swap_interval, 1); diff --git a/sokol_args.h b/sokol_args.h index d33ba3a0..bce6bbad 100644 --- a/sokol_args.h +++ b/sokol_args.h @@ -247,8 +247,8 @@ sargs_setup(&(sargs_desc){ // ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ..., } }); @@ -316,12 +316,12 @@ extern "C" { Used in sargs_desc to provide custom memory-alloc and -free functions to sokol_args.h. If memory management should be overridden, both the - alloc and free function must be provided (e.g. it's not valid to + alloc_fn and free_fn function must be provided (e.g. it's not valid to override one function but not the other). */ typedef struct sargs_allocator { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } sargs_allocator; @@ -447,10 +447,9 @@ _SOKOL_PRIVATE void _sargs_clear(void* ptr, size_t size) { _SOKOL_PRIVATE void* _sargs_malloc(size_t size) { SOKOL_ASSERT(size > 0); void* ptr; - if (_sargs.allocator.alloc) { - ptr = _sargs.allocator.alloc(size, _sargs.allocator.user_data); - } - else { + if (_sargs.allocator.alloc_fn) { + ptr = _sargs.allocator.alloc_fn(size, _sargs.allocator.user_data); + } else { ptr = malloc(size); } SOKOL_ASSERT(ptr); @@ -464,10 +463,9 @@ _SOKOL_PRIVATE void* _sargs_malloc_clear(size_t size) { } _SOKOL_PRIVATE void _sargs_free(void* ptr) { - if (_sargs.allocator.free) { - _sargs.allocator.free(ptr, _sargs.allocator.user_data); - } - else { + if (_sargs.allocator.free_fn) { + _sargs.allocator.free_fn(ptr, _sargs.allocator.user_data); + } else { free(ptr); } } diff --git a/sokol_audio.h b/sokol_audio.h index bdd69530..6b60937c 100644 --- a/sokol_audio.h +++ b/sokol_audio.h @@ -397,8 +397,8 @@ saudio_setup(&(saudio_desc){ // ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ..., } }); @@ -575,12 +575,12 @@ typedef struct saudio_logger { Used in saudio_desc to provide custom memory-alloc and -free functions to sokol_audio.h. If memory management should be overridden, both the - alloc and free function must be provided (e.g. it's not valid to + alloc_fn and free_fn function must be provided (e.g. it's not valid to override one function but not the other). */ typedef struct saudio_allocator { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } saudio_allocator; @@ -1146,10 +1146,9 @@ _SOKOL_PRIVATE void _saudio_clear(void* ptr, size_t size) { _SOKOL_PRIVATE void* _saudio_malloc(size_t size) { SOKOL_ASSERT(size > 0); void* ptr; - if (_saudio.desc.allocator.alloc) { - ptr = _saudio.desc.allocator.alloc(size, _saudio.desc.allocator.user_data); - } - else { + if (_saudio.desc.allocator.alloc_fn) { + ptr = _saudio.desc.allocator.alloc_fn(size, _saudio.desc.allocator.user_data); + } else { ptr = malloc(size); } if (0 == ptr) { @@ -1165,10 +1164,9 @@ _SOKOL_PRIVATE void* _saudio_malloc_clear(size_t size) { } _SOKOL_PRIVATE void _saudio_free(void* ptr) { - if (_saudio.desc.allocator.free) { - _saudio.desc.allocator.free(ptr, _saudio.desc.allocator.user_data); - } - else { + if (_saudio.desc.allocator.free_fn) { + _saudio.desc.allocator.free_fn(ptr, _saudio.desc.allocator.user_data); + } else { free(ptr); } } @@ -2485,7 +2483,7 @@ void _saudio_backend_shutdown(void) { SOKOL_API_IMPL void saudio_setup(const saudio_desc* desc) { SOKOL_ASSERT(!_saudio.valid); SOKOL_ASSERT(desc); - SOKOL_ASSERT((desc->allocator.alloc && desc->allocator.free) || (!desc->allocator.alloc && !desc->allocator.free)); + SOKOL_ASSERT((desc->allocator.alloc_fn && desc->allocator.free_fn) || (!desc->allocator.alloc_fn && !desc->allocator.free_fn)); _saudio_clear(&_saudio, sizeof(_saudio)); _saudio.desc = *desc; _saudio.stream_cb = desc->stream_cb; diff --git a/sokol_fetch.h b/sokol_fetch.h index 50167f8a..510c5b5b 100644 --- a/sokol_fetch.h +++ b/sokol_fetch.h @@ -820,8 +820,8 @@ sfetch_setup(&(sfetch_desc_t){ // ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ..., } }); @@ -1024,8 +1024,8 @@ typedef struct sfetch_range_t { override one function but not the other). */ typedef struct sfetch_allocator_t { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } sfetch_allocator_t; @@ -1424,10 +1424,9 @@ _SOKOL_PRIVATE void _sfetch_clear(void* ptr, size_t size) { _SOKOL_PRIVATE void* _sfetch_malloc_with_allocator(const sfetch_allocator_t* allocator, size_t size) { SOKOL_ASSERT(size > 0); void* ptr; - if (allocator->alloc) { - ptr = allocator->alloc(size, allocator->user_data); - } - else { + if (allocator->alloc_fn) { + ptr = allocator->alloc_fn(size, allocator->user_data); + } else { ptr = malloc(size); } if (0 == ptr) { @@ -1447,10 +1446,9 @@ _SOKOL_PRIVATE void* _sfetch_malloc_clear(size_t size) { } _SOKOL_PRIVATE void _sfetch_free(void* ptr) { - if (_sfetch->desc.allocator.free) { - _sfetch->desc.allocator.free(ptr, _sfetch->desc.allocator.user_data); - } - else { + if (_sfetch->desc.allocator.free_fn) { + _sfetch->desc.allocator.free_fn(ptr, _sfetch->desc.allocator.user_data); + } else { free(ptr); } } @@ -2620,7 +2618,7 @@ _SOKOL_PRIVATE bool _sfetch_validate_request(_sfetch_t* ctx, const sfetch_reques } _SOKOL_PRIVATE sfetch_desc_t _sfetch_desc_defaults(const sfetch_desc_t* desc) { - SOKOL_ASSERT((desc->allocator.alloc && desc->allocator.free) || (!desc->allocator.alloc && !desc->allocator.free)); + SOKOL_ASSERT((desc->allocator.alloc_fn && desc->allocator.free_fn) || (!desc->allocator.alloc_fn && !desc->allocator.free_fn)); sfetch_desc_t res = *desc; res.max_requests = _sfetch_def(desc->max_requests, 128); res.num_channels = _sfetch_def(desc->num_channels, 1); diff --git a/sokol_gfx.h b/sokol_gfx.h index 729754de..063c70c9 100644 --- a/sokol_gfx.h +++ b/sokol_gfx.h @@ -939,8 +939,8 @@ sg_setup(&(sg_desc){ // ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ..., } }); @@ -3131,8 +3131,8 @@ typedef enum sg_log_item { .max_commit_listeners 1024 .disable_validation false - .allocator.alloc 0 (in this case, malloc() will be called) - .allocator.free 0 (in this case, free() will be called) + .allocator.alloc_fn 0 (in this case, malloc() will be called) + .allocator.free_fn 0 (in this case, free() will be called) .allocator.user_data 0 .context.color_format: default value depends on selected backend: @@ -3280,12 +3280,12 @@ typedef struct sg_commit_listener { Used in sg_desc to provide custom memory-alloc and -free functions to sokol_gfx.h. If memory management should be overridden, both the - alloc and free function must be provided (e.g. it's not valid to + alloc_fn and free_fn function must be provided (e.g. it's not valid to override one function but not the other). */ typedef struct sg_allocator { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } sg_allocator; @@ -5067,8 +5067,8 @@ _SOKOL_PRIVATE void _sg_clear(void* ptr, size_t size) { _SOKOL_PRIVATE void* _sg_malloc(size_t size) { SOKOL_ASSERT(size > 0); void* ptr; - if (_sg.desc.allocator.alloc) { - ptr = _sg.desc.allocator.alloc(size, _sg.desc.allocator.user_data); + if (_sg.desc.allocator.alloc_fn) { + ptr = _sg.desc.allocator.alloc_fn(size, _sg.desc.allocator.user_data); } else { ptr = malloc(size); } @@ -5085,8 +5085,8 @@ _SOKOL_PRIVATE void* _sg_malloc_clear(size_t size) { } _SOKOL_PRIVATE void _sg_free(void* ptr) { - if (_sg.desc.allocator.free) { - _sg.desc.allocator.free(ptr, _sg.desc.allocator.user_data); + if (_sg.desc.allocator.free_fn) { + _sg.desc.allocator.free_fn(ptr, _sg.desc.allocator.user_data); } else { free(ptr); } @@ -7044,7 +7044,7 @@ _SOKOL_PRIVATE void _sg_gl_reset_state_cache(void) { _SOKOL_PRIVATE void _sg_gl_setup_backend(const sg_desc* desc) { _SOKOL_UNUSED(desc); SOKOL_ASSERT(desc->context.gl.default_framebuffer_cb == 0 || desc->context.gl.default_framebuffer_userdata_cb == 0); - + // assumes that _sg.gl is already zero-initialized _sg.gl.valid = true; @@ -16059,7 +16059,7 @@ _SOKOL_PRIVATE sg_desc _sg_desc_defaults(const sg_desc* desc) { SOKOL_API_IMPL void sg_setup(const sg_desc* desc) { SOKOL_ASSERT(desc); SOKOL_ASSERT((desc->_start_canary == 0) && (desc->_end_canary == 0)); - SOKOL_ASSERT((desc->allocator.alloc && desc->allocator.free) || (!desc->allocator.alloc && !desc->allocator.free)); + SOKOL_ASSERT((desc->allocator.alloc_fn && desc->allocator.free_fn) || (!desc->allocator.alloc_fn && !desc->allocator.free_fn)); _SG_CLEAR_ARC_STRUCT(_sg_state_t, _sg); _sg.desc = _sg_desc_defaults(desc); _sg_setup_pools(&_sg.pools, &_sg.desc); diff --git a/util/sokol_debugtext.h b/util/sokol_debugtext.h index 4d4ee6e1..104be7ef 100644 --- a/util/sokol_debugtext.h +++ b/util/sokol_debugtext.h @@ -427,8 +427,8 @@ sdtx_setup(&(sdtx_desc_t){ // ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ...; } }); @@ -658,12 +658,12 @@ typedef struct sdtx_context_desc_t { Used in sdtx_desc_t to provide custom memory-alloc and -free functions to sokol_debugtext.h. If memory management should be overridden, both the - alloc and free function must be provided (e.g. it's not valid to + alloc_fn and free_fn function must be provided (e.g. it's not valid to override one function but not the other). */ typedef struct sdtx_allocator_t { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } sdtx_allocator_t; @@ -3660,8 +3660,8 @@ static void _sdtx_clear(void* ptr, size_t size) { static void* _sdtx_malloc(size_t size) { SOKOL_ASSERT(size > 0); void* ptr; - if (_sdtx.desc.allocator.alloc) { - ptr = _sdtx.desc.allocator.alloc(size, _sdtx.desc.allocator.user_data); + if (_sdtx.desc.allocator.alloc_fn) { + ptr = _sdtx.desc.allocator.alloc_fn(size, _sdtx.desc.allocator.user_data); } else { ptr = malloc(size); } @@ -3678,8 +3678,8 @@ static void* _sdtx_malloc_clear(size_t size) { } static void _sdtx_free(void* ptr) { - if (_sdtx.desc.allocator.free) { - _sdtx.desc.allocator.free(ptr, _sdtx.desc.allocator.user_data); + if (_sdtx.desc.allocator.free_fn) { + _sdtx.desc.allocator.free_fn(ptr, _sdtx.desc.allocator.user_data); } else { free(ptr); } @@ -4259,7 +4259,7 @@ SOKOL_API_IMPL void _sdtx_draw_layer(_sdtx_context_t* ctx, int layer_id) { static sdtx_desc_t _sdtx_desc_defaults(const sdtx_desc_t* desc) { - SOKOL_ASSERT((desc->allocator.alloc && desc->allocator.free) || (!desc->allocator.alloc && !desc->allocator.free)); + SOKOL_ASSERT((desc->allocator.alloc_fn && desc->allocator.free_fn) || (!desc->allocator.alloc_fn && !desc->allocator.free_fn)); sdtx_desc_t res = *desc; res.context_pool_size = _sdtx_def(res.context_pool_size, _SDTX_DEFAULT_CONTEXT_POOL_SIZE); res.printf_buf_size = _sdtx_def(res.printf_buf_size, _SDTX_DEFAULT_PRINTF_BUF_SIZE); diff --git a/util/sokol_fontstash.h b/util/sokol_fontstash.h index 9719e380..fe2944ba 100644 --- a/util/sokol_fontstash.h +++ b/util/sokol_fontstash.h @@ -147,8 +147,8 @@ FONScontext* fons_context = sfons_create(&(sfons_desc_t){ ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ..., } }); @@ -213,15 +213,15 @@ extern "C" { Used in sfons_desc_t to provide custom memory-alloc and -free functions to sokol_fontstash.h. If memory management should be overridden, both the - alloc and free function must be provided (e.g. it's not valid to + alloc_fn and free_fn function must be provided (e.g. it's not valid to override one function but not the other). NOTE that this does not affect memory allocation calls inside fontstash.h */ typedef struct sfons_allocator_t { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } sfons_allocator_t; @@ -1610,8 +1610,8 @@ static void _sfons_clear(void* ptr, size_t size) { static void* _sfons_malloc(const sfons_allocator_t* allocator, size_t size) { SOKOL_ASSERT(allocator && (size > 0)); void* ptr; - if (allocator->alloc) { - ptr = allocator->alloc(size, allocator->user_data); + if (allocator->alloc_fn) { + ptr = allocator->alloc_fn(size, allocator->user_data); } else { ptr = malloc(size); } @@ -1627,8 +1627,8 @@ static void* _sfons_malloc_clear(const sfons_allocator_t* allocator, size_t size static void _sfons_free(const sfons_allocator_t* allocator, void* ptr) { SOKOL_ASSERT(allocator); - if (allocator->free) { - allocator->free(ptr, allocator->user_data); + if (allocator->free_fn) { + allocator->free_fn(ptr, allocator->user_data); } else { free(ptr); } @@ -1809,7 +1809,7 @@ static sfons_desc_t _sfons_desc_defaults(const sfons_desc_t* desc) { SOKOL_API_IMPL FONScontext* sfons_create(const sfons_desc_t* desc) { SOKOL_ASSERT(desc); - SOKOL_ASSERT((desc->allocator.alloc && desc->allocator.free) || (!desc->allocator.alloc && !desc->allocator.free)); + SOKOL_ASSERT((desc->allocator.alloc_fn && desc->allocator.free_fn) || (!desc->allocator.alloc_fn && !desc->allocator.free_fn)); _sfons_t* sfons = (_sfons_t*) _sfons_malloc_clear(&desc->allocator, sizeof(_sfons_t)); sfons->desc = _sfons_desc_defaults(desc); FONSparams params; diff --git a/util/sokol_gfx_imgui.h b/util/sokol_gfx_imgui.h index f9106f1b..82c62c68 100644 --- a/util/sokol_gfx_imgui.h +++ b/util/sokol_gfx_imgui.h @@ -73,8 +73,8 @@ sg_imgui_init(&sg_imgui, &(sg_imgui_desc_t){ .allocator = { - .alloc = my_malloc, - .free = my_free, + .alloc_fn = my_malloc, + .free_fn = my_free, } }); @@ -169,8 +169,8 @@ sg_imgui_init(&(&ctx, &(sg_imgui_desc_t){ // ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ...; } }); @@ -718,8 +718,8 @@ typedef struct sg_imgui_caps_t { override one function but not the other). */ typedef struct sg_imgui_allocator_t { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } sg_imgui_allocator_t; @@ -914,8 +914,8 @@ _SOKOL_PRIVATE void _sg_imgui_clear(void* ptr, size_t size) { _SOKOL_PRIVATE void* _sg_imgui_malloc(const sg_imgui_allocator_t* allocator, size_t size) { SOKOL_ASSERT(allocator && (size > 0)); void* ptr; - if (allocator->alloc) { - ptr = allocator->alloc(size, allocator->user_data); + if (allocator->alloc_fn) { + ptr = allocator->alloc_fn(size, allocator->user_data); } else { ptr = malloc(size); } @@ -931,8 +931,8 @@ _SOKOL_PRIVATE void* _sg_imgui_malloc_clear(const sg_imgui_allocator_t* allocato _SOKOL_PRIVATE void _sg_imgui_free(const sg_imgui_allocator_t* allocator, void* ptr) { SOKOL_ASSERT(allocator); - if (allocator->free) { - allocator->free(ptr, allocator->user_data); + if (allocator->free_fn) { + allocator->free_fn(ptr, allocator->user_data); } else { free(ptr); } @@ -4145,7 +4145,7 @@ _SOKOL_PRIVATE void _sg_imgui_draw_caps_panel(void) { #define _sg_imgui_def(val, def) (((val) == 0) ? (def) : (val)) _SOKOL_PRIVATE sg_imgui_desc_t _sg_imgui_desc_defaults(const sg_imgui_desc_t* desc) { - SOKOL_ASSERT((desc->allocator.alloc && desc->allocator.free) || (!desc->allocator.alloc && !desc->allocator.free)); + SOKOL_ASSERT((desc->allocator.alloc_fn && desc->allocator.free_fn) || (!desc->allocator.alloc_fn && !desc->allocator.free_fn)); sg_imgui_desc_t res = *desc; // FIXME: any additional default overrides would go here return res; diff --git a/util/sokol_gl.h b/util/sokol_gl.h index f17da478..1bc4e1c0 100644 --- a/util/sokol_gl.h +++ b/util/sokol_gl.h @@ -606,8 +606,8 @@ sgl_setup(&(sgl_desc_t){ // ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ...; } }); @@ -796,8 +796,8 @@ typedef struct sgl_context_desc_t { override one function but not the other). */ typedef struct sgl_allocator_t { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } sgl_allocator_t; @@ -2503,8 +2503,8 @@ static void _sgl_clear(void* ptr, size_t size) { static void* _sgl_malloc(size_t size) { SOKOL_ASSERT(size > 0); void* ptr; - if (_sgl.desc.allocator.alloc) { - ptr = _sgl.desc.allocator.alloc(size, _sgl.desc.allocator.user_data); + if (_sgl.desc.allocator.alloc_fn) { + ptr = _sgl.desc.allocator.alloc_fn(size, _sgl.desc.allocator.user_data); } else { ptr = malloc(size); } @@ -2521,8 +2521,8 @@ static void* _sgl_malloc_clear(size_t size) { } static void _sgl_free(void* ptr) { - if (_sgl.desc.allocator.free) { - _sgl.desc.allocator.free(ptr, _sgl.desc.allocator.user_data); + if (_sgl.desc.allocator.free_fn) { + _sgl.desc.allocator.free_fn(ptr, _sgl.desc.allocator.user_data); } else { free(ptr); } @@ -3283,7 +3283,7 @@ static _sgl_matrix_t* _sgl_matrix(_sgl_context_t* ctx) { // return sg_context_desc_t with patched defaults static sgl_desc_t _sgl_desc_defaults(const sgl_desc_t* desc) { - SOKOL_ASSERT((desc->allocator.alloc && desc->allocator.free) || (!desc->allocator.alloc && !desc->allocator.free)); + SOKOL_ASSERT((desc->allocator.alloc_fn && desc->allocator.free_fn) || (!desc->allocator.alloc_fn && !desc->allocator.free_fn)); sgl_desc_t res = *desc; res.max_vertices = _sgl_def(desc->max_vertices, _SGL_DEFAULT_MAX_VERTICES); res.max_commands = _sgl_def(desc->max_commands, _SGL_DEFAULT_MAX_COMMANDS); diff --git a/util/sokol_imgui.h b/util/sokol_imgui.h index 2d4cd945..f34736b6 100644 --- a/util/sokol_imgui.h +++ b/util/sokol_imgui.h @@ -288,8 +288,8 @@ simgui_setup(&(simgui_desc_t){ // ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ...; } }); @@ -467,12 +467,12 @@ typedef enum simgui_log_item_t { Used in simgui_desc_t to provide custom memory-alloc and -free functions to sokol_imgui.h. If memory management should be overridden, both the - alloc and free function must be provided (e.g. it's not valid to + alloc_fn and free_fn function must be provided (e.g. it's not valid to override one function but not the other). */ typedef struct simgui_allocator_t { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } simgui_allocator_t; @@ -1965,8 +1965,8 @@ static void _simgui_clear(void* ptr, size_t size) { static void* _simgui_malloc(size_t size) { SOKOL_ASSERT(size > 0); void* ptr; - if (_simgui.desc.allocator.alloc) { - ptr = _simgui.desc.allocator.alloc(size, _simgui.desc.allocator.user_data); + if (_simgui.desc.allocator.alloc_fn) { + ptr = _simgui.desc.allocator.alloc_fn(size, _simgui.desc.allocator.user_data); } else { ptr = malloc(size); } @@ -1983,8 +1983,8 @@ static void* _simgui_malloc_clear(size_t size) { } static void _simgui_free(void* ptr) { - if (_simgui.desc.allocator.free) { - _simgui.desc.allocator.free(ptr, _simgui.desc.allocator.user_data); + if (_simgui.desc.allocator.free_fn) { + _simgui.desc.allocator.free_fn(ptr, _simgui.desc.allocator.user_data); } else { free(ptr); } @@ -2197,7 +2197,7 @@ static bool _simgui_is_osx(void) { } static simgui_desc_t _simgui_desc_defaults(const simgui_desc_t* desc) { - SOKOL_ASSERT((desc->allocator.alloc && desc->allocator.free) || (!desc->allocator.alloc && !desc->allocator.free)); + SOKOL_ASSERT((desc->allocator.alloc_fn && desc->allocator.free_fn) || (!desc->allocator.alloc_fn && !desc->allocator.free_fn)); simgui_desc_t res = *desc; res.max_vertices = _simgui_def(res.max_vertices, 65536); res.image_pool_size = _simgui_def(res.image_pool_size, 256); diff --git a/util/sokol_memtrack.h b/util/sokol_memtrack.h index dc0b469f..47f70fca 100644 --- a/util/sokol_memtrack.h +++ b/util/sokol_memtrack.h @@ -27,8 +27,8 @@ sg_setup(&(sg_desc){ //... .allocator = { - .alloc = smemtrack_alloc, - .free = smemtrack_free, + .alloc_fn = smemtrack_alloc, + .free_fn = smemtrack_free, } }); diff --git a/util/sokol_nuklear.h b/util/sokol_nuklear.h index ae4e9ae0..21ff55dd 100644 --- a/util/sokol_nuklear.h +++ b/util/sokol_nuklear.h @@ -223,8 +223,8 @@ snk_setup(&(snk_desc_t){ // ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ...; } }); @@ -383,12 +383,12 @@ typedef enum snk_log_item_t { Used in snk_desc_t to provide custom memory-alloc and -free functions to sokol_nuklear.h. If memory management should be overridden, both the - alloc and free function must be provided (e.g. it's not valid to + alloc_fn and free_fn function must be provided (e.g. it's not valid to override one function but not the other). */ typedef struct snk_allocator_t { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } snk_allocator_t; @@ -1891,8 +1891,8 @@ static void _snk_clear(void* ptr, size_t size) { static void* _snk_malloc(size_t size) { SOKOL_ASSERT(size > 0); void* ptr; - if (_snuklear.desc.allocator.alloc) { - ptr = _snuklear.desc.allocator.alloc(size, _snuklear.desc.allocator.user_data); + if (_snuklear.desc.allocator.alloc_fn) { + ptr = _snuklear.desc.allocator.alloc_fn(size, _snuklear.desc.allocator.user_data); } else { ptr = malloc(size); } @@ -1909,8 +1909,8 @@ static void* _snk_malloc_clear(size_t size) { } static void _snk_free(void* ptr) { - if (_snuklear.desc.allocator.free) { - _snuklear.desc.allocator.free(ptr, _snuklear.desc.allocator.user_data); + if (_snuklear.desc.allocator.free_fn) { + _snuklear.desc.allocator.free_fn(ptr, _snuklear.desc.allocator.user_data); } else { free(ptr); } diff --git a/util/sokol_spine.h b/util/sokol_spine.h index 5a9125ae..e09afbed 100644 --- a/util/sokol_spine.h +++ b/util/sokol_spine.h @@ -202,8 +202,8 @@ sspine_setup(&(sspine_desc){ .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ..., }, .logger = { @@ -908,8 +908,8 @@ sspine_setup(&(sspine_desc){ // ... .allocator = { - .alloc = my_alloc, - .free = my_free, + .alloc_fn = my_alloc, + .free_fn = my_free, .user_data = ...; } }); @@ -1198,8 +1198,8 @@ typedef struct sspine_instance_desc { } sspine_instance_desc; typedef struct sspine_allocator { - void* (*alloc)(size_t size, void* user_data); - void (*free)(void* ptr, void* user_data); + void* (*alloc_fn)(size_t size, void* user_data); + void (*free_fn)(void* ptr, void* user_data); void* user_data; } sspine_allocator; @@ -2893,8 +2893,8 @@ static sspine_string _sspine_string(const char* cstr) { static void* _sspine_malloc(size_t size) { SOKOL_ASSERT(size > 0); void* ptr; - if (_sspine.desc.allocator.alloc) { - ptr = _sspine.desc.allocator.alloc(size, _sspine.desc.allocator.user_data); + if (_sspine.desc.allocator.alloc_fn) { + ptr = _sspine.desc.allocator.alloc_fn(size, _sspine.desc.allocator.user_data); } else { ptr = malloc(size); } @@ -2911,8 +2911,8 @@ static void* _sspine_malloc_clear(size_t size) { } static void _sspine_free(void* ptr) { - if (_sspine.desc.allocator.free) { - _sspine.desc.allocator.free(ptr, _sspine.desc.allocator.user_data); + if (_sspine.desc.allocator.free_fn) { + _sspine.desc.allocator.free_fn(ptr, _sspine.desc.allocator.user_data); } else { free(ptr); } @@ -4392,7 +4392,7 @@ static void _sspine_draw_layer(_sspine_context_t* ctx, int layer, const sspine_l // return sspine_desc with patched defaults static sspine_desc _sspine_desc_defaults(const sspine_desc* desc) { - SOKOL_ASSERT((desc->allocator.alloc && desc->allocator.free) || (!desc->allocator.alloc && !desc->allocator.free)); + SOKOL_ASSERT((desc->allocator.alloc_fn && desc->allocator.free_fn) || (!desc->allocator.alloc_fn && !desc->allocator.free_fn)); sspine_desc res = *desc; res.max_vertices = _sspine_def(desc->max_vertices, _SSPINE_DEFAULT_MAX_VERTICES); res.max_commands = _sspine_def(desc->max_commands, _SSPINE_DEFAULT_MAX_COMMANDS); |