Add more checks for NULL pointers

This commit is contained in:
jp9000
2014-02-23 22:39:33 -07:00
parent 096cce9a86
commit 268e4e7811
20 changed files with 589 additions and 133 deletions

View File

@@ -244,7 +244,7 @@ obs_source_t obs_scene_getsource(obs_scene_t scene)
obs_scene_t obs_scene_fromsource(obs_source_t source)
{
if (source->info.type != OBS_SOURCE_TYPE_SCENE)
if (!source || source->info.type != OBS_SOURCE_TYPE_SCENE)
return NULL;
return source->data;
@@ -254,6 +254,9 @@ obs_sceneitem_t obs_scene_findsource(obs_scene_t scene, const char *name)
{
struct obs_scene_item *item;
if (!scene)
return NULL;
pthread_mutex_lock(&scene->mutex);
item = scene->first_item;
@@ -275,6 +278,9 @@ void obs_scene_enum_items(obs_scene_t scene,
{
struct obs_scene_item *item;
if (!scene || !callback)
return;
pthread_mutex_lock(&scene->mutex);
item = scene->first_item;
@@ -397,36 +403,42 @@ void obs_sceneitem_remove(obs_sceneitem_t item)
obs_scene_t obs_sceneitem_getscene(obs_sceneitem_t item)
{
return item->parent;
return item ? item->parent : NULL;
}
obs_source_t obs_sceneitem_getsource(obs_sceneitem_t item)
{
return item->source;
return item ? item->source : NULL;
}
void obs_sceneitem_setpos(obs_sceneitem_t item, const struct vec2 *pos)
{
vec2_copy(&item->pos, pos);
if (item)
vec2_copy(&item->pos, pos);
}
void obs_sceneitem_setrot(obs_sceneitem_t item, float rot)
{
item->rot = rot;
if (item)
item->rot = rot;
}
void obs_sceneitem_setorigin(obs_sceneitem_t item, const struct vec2 *origin)
{
vec2_copy(&item->origin, origin);
if (item)
vec2_copy(&item->origin, origin);
}
void obs_sceneitem_setscale(obs_sceneitem_t item, const struct vec2 *scale)
{
vec2_copy(&item->scale, scale);
if (item)
vec2_copy(&item->scale, scale);
}
void obs_sceneitem_setorder(obs_sceneitem_t item, enum order_movement movement)
{
if (!item) return;
struct obs_scene *scene = item->parent;
obs_scene_addref(scene);
@@ -461,20 +473,23 @@ void obs_sceneitem_setorder(obs_sceneitem_t item, enum order_movement movement)
void obs_sceneitem_getpos(obs_sceneitem_t item, struct vec2 *pos)
{
vec2_copy(pos, &item->pos);
if (item)
vec2_copy(pos, &item->pos);
}
float obs_sceneitem_getrot(obs_sceneitem_t item)
{
return item->rot;
return item ? item->rot : 0.0f;
}
void obs_sceneitem_getorigin(obs_sceneitem_t item, struct vec2 *origin)
{
vec2_copy(origin, &item->origin);
if (item)
vec2_copy(origin, &item->origin);
}
void obs_sceneitem_getscale(obs_sceneitem_t item, struct vec2 *scale)
{
vec2_copy(scale, &item->scale);
if (item)
vec2_copy(scale, &item->scale);
}