1
0
mirror of https://github.com/libretro/RetroArch synced 2024-07-05 09:48:42 +00:00

rarch_setting - we can downgrade flags and free_flags to 32bit

since the flags don't come anywhere near close to 64 unique flags
This commit is contained in:
LibretroAdmin 2022-10-05 04:34:47 +02:00
parent ffa1ae4143
commit 7d956b611c
3 changed files with 18 additions and 18 deletions

View File

@ -3119,7 +3119,7 @@ int menu_displaylist_parse_settings_enum(
ST_NONE, /* PARSE_SUB_GROUP */
ST_SIZE, /* PARSE_ONLY_SIZE */
};
uint64_t flags;
uint32_t flags;
enum setting_type precond = precond_lut[parse_type];
size_t count = 0;

View File

@ -1019,7 +1019,7 @@ int setting_set_with_string_representation(rarch_setting_t* setting,
{
char *ptr;
float min, max;
uint64_t flags;
uint32_t flags;
if (!setting || !value)
return -1;
@ -1033,9 +1033,9 @@ int setting_set_with_string_representation(rarch_setting_t* setting,
*setting->value.target.integer = (int)strtol(value, &ptr, 10);
if (flags & SD_FLAG_HAS_RANGE)
{
if (setting->flags & SD_FLAG_ENFORCE_MINRANGE && *setting->value.target.integer < min)
if (flags & SD_FLAG_ENFORCE_MINRANGE && *setting->value.target.integer < min)
*setting->value.target.integer = min;
if (setting->flags & SD_FLAG_ENFORCE_MAXRANGE && *setting->value.target.integer > max)
if (flags & SD_FLAG_ENFORCE_MAXRANGE && *setting->value.target.integer > max)
{
settings_t *settings = config_get_ptr();
if (settings && settings->bools.menu_navigation_wraparound_enable)
@ -1049,9 +1049,9 @@ int setting_set_with_string_representation(rarch_setting_t* setting,
*setting->value.target.unsigned_integer = (unsigned int)strtoul(value, &ptr, 10);
if (flags & SD_FLAG_HAS_RANGE)
{
if (setting->flags & SD_FLAG_ENFORCE_MINRANGE && *setting->value.target.unsigned_integer < min)
if (flags & SD_FLAG_ENFORCE_MINRANGE && *setting->value.target.unsigned_integer < min)
*setting->value.target.unsigned_integer = min;
if (setting->flags & SD_FLAG_ENFORCE_MAXRANGE && *setting->value.target.unsigned_integer > max)
if (flags & SD_FLAG_ENFORCE_MAXRANGE && *setting->value.target.unsigned_integer > max)
{
settings_t *settings = config_get_ptr();
if (settings && settings->bools.menu_navigation_wraparound_enable)
@ -1065,9 +1065,9 @@ int setting_set_with_string_representation(rarch_setting_t* setting,
sscanf(value, "%" PRI_SIZET, setting->value.target.sizet);
if (flags & SD_FLAG_HAS_RANGE)
{
if (setting->flags & SD_FLAG_ENFORCE_MINRANGE && *setting->value.target.sizet < min)
if (flags & SD_FLAG_ENFORCE_MINRANGE && *setting->value.target.sizet < min)
*setting->value.target.sizet = min;
if (setting->flags & SD_FLAG_ENFORCE_MAXRANGE && *setting->value.target.sizet > max)
if (flags & SD_FLAG_ENFORCE_MAXRANGE && *setting->value.target.sizet > max)
{
settings_t *settings = config_get_ptr();
if (settings && settings->bools.menu_navigation_wraparound_enable)
@ -1082,9 +1082,9 @@ int setting_set_with_string_representation(rarch_setting_t* setting,
*setting->value.target.fraction = (float)strtod(value, &ptr);
if (flags & SD_FLAG_HAS_RANGE)
{
if (setting->flags & SD_FLAG_ENFORCE_MINRANGE && *setting->value.target.fraction < min)
if (flags & SD_FLAG_ENFORCE_MINRANGE && *setting->value.target.fraction < min)
*setting->value.target.fraction = min;
if (setting->flags & SD_FLAG_ENFORCE_MAXRANGE && *setting->value.target.fraction > max)
if (flags & SD_FLAG_ENFORCE_MAXRANGE && *setting->value.target.fraction > max)
{
settings_t *settings = config_get_ptr();
if (settings && settings->bools.menu_navigation_wraparound_enable)
@ -7027,7 +7027,7 @@ static void menu_settings_list_current_add_range(
int menu_setting_generic(rarch_setting_t *setting, size_t idx, bool wraparound)
{
uint64_t flags = setting->flags;
uint32_t flags = setting->flags;
if (setting_generic_action_ok_default(setting, idx, wraparound) != 0)
return -1;
@ -7722,12 +7722,13 @@ static enum event_command write_handler_get_cmd(rarch_setting_t *setting)
{
if (setting && setting->cmd_trigger_idx != CMD_EVENT_NONE)
{
if (setting->flags & SD_FLAG_EXIT)
uint32_t flags = setting->flags;
if (flags & SD_FLAG_EXIT)
if (*setting->value.target.boolean)
*setting->value.target.boolean = false;
if ( (setting->flags & SD_FLAG_CMD_TRIGGER_EVENT_TRIGGERED) ||
(setting->flags & SD_FLAG_CMD_APPLY_AUTO))
if ( (flags & SD_FLAG_CMD_TRIGGER_EVENT_TRIGGERED) ||
(flags & SD_FLAG_CMD_APPLY_AUTO))
return setting->cmd_trigger_idx;
}
return CMD_EVENT_NONE;
@ -21705,7 +21706,7 @@ void menu_setting_free(rarch_setting_t *setting)
/* Free data which was previously tagged */
for (; setting->type != ST_NONE; (*list = *list + 1))
for (values = (unsigned)setting->free_flags, n = 0; values != 0; values >>= 1, n++)
for (values = setting->free_flags, n = 0; values != 0; values >>= 1, n++)
if (values & 1)
switch (1 << n)
{

View File

@ -117,9 +117,6 @@ struct rarch_setting_group_info
struct rarch_setting
{
uint64_t flags;
uint64_t free_flags;
float min;
float max;
struct
@ -186,6 +183,8 @@ struct rarch_setting
bool boolean;
} original_value;
uint32_t flags;
uint32_t free_flags;
uint32_t index_offset;
uint32_t size;
unsigned bind_type;