This adds the two new functions g_type_add_class_private()
and g_type_class_get_private() and a convenience macro
for the getter G_TYPE_CLASS_GET_PRIVATE().
Tools like clang fail to recognize that stanzas like
g_return_if_fail (GTK_IS_FOO (w)) guarantee w != NULL. By minimally
rewriting the type-checking macros, we can avoid these false positives.
2008-07-27 Tor Lillqvist <tml@novell.com>
* gtype.h
* gtype.c: Revert my change from 2008-07-24. No G_TYPE_FORMAT is
needed. Just use G_GSIZE_FORMAT always when printing GType values.
svn path=/trunk/; revision=7256
2008-07-24 Tor Lillqvist <tml@novell.com>
* gtype.h: Define G_TYPE_FORMAT as the printf format for a GType
value. Either G_GSIZE_FORMAT or "lu".
* gtype.c: Use it instead of the C99 zu.
svn path=/trunk/; revision=7250
* docs/reference/gobject/tmpl/gobject-unused.sgml:
* gobject/gobject.h:
* gobject/gtype.c:
* gobject/gtype.h:
Move some content for gobject-unused.sgml and cleared empty entries.
The remaining 4 ones should be checked by some else. If they are not
needed. The file can be removed.
svn path=/trunk/; revision=7087
Fri Jun 22 11:31:27 2007 Tim Janik <timj@gtk.org>
* gtype.h: reintroduce typedef gulong GType; for C++, to avoid
C++ specific ABI breakage.
svn path=/trunk/; revision=5582
Thu Jun 14 23:32:00 2007 Tim Janik <timj@gtk.org>
* gtype.h: always define GType unconditionally in terms of gsize,
there's no need to jump through a glong hoop ever and this fixes
the printf modifier to %zu.
svn path=/trunk/; revision=5560
2007-05-17 Matthias Clasen <mclasen@redhat.com>
* configure.in: Move the compiler-dependency in the G_GNUC_INTERNAL
definition from configure-time to runtime (of the compiler).
(#438869, Damien Carbery)
* glib/gdebug.h:
* glib/gmessages.h:
* glib/gunicodeprivate.h:
* glib/gthreadprivate.h: Move G_GNUC_INTERNAL before function
declarations to fix compilation with sun studio. (#438873,
Damien Carbery)
svn path=/trunk/; revision=5497
Mon Mar 12 13:30:20 2007 Tim Janik <timj@gtk.org>
* gtype.h: marked purely functional g_type accessors as PURE or CONST,
closes#305100.
svn path=/trunk/; revision=5400
Tue May 2 14:51:03 2006 Tim Janik <timj@gtk.org>
* gtype.h: split up G_DEFINE_*TYPE macro definitions so C CODE arguments
are not passed on to nested macro calls. patch mostly courtesy of Behdad
Esfahbod, fixes#337128.
2005-09-28 Michael Natterer <mitch@gimp.org>
* gtype.h (G_IMPLEMENT_INTERFACE): revert last change, it breaks
all users of G_IMPLEMENT_INTERFACE() inside
G_DEFINE_TYPE_WITH_CODE(), since apparently GCC doesn't like
commas enclosed in {}, not (), in nested macro calls.
2004-10-23 Matthias Clasen <mclasen@redhat.com>
* gtype.h (GTypeInterfaceCheckFunc): Rename first parameter to
check_data, since apparently the system headers on AIX leak a
macro named func_data. (#155178, Andrea Campi)
2004-09-16 Matthias Clasen <mclasen@redhat.com>
Add ABI control using the same technique that is used in GTK+.
* gobject.symbols: Master list of symbols.
* gobject.def: Removed. It is now generated from gobject.symbols.
* Makefile.am (gobject.def): Generate from gobject.symbols.
(TESTS): Add abicheck.sh
(EXTRA_DIST): Add abicheck.sh
(export_symbols): Don't export _-prefixed symbols.
* gtype.h:
* gtype.c: Move the declarations of the various _init() functions
to the header, and mark them as G_GNUC_INTERNAL.
Wed Jun 23 12:55:34 2004 Matthias Clasen <maclas@gmx.de>
* gtype.h (G_DEFINE_TYPE_EXTENDED): Add an initializer for
the g_define_type_info.value_table. (#144678,Mariano
Suárez-Alvarez)
Tue Feb 3 21:24:01 2004 Tim Janik <timj@gtk.org>
* gtype.h (_G_TYPE_CVH): provide a short-cut version for
this macro in case value->g_type==checked_type for gcc, similar
to instance and class check short-cuts. this speeds up code that
makes frequent use of G_VALUE_HOLDS_*() (e.g. setters/getters).
* gtype.c (type_data_last_unref_Wm): don't call class-cache functions
for the uncached case, this rendered g_type_class_unref_uncached()
useless. pointed out by Stefan Westerfeld.
Sat Jan 24 18:20:13 2004 Tim Janik <timj@gtk.org>
* gtype.h: prefixed the parent_class variable defined by G_DEFINE_TYPE()
with type_name. removed type_parent_class argument
from G_DEFINE_TYPE_EXTENDED().
Sat Jan 10 02:43:20 2004 Tim Janik <timj@gtk.org>
* gtype.h: made G_DEFINE_TYPE_INTERNAL() public by renaming it to
G_DEFINE_TYPE_EXTENDED() and moving it into the appropriate section.
Thu Nov 27 17:53:52 2003 Tim Janik <timj@gtk.org>
* gtype.[hc]:
(g_type_class_peek_static): variant of class_peek() which works for
static types only.
* gobject.c:
(g_object_do_class_init): make ::notify a run-action signal.
(g_object_newv): use g_type_class_peek_static() by default to
speed up common code path (trades two write-locks for one read-lock).
(g_object_disconnect):
(g_object_connect): allow signal specification words to be
seperated by '-'.
(g_object_set_valist):
(g_object_new_valist): don't leak values.
(g_object_get_property): check property for readability.
(g_object_set_property): check property for writability and to
not be construct-only.
(g_object_set_valist): check property to not be construct-only.
Thu Oct 2 01:16:50 2003 Owen Taylor <otaylor@redhat.com>
* gtype.[ch]: Add g_type_add/remove_interface_check(),
which allows inserting a post-interface-initialization
check.
* testgobject.c: Fix a deprecated usage.
Mon Sep 29 10:51:01 2003 Owen Taylor <otaylor@redhat.com>
* gtype.[ch]: Add g_type_default_interface_ref/peek/unref
for accessing the default vtable of an interface.
Tue Sep 2 19:37:21 2003 Tim Janik <timj@gtk.org>
* gtype.[hc]: added support for a "default vtable" per interface,
that interface vtables are initialized from.
the default vtable is initialized and finalized through class_init,
class_finalize and class_data from the interfaces GTypeInfo struct.
(type_data_last_unref_Wm): unload child plugin before unreffing
parent type.
testifaceinit.c: minor fixups. fixed up base_init() assertions, since
with a default vtable, base_init() may be called multiple times.
added default initializer to iface1.
Thu Feb 27 17:33:19 2003 Owen Taylor <otaylor@redhat.com>
* gtype.[ch] testgobject.c: Add support for instance-private data.
g_type_class_add_private(), g_type_instance_get_private(),
G_TYPE_INSTANCE_GET_PRIVATE(). (#101959, patch partly by
Mark McLoughlin, extensive feedback from Tim Janik.)
Wed Sep 11 16:50:20 2002 Dom Lachowicz <cinamod@hotmail.com>
* gtype.h: Fix problems with excessive C++ warnings: "ISO C++ forbids nested groups within expressions"
Fri Jan 4 04:36:46 2002 Tim Janik <timj@gtk.org>
* gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): turn this into a GType,
so negating it works on 64bit platforms.
Sun Nov 25 22:33:32 2001 Tim Janik <timj@gtk.org>
* gtype.h: removed enum GTypeFundamentals. use macros
to provide the constant fundamental type IDs, so they
all return numbers of type GType, and not int.
sizeof(GTypeFundamentals) < sizeof(GType) problem reported
and fix sugegsted by Havoc.
Mon Nov 19 14:35:56 2001 Owen Taylor <otaylor@redhat.com>
* *.h: Improve the detection of invalid includes by moving
the test outside the duplicate include guards.
* gsourceclosure.c (g_source_set_closure): Doc fix.
Thu Nov 22 03:30:57 2001 Tim Janik <timj@gtk.org>
* gvalue.h (G_TYPE_IS_VALUE): use g_type_check_is_value_type()
instead of g_type_value_table_peek().
* gtype.[hc] (type_check_is_value_type_U): speed up check
LOCK-less by caching lookups in node->mutatable_has_value_table.
* gtype.[hc]: removed locks where possible. partly based on
patches from owen and alex.
Thu Nov 22 00:26:26 2001 Tim Janik <timj@gtk.org>
* gtype.[hc]: provide G_TYPE_FUNDAMENTAL_SHIFT and
g_type_fundamental_next() to return next usable fundamental
type. use TypeNode pointers as type IDs.