summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAshish Kumar <kr.ashish@samsung.com>2017-11-07 12:04:03 +0530
committerTim-Philipp Müller <tim@centricular.com>2017-11-21 14:13:53 +0100
commit23e9044b4e3df5f9ef03b873b2c09be046c93cb7 (patch)
tree9f970df70d07cffbc7e5ce63fddb117142197ac9
parentf20876b9dbe62b1a523d597b80c450ea82acb284 (diff)
GESAsset, GESLayer: add some function guards
https://bugzilla.gnome.org/show_bug.cgi?id=789521
-rw-r--r--ges/ges-asset.c12
-rw-r--r--ges/ges-layer.c9
2 files changed, 20 insertions, 1 deletions
diff --git a/ges/ges-asset.c b/ges/ges-asset.c
index 0419b9bcd6..6ff643cec6 100644
--- a/ges/ges-asset.c
+++ b/ges/ges-asset.c
@@ -641,6 +641,8 @@ gboolean
ges_asset_request_id_update (GESAsset * asset, gchar ** proposed_id,
GError * error)
{
+ g_return_val_if_fail (GES_IS_ASSET (asset), FALSE);
+
return GES_ASSET_GET_CLASS (asset)->request_id_update (asset, proposed_id,
error);
}
@@ -650,6 +652,8 @@ ges_asset_try_proxy (GESAsset * asset, const gchar * new_id)
{
GESAssetClass *class;
+ g_return_val_if_fail (GES_IS_ASSET (asset), FALSE);
+
if (g_strcmp0 (asset->priv->id, new_id) == 0) {
GST_WARNING_OBJECT (asset, "Trying to proxy to itself (%s),"
" NOT possible", new_id);
@@ -868,7 +872,11 @@ ges_asset_set_id (GESAsset * asset, const gchar * id)
gpointer orig_id = NULL;
GESAssetCacheEntry *entry = NULL;
- GESAssetPrivate *priv = asset->priv;
+ GESAssetPrivate *priv = NULL;
+
+ g_return_if_fail (GES_IS_ASSET (asset));
+
+ priv = asset->priv;
if (priv->state != ASSET_INITIALIZED) {
GST_WARNING_OBJECT (asset, "Trying to rest ID on an object that is"
@@ -935,6 +943,8 @@ _unsure_material_for_wrong_id (const gchar * wrong_id, GType extractable_type,
GType
ges_asset_get_extractable_type (GESAsset * self)
{
+ g_return_val_if_fail (GES_IS_ASSET (self), G_TYPE_INVALID);
+
return self->priv->extractable_type;
}
diff --git a/ges/ges-layer.c b/ges/ges-layer.c
index 3e4c1876c8..9863ce6869 100644
--- a/ges/ges-layer.c
+++ b/ges/ges-layer.c
@@ -268,6 +268,8 @@ ges_layer_resync_priorities (GESLayer * layer)
{
gint min_source_prios;
+ g_return_val_if_fail (GES_IS_LAYER (layer), FALSE);
+
GST_INFO_OBJECT (layer, "Resync priorities (prio: %d)",
layer->priv->priority);
@@ -342,6 +344,8 @@ ges_layer_get_duration (GESLayer * layer)
GList *tmp;
GstClockTime duration = 0;
+ g_return_val_if_fail (GES_IS_LAYER (layer), 0);
+
for (tmp = layer->priv->clips_start; tmp; tmp = tmp->next) {
duration = MAX (duration, _END (tmp->data));
}
@@ -728,6 +732,8 @@ ges_layer_set_timeline (GESLayer * layer, GESTimeline * timeline)
{
GList *tmp;
+ g_return_if_fail (GES_IS_LAYER (layer));
+
GST_DEBUG ("layer:%p, timeline:%p", layer, timeline);
for (tmp = layer->priv->clips_start; tmp; tmp = tmp->next) {
@@ -755,6 +761,9 @@ ges_layer_get_clips_in_interval (GESLayer * layer, GstClockTime start,
GList *intersecting_clips = NULL;
GstClockTime clip_start, clip_end;
gboolean clip_intersects;
+
+ g_return_val_if_fail (GES_IS_LAYER (layer), NULL);
+
for (tmp = layer->priv->clips_start; tmp; tmp = tmp->next) {
clip_intersects = FALSE;
clip_start = ges_timeline_element_get_start (tmp->data);