[Cogl] [PATCH 1/2] cogl-gst: protect public API using type checks

Robert Bragg robert at sixbynine.org
Tue Jul 9 05:24:26 PDT 2013


This looks good to land to me:

Reviewed-by: Robert Bragg <robert at linux.intel.com>

thanks,
- Robert

On Mon, Jul 8, 2013 at 2:41 PM, Lionel Landwerlin <llandwerlin at gmail.com> wrote:
> ---
>  cogl-gst/cogl-gst-video-sink.c | 37 ++++++++++++++++++++++++++++++++-----
>  1 file changed, 32 insertions(+), 5 deletions(-)
>
> diff --git a/cogl-gst/cogl-gst-video-sink.c b/cogl-gst/cogl-gst-video-sink.c
> index b4dada5..22326e5 100644
> --- a/cogl-gst/cogl-gst-video-sink.c
> +++ b/cogl-gst/cogl-gst-video-sink.c
> @@ -246,6 +246,8 @@ void
>  cogl_gst_video_sink_set_first_layer (CoglGstVideoSink *sink,
>                                       int first_layer)
>  {
> +  g_return_if_fail (COGL_GST_IS_VIDEO_SINK (sink));
> +
>    if (first_layer != sink->priv->custom_start)
>      {
>        sink->priv->custom_start = first_layer;
> @@ -261,6 +263,8 @@ void
>  cogl_gst_video_sink_set_default_sample (CoglGstVideoSink *sink,
>                                          CoglBool default_sample)
>  {
> +  g_return_if_fail (COGL_GST_IS_VIDEO_SINK (sink));
> +
>    if (default_sample != sink->priv->default_sample)
>      {
>        sink->priv->default_sample = default_sample;
> @@ -272,7 +276,10 @@ void
>  cogl_gst_video_sink_setup_pipeline (CoglGstVideoSink *sink,
>                                      CoglPipeline *pipeline)
>  {
> -  sink->priv->renderer->setup_pipeline (sink, pipeline);
> +  g_return_if_fail (COGL_GST_IS_VIDEO_SINK (sink));
> +
> +  if (sink->priv->renderer)
> +    sink->priv->renderer->setup_pipeline (sink, pipeline);
>  }
>
>  static SnippetCacheEntry *
> @@ -368,7 +375,11 @@ setup_pipeline_from_cache_entry (CoglGstVideoSink *sink,
>  CoglPipeline *
>  cogl_gst_video_sink_get_pipeline (CoglGstVideoSink *vt)
>  {
> -  CoglGstVideoSinkPrivate *priv = vt->priv;
> +  CoglGstVideoSinkPrivate *priv;
> +
> +  g_return_val_if_fail (COGL_GST_IS_VIDEO_SINK (vt), NULL);
> +
> +  priv = vt->priv;
>
>    if (priv->pipeline == NULL)
>      {
> @@ -1272,7 +1283,11 @@ cogl_gst_video_sink_new (CoglContext *ctx)
>  float
>  cogl_gst_video_sink_get_aspect (CoglGstVideoSink *vt)
>  {
> -  GstVideoInfo *info = &vt->priv->info;
> +  GstVideoInfo *info;
> +
> +  g_return_val_if_fail (COGL_GST_IS_VIDEO_SINK (vt), 0.);
> +
> +  info = &vt->priv->info;
>    return ((float)info->width * (float)info->par_n) /
>      ((float)info->height * (float)info->par_d);
>  }
> @@ -1281,7 +1296,11 @@ float
>  cogl_gst_video_sink_get_width_for_height (CoglGstVideoSink *vt,
>                                            float height)
>  {
> -  float aspect = cogl_gst_video_sink_get_aspect (vt);
> +  float aspect;
> +
> +  g_return_val_if_fail (COGL_GST_IS_VIDEO_SINK (vt), 0.);
> +
> +  aspect = cogl_gst_video_sink_get_aspect (vt);
>    return height * aspect;
>  }
>
> @@ -1289,7 +1308,11 @@ float
>  cogl_gst_video_sink_get_height_for_width (CoglGstVideoSink *vt,
>                                            float width)
>  {
> -  float aspect = cogl_gst_video_sink_get_aspect (vt);
> +  float aspect;
> +
> +  g_return_val_if_fail (COGL_GST_IS_VIDEO_SINK (vt), 0.);
> +
> +  aspect = cogl_gst_video_sink_get_aspect (vt);
>    return width / aspect;
>  }
>
> @@ -1298,6 +1321,10 @@ cogl_gst_video_sink_fit_size (CoglGstVideoSink *vt,
>                                const CoglGstRectangle *available,
>                                CoglGstRectangle *output)
>  {
> +  g_return_if_fail (COGL_GST_IS_VIDEO_SINK (vt));
> +  g_return_if_fail (available != NULL);
> +  g_return_if_fail (output != NULL);
> +
>    if (available->height == 0.0f)
>      {
>        output->x = available->x;
> --
> 1.8.3.2
>
> _______________________________________________
> Cogl mailing list
> Cogl at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/cogl


More information about the Cogl mailing list