Allow environment hint overrides before hints are initialized

Fixes https://github.com/libsdl-org/SDL/issues/10514
This commit is contained in:
Sam Lantinga 2024-08-09 13:26:49 -07:00
parent 78b1e0e299
commit 2b853121fe
1 changed files with 10 additions and 12 deletions

View File

@ -196,23 +196,21 @@ const char *SDL_GetHint(const char *name)
return NULL;
}
const SDL_PropertiesID hints = GetHintProperties(SDL_FALSE);
if (!hints) {
return NULL;
}
const char *retval = SDL_getenv(name);
SDL_LockProperties(hints);
const SDL_PropertiesID hints = GetHintProperties(SDL_FALSE);
if (hints) {
SDL_LockProperties(hints);
SDL_Hint *hint = SDL_GetPointerProperty(hints, name, NULL);
if (hint) {
if (!retval || hint->priority == SDL_HINT_OVERRIDE) {
retval = SDL_GetPersistentString(hint->value);
SDL_Hint *hint = SDL_GetPointerProperty(hints, name, NULL);
if (hint) {
if (!retval || hint->priority == SDL_HINT_OVERRIDE) {
retval = SDL_GetPersistentString(hint->value);
}
}
}
SDL_UnlockProperties(hints);
SDL_UnlockProperties(hints);
}
return retval;
}