mirror of
https://github.com/encounter/SDL.git
synced 2025-12-09 05:27:48 +00:00
Small stack allocations fall back to malloc if they're unexpectedly large.
This commit is contained in:
@@ -61,12 +61,13 @@ SDL_LoadFunction(void *handle, const char *name)
|
||||
void *symbol = dlsym(handle, name);
|
||||
if (symbol == NULL) {
|
||||
/* append an underscore for platforms that need that. */
|
||||
SDL_bool isstack;
|
||||
size_t len = 1 + SDL_strlen(name) + 1;
|
||||
char *_name = SDL_stack_alloc(char, len);
|
||||
char *_name = SDL_small_alloc(char, len, &isstack);
|
||||
_name[0] = '_';
|
||||
SDL_strlcpy(&_name[1], name, len);
|
||||
symbol = dlsym(handle, _name);
|
||||
SDL_stack_free(_name);
|
||||
SDL_small_free(_name, isstack);
|
||||
if (symbol == NULL) {
|
||||
SDL_SetError("Failed loading %s: %s", name,
|
||||
(const char *) dlerror());
|
||||
|
||||
Reference in New Issue
Block a user