Deprecate g_type_class_add_private()

It's been 4 years and 8 development cycles since we introduced
G_ADD_PRIVATE and offset-based private data access. It is now
time to finally deprecate the old mechanism.

Closes: #699
This commit is contained in:
Emmanuele Bassi
2018-05-25 10:06:05 +01:00
parent d8c003dea6
commit 7e5db31d36
4 changed files with 33 additions and 15 deletions

View File

@@ -76,7 +76,7 @@
*
* Type instance and class structs are limited to a total of 64 KiB,
* including all parent types. Similarly, type instances' private data
* (as created by g_type_class_add_private()) are limited to a total of
* (as created by G_ADD_PRIVATE()) are limited to a total of
* 64 KiB. If a type instance needs a large static buffer, allocate it
* separately (typically by using #GArray or #GPtrArray) and put a pointer
* to the buffer in the structure.
@@ -4562,6 +4562,8 @@ gobject_init_ctor (void)
* ]|
*
* Since: 2.4
* Deprecated: 2.58: Use the G_ADD_PRIVATE() macro with the `G_DEFINE_*`
* family of macros to add instance private data to a type
*/
void
g_type_class_add_private (gpointer g_class,

View File

@@ -634,6 +634,8 @@ struct _GTypeQuery
* This macro should only be used in type implementations.
*
* Since: 2.4
* Deprecated: 2.58: Use %G_ADD_PRIVATE and the generated
* `your_type_get_instance_private()` function instead
* Returns: (not nullable): a pointer to the private data structure
*/
#define G_TYPE_INSTANCE_GET_PRIVATE(instance, g_type, c_type) ((c_type*) g_type_instance_get_private ((GTypeInstance*) (instance), (g_type)))
@@ -1297,7 +1299,7 @@ void g_type_interface_add_prerequisite (GType interface_type,
GLIB_AVAILABLE_IN_ALL
GType*g_type_interface_prerequisites (GType interface_type,
guint *n_prerequisites);
GLIB_AVAILABLE_IN_ALL
GLIB_DEPRECATED_IN_2_58
void g_type_class_add_private (gpointer g_class,
gsize private_size);
GLIB_AVAILABLE_IN_2_38

View File

@@ -128,7 +128,9 @@ G_DEFINE_TYPE (TestMixed, test_mixed, test_object_get_type ())
static void
test_mixed_class_init (TestMixedClass *klass)
{
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
g_type_class_add_private (klass, sizeof (TestMixedPrivate));
G_GNUC_END_IGNORE_DEPRECATIONS
}
static void