From 99bf1b1f9874f09a5c93f125f8f9a28faa2025a3 Mon Sep 17 00:00:00 2001 From: Sreerenj Balachandran Date: Wed, 22 Jan 2014 08:20:59 +0200 Subject: [PATCH] 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 --- gst-libs/gst/vaapi/gstvaapiobject.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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); -- 2.7.4