aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md10
-rw-r--r--README.md2
-rw-r--r--sokol_app.h23
-rw-r--r--sokol_args.h24
-rw-r--r--sokol_audio.h26
-rw-r--r--sokol_fetch.h24
-rw-r--r--sokol_gfx.h26
-rw-r--r--util/sokol_debugtext.h20
-rw-r--r--util/sokol_fontstash.h20
-rw-r--r--util/sokol_gfx_imgui.h22
-rw-r--r--util/sokol_gl.h18
-rw-r--r--util/sokol_imgui.h20
-rw-r--r--util/sokol_memtrack.h4
-rw-r--r--util/sokol_nuklear.h18
-rw-r--r--util/sokol_spine.h22
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
diff --git a/README.md b/README.md
index bf78c85b..8349a6d8 100644
--- a/README.md
+++ b/README.md
@@ -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)
[![Build](/../../actions/workflows/main.yml/badge.svg)](/../../actions/workflows/main.yml) [![Bindings](/../../actions/workflows/gen_bindings.yml/badge.svg)](/../../actions/workflows/gen_bindings.yml) [![build](https://github.com/floooh/sokol-zig/actions/workflows/main.yml/badge.svg)](https://github.com/floooh/sokol-zig/actions/workflows/main.yml) [![build](https://github.com/floooh/sokol-nim/actions/workflows/main.yml/badge.svg)](https://github.com/floooh/sokol-nim/actions/workflows/main.yml) [![Odin](https://github.com/floooh/sokol-odin/actions/workflows/main.yml/badge.svg)](https://github.com/floooh/sokol-odin/actions/workflows/main.yml)[![Rust](https://github.com/floooh/sokol-rust/actions/workflows/main.yml/badge.svg)](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);