mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-06-26 07:48:42 +00:00
Fixed storing a key in the persistent string hashtable that's about to be freed
This commit is contained in:
parent
1d5f9c7b92
commit
9da58e9fb7
1 changed files with 4 additions and 4 deletions
|
|
@ -352,16 +352,16 @@ const char *SDL_GetPersistentString(const char *string)
|
|||
SDL_SetTLS(&SDL_string_storage, strings, SDL_FreePersistentStrings);
|
||||
}
|
||||
|
||||
const void *retval;
|
||||
if (!SDL_FindInHashTable(strings, string, &retval)) {
|
||||
const char *retval;
|
||||
if (!SDL_FindInHashTable(strings, string, (const void **)&retval)) {
|
||||
char *new_string = SDL_strdup(string);
|
||||
if (!new_string) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// If the hash table insert fails, at least we can return the string we allocated
|
||||
SDL_InsertIntoHashTable(strings, new_string, new_string);
|
||||
retval = new_string;
|
||||
SDL_InsertIntoHashTable(strings, string, retval);
|
||||
}
|
||||
return (const char *)retval;
|
||||
return retval;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue