From ad11ae2f5cf8a99c88d027d7c2b4553b3f2848f2 Mon Sep 17 00:00:00 2001 From: Richard Stanway Date: Wed, 27 Jul 2022 12:49:33 +0200 Subject: [PATCH] libobs: Remove redundant get_data calls in obs_data functions --- libobs/obs-data.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/libobs/obs-data.c b/libobs/obs-data.c index 71c10d02c..55d7366d1 100644 --- a/libobs/obs-data.c +++ b/libobs/obs-data.c @@ -1748,16 +1748,18 @@ typedef void *(*get_data_t)(obs_data_item_t *); static inline const char *data_item_get_string(obs_data_item_t *item, get_data_t get_data) { - return item_valid(item, OBS_DATA_STRING) && get_data(item) - ? get_data(item) - : ""; + const char *str; + + return item_valid(item, OBS_DATA_STRING) && (str = get_data(item)) ? str + : ""; } static inline long long item_int(struct obs_data_item *item, get_data_t get_data) { - if (item && get_data(item)) { - struct obs_data_number *num = get_data(item); + struct obs_data_number *num; + + if (item && (num = get_data(item))) { return (num->type == OBS_DATA_NUM_INT) ? num->int_val : (long long)num->double_val; @@ -1776,8 +1778,9 @@ static inline long long data_item_get_int(obs_data_item_t *item, static inline double item_double(struct obs_data_item *item, get_data_t get_data) { - if (item && get_data(item)) { - struct obs_data_number *num = get_data(item); + struct obs_data_number *num; + + if (item && (num = get_data(item))) { return (num->type == OBS_DATA_NUM_INT) ? (double)num->int_val : num->double_val; } @@ -1795,8 +1798,10 @@ static inline double data_item_get_double(obs_data_item_t *item, static inline bool data_item_get_bool(obs_data_item_t *item, get_data_t get_data) { - return item_valid(item, OBS_DATA_BOOLEAN) && get_data(item) - ? *(bool *)get_data(item) + bool *data; + + return item_valid(item, OBS_DATA_BOOLEAN) && (data = get_data(item)) + ? *data : false; }