Hi,

Kang Jeong-Hee <[EMAIL PROTECTED]> writes:

> I've found gtktypeutils.h define GTK_CHECK_CAST with comment of
>       /* glib macro wrappers (compatibility) */.
> is that meaning I'd better not to use SOME_CHECK_CAST, but to use directly 
>G_TYPE_CHECK_INSTANCE_CAST?
> 
> for example, GStreamer do not use GST_CHECK_CAST, refer directly to G_TYPE_...
> """
> #define GST_OBJECT_CAST(obj)            ((GstObject*)(obj))
> #define GST_OBJECT_CLASS_CAST(klass)    ((GstObjectClass*)(klass))
> 
> #ifdef GST_TYPE_PARANOID
> # define GST_OBJECT(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
>GST_TYPE_OBJECT, GstObject))
> # define GST_OBJECT_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), 
>GST_TYPE_OBJECT, GstObjectClass))
> #else
> # define GST_OBJECT                     GST_OBJECT_CAST
> # define GST_OBJECT_CLASS               GST_OBJECT_CLASS_CAST
> #endif
> """
> 
> that form of definition is new GTK+-2.x stlye?

Some of the macros changed their name since the object system is now
independent from GTK+ and lives in GObject which is part of GLib.
However this looks pretty much GStreamer-specific. Normally you'd
write something like this:

#define GIMP_TYPE_IMAGE            (gimp_image_get_type ())
#define GIMP_IMAGE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
GIMP_TYPE_IMAGE, GimpImage))
#define GIMP_IMAGE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_IMAGE, 
GimpImageClass))
#define GIMP_IS_IMAGE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
GIMP_TYPE_IMAGE))
#define GIMP_IS_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_IMAGE))
#define GIMP_IMAGE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_IMAGE, 
GimpImageClass))


I don't think it makes sense to introduce things like GST_TYPE_PARANOID
to switch expensive type-checking casts on and off since the same effect
can be achieved by using G_DISABLE_CHECKS as provided by Glib.


Salut, Sven
_______________________________________________
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to