GstVaapiObject: make gst_vaapi_object_new() more robust.
authorSreerenj Balachandran <sreerenj.balachandran@intel.com>
Wed, 22 Jan 2014 06:20:59 +0000 (08:20 +0200)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 3 Jul 2014 21:50:11 +0000 (23:50 +0200)
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 <gwenole.beauchesne@intel.com>
gst-libs/gst/vaapi/gstvaapiobject.c

index 5069dbf..0d8856a 100644 (file)
@@ -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);