Function

GLibclear_pointer

Declaration

void
g_clear_pointer (
  gpointer* pp,
  GDestroyNotify destroy
)

Description

Clears a reference to a variable.

pp must not be NULL.

If the reference is NULL then this function does nothing. Otherwise, the variable is destroyed using destroy and the pointer is set to NULL.

A macro is also included that allows this function to be used without pointer casts. This will mask any warnings about incompatible function types or calling conventions, so you must ensure that your destroy function is compatible with being called as GDestroyNotify using the standard calling convention for the platform that GLib was compiled for; otherwise the program will experience undefined behaviour.

Available since:2.34

Parameters

pp gpointer*
 

A pointer to a variable, struct member etc. holding a pointer.

 The data is owned by the caller of the function.
destroy GDestroyNotify
 

A function to which a gpointer can be passed, to destroy *pp.