summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2010-03-12 15:36:38 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2010-03-12 15:40:37 +0100
commit1d316d75bb3de509366df844a758cdcfff44a797 (patch)
treed1bb0ff4fad910d63e65f05e04d9dd313dce3cdf
parentcc05668e9d36d8bedcdcffa6ffea3d4c8db25b0c (diff)
interpolationcontrolsource: Don't pass NULL to the GSequence API
-rw-r--r--libs/gst/controller/gstinterpolation.c30
1 files changed, 22 insertions, 8 deletions
diff --git a/libs/gst/controller/gstinterpolation.c b/libs/gst/controller/gstinterpolation.c
index d22513a832..a2dc0ddd12 100644
--- a/libs/gst/controller/gstinterpolation.c
+++ b/libs/gst/controller/gstinterpolation.c
@@ -162,10 +162,14 @@ interpolate_none_get_##type##_value_array (GstInterpolationControlSource *self,
for(i = 0; i < value_array->nbsamples; i++) { \
if (!ret_val || ts >= next_ts) { \
iter1 = gst_interpolation_control_source_find_control_point_iter (self, ts); \
- if (!iter1) \
- iter2 = g_sequence_get_begin_iter (self->priv->values); \
- else \
+ if (!iter1) { \
+ if (G_LIKELY (self->priv->values)) \
+ iter2 = g_sequence_get_begin_iter (self->priv->values); \
+ else \
+ iter2 = NULL; \
+ } else { \
iter2 = g_sequence_iter_next (iter1); \
+ } \
\
if (iter2 && !g_sequence_iter_is_end (iter2)) { \
GstControlPoint *cp; \
@@ -318,10 +322,14 @@ interpolate_trigger_get_##type##_value_array (GstInterpolationControlSource *sel
for(i = 0; i < value_array->nbsamples; i++) { \
if (!ret_val || ts >= next_ts) { \
iter1 = gst_interpolation_control_source_find_control_point_iter (self, ts); \
- if (!iter1) \
- iter2 = g_sequence_get_begin_iter (self->priv->values); \
- else \
+ if (!iter1) { \
+ if (G_LIKELY (self->priv->values)) \
+ iter2 = g_sequence_get_begin_iter (self->priv->values); \
+ else \
+ iter2 = NULL; \
+ } else { \
iter2 = g_sequence_iter_next (iter1); \
+ } \
\
if (iter2 && !g_sequence_iter_is_end (iter2)) { \
GstControlPoint *cp; \
@@ -484,7 +492,10 @@ interpolate_linear_get_##vtype##_value_array (GstInterpolationControlSource *sel
iter1 = gst_interpolation_control_source_find_control_point_iter (self, ts); \
if (!iter1) { \
cp1 = &cp; \
- iter2 = g_sequence_get_begin_iter (self->priv->values); \
+ if (G_LIKELY (self->priv->values)) \
+ iter2 = g_sequence_get_begin_iter (self->priv->values); \
+ else \
+ iter2 = NULL; \
} else { \
cp1 = g_sequence_get (iter1); \
iter2 = g_sequence_iter_next (iter1); \
@@ -739,7 +750,10 @@ interpolate_cubic_get_##vtype##_value_array (GstInterpolationControlSource *self
iter1 = gst_interpolation_control_source_find_control_point_iter (self, ts); \
if (!iter1) { \
cp1 = &cp; \
- iter2 = g_sequence_get_begin_iter (self->priv->values); \
+ if (G_LIKELY (self->priv->values)) \
+ iter2 = g_sequence_get_begin_iter (self->priv->values); \
+ else \
+ iter2 = NULL; \
} else { \
cp1 = g_sequence_get (iter1); \
iter2 = g_sequence_iter_next (iter1); \