From: Sreerenj Balachandran Date: Wed, 22 Jan 2014 06:20:59 +0000 (+0200) Subject: GstVaapiObject: make gst_vaapi_object_new() more robust. X-Git-Tag: 0.5.9~34 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Fgstreamer-vaapi.git;a=commitdiff_plain;h=99bf1b1f9874f09a5c93f125f8f9a28faa2025a3 GstVaapiObject: make gst_vaapi_object_new() more robust. Forbid GstVaapiObject to be created without an associated klass spec. It is mandatory that the subclass implements an adequate .finalize() hook, so it shall provide a valid GstVaapiObjectClass. https://bugzilla.gnome.org/show_bug.cgi?id=722757 [made non-NULL klass argument to gst_vaapi_object_new() a requirement] Signed-off-by: Gwenole Beauchesne --- diff --git a/gst-libs/gst/vaapi/gstvaapiobject.c b/gst-libs/gst/vaapi/gstvaapiobject.c index 5069dbf..0d8856a 100644 --- a/gst-libs/gst/vaapi/gstvaapiobject.c +++ b/gst-libs/gst/vaapi/gstvaapiobject.c @@ -67,10 +67,8 @@ gst_vaapi_object_class_init(GstVaapiObjectClass *klass, guint size) * @klass: The object class * @display: The #GstVaapiDisplay * - * Creates a new #GstVaapiObject. If @klass is NULL, then the size of - * the allocated object is the same as sizeof(GstVaapiObject). - * If @klass is not NULL, typically when a sub-class is implemented, - * that pointer shall reference a statically allocated descriptor. + * Creates a new #GstVaapiObject. The @klass argument shall not be + * %NULL, and it must reference a statically allocated descriptor. * * This function zero-initializes the derived object data. Also note * that this is an internal function that shall not be used outside of @@ -86,6 +84,7 @@ gst_vaapi_object_new(const GstVaapiObjectClass *klass, GstVaapiDisplay *display) GstVaapiObject *object; guint sub_size; + g_return_val_if_fail(klass != NULL, NULL); g_return_val_if_fail(display != NULL, NULL); object = (GstVaapiObject *)gst_vaapi_mini_object_new(object_class);