瀏覽代碼

libobs: Remove redundant get_data calls in obs_data functions

Richard Stanway 3 年之前
父節點
當前提交
ad11ae2f5c
共有 1 個文件被更改,包括 14 次插入9 次删除
  1. 14 9
      libobs/obs-data.c

+ 14 - 9
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;
 }