### Function

# GObject TypeClassCacheFunc

since: 2.0

#### Declaration

    gboolean
    (* GTypeClassCacheFunc) (
      gpointer cache_data,
      GTypeClass* g_class
    )

#### Description

A callback function which is called when the reference count of a class drops to zero.

It may use `g_type_class_ref()` to prevent the class from being freed. You should not call `g_type_class_unref()` from a `GTypeClassCacheFunc` function to prevent infinite recursion, use `g_type_class_unref_uncached()` instead.

The functions have to check the class id passed in to figure whether they actually want to cache the class of this type, since all classes are routed through the same `GTypeClassCacheFunc` chain.

Available since: 2.0

#### Parameters

`cache_data`

  Type: `gpointer`

  Data that was given to the `g_type_add_class_cache_func()` call.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`g_class`

  Type: `GTypeClass`

  The `GTypeClass` structure which is unreferenced.

  The data is owned by the caller of the function.

#### Return value

Type: `gboolean`

`TRUE` to stop further `GTypeClassCacheFuncs` from being called, `FALSE` to continue.