From ed8a06bf65698573c0fcc2e871277efe20a6ac69 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Sun, 6 Sep 2015 15:26:47 -0700 Subject: [PATCH] libobs: Add validity checks for obs objects These functions are intended to log a warning when an obs function is called with a null object. --- libobs/obs-internal.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/libobs/obs-internal.h b/libobs/obs-internal.h index 0b36d469d..716e1649f 100644 --- a/libobs/obs-internal.h +++ b/libobs/obs-internal.h @@ -48,6 +48,40 @@ struct draw_callback { void *param; }; +/* ------------------------------------------------------------------------- */ +/* validity checks */ + +static inline bool obs_object_valid(const void *obj, const char *f, + const char *t) +{ + if (!obj) { + blog(LOG_WARNING, "Null %s passed to %s!", t, f); + return false; + } + + return true; +} + +static inline bool obs_source_valid(const obs_source_t *obj, const char *f) +{ + return obs_object_valid(obj, f, "source"); +} + +static inline bool obs_output_valid(const obs_output_t *obj, const char *f) +{ + return obs_object_valid(obj, f, "output"); +} + +static inline bool obs_encoder_valid(const obs_encoder_t *obj, const char *f) +{ + return obs_object_valid(obj, f, "encoder"); +} + +static inline bool obs_service_valid(const obs_service_t *obj, const char *f) +{ + return obs_object_valid(obj, f, "service"); +} + /* ------------------------------------------------------------------------- */ /* modules */