/** * g_realloc: * @mem: the memory to reallocate * @n_bytes: new size of the memory in bytes * * Reallocates the memory pointed to by @mem, so that it now has space for * @n_bytes bytes of memory. It returns the new address of the memory, which may * have been moved. @mem may be %NULL, in which case it's considered to * have zero-length. @n_bytes may be 0, in which case %NULL will be returned * and @mem will be freed unless it is %NULL. * * Returns: the new address of the allocated memory */ gpointer g_realloc (gpointer mem, gsize n_bytes) { gpointer newmem; if (G_UNLIKELY (!g_mem_initialized)) g_mem_init_nomessage(); if (G_LIKELY (n_bytes)) { newmem = glib_mem_vtable.realloc (mem, n_bytes); TRACE (GLIB_MEM_REALLOC((void*) newmem, (void*)mem, (unsigned int) n_bytes, 0)); if (newmem) return newmem; g_error ("%s: failed to allocate %"G_GSIZE_FORMAT" bytes", G_STRLOC, n_bytes); } if (mem) glib_mem_vtable.free (mem); TRACE (GLIB_MEM_REALLOC((void*) NULL, (void*)mem, 0, 0)); return NULL; }
/** * g_free: * @mem: the memory to free * * Frees the memory pointed to by @mem. * If @mem is %NULL it simply returns. */ void g_free (gpointer mem) { if (G_LIKELY (mem)) glib_mem_vtable.free (mem); TRACE(GLIB_MEM_FREE((void*) mem)); }
void g_free (gpointer mem) { if (G_UNLIKELY (!g_mem_initialized)) g_mem_init_nomessage(); if (G_LIKELY (mem)) glib_mem_vtable.free (mem); }
/** * g_free: * @mem: the memory to free * * Frees the memory pointed to by @mem. * If @mem is %NULL it simply returns. */ void g_free (gpointer mem) { if (G_UNLIKELY (!g_mem_initialized)) g_mem_init_nomessage(); if (G_LIKELY (mem)) glib_mem_vtable.free (mem); TRACE(GLIB_MEM_FREE((void*) mem)); }
gpointer g_try_realloc (gpointer mem, gulong n_bytes) { if (n_bytes) return glib_mem_vtable.try_realloc (mem, n_bytes); if (mem) glib_mem_vtable.free (mem); return NULL; }
gpointer g_try_realloc (gpointer mem, gsize n_bytes) { if (G_UNLIKELY (!g_mem_initialized)) g_mem_init_nomessage(); if (G_LIKELY (n_bytes)) return glib_mem_vtable.try_realloc (mem, n_bytes); if (mem) glib_mem_vtable.free (mem); return NULL; }
gpointer g_realloc (gpointer mem, gulong n_bytes) { if (n_bytes) { mem = glib_mem_vtable.realloc (mem, n_bytes); if (mem) return mem; g_error ("%s: failed to allocate %lu bytes", G_STRLOC, n_bytes); } if (mem) glib_mem_vtable.free (mem); return NULL; }
/** * g_try_realloc: * @mem: (allow-none): previously-allocated memory, or %NULL. * @n_bytes: number of bytes to allocate. * * Attempts to realloc @mem to a new size, @n_bytes, and returns %NULL * on failure. Contrast with g_realloc(), which aborts the program * on failure. If @mem is %NULL, behaves the same as g_try_malloc(). * * Returns: the allocated memory, or %NULL. */ gpointer g_try_realloc (gpointer mem, gsize n_bytes) { gpointer newmem; if (G_LIKELY (n_bytes)) newmem = glib_mem_vtable.try_realloc (mem, n_bytes); else { newmem = NULL; if (mem) glib_mem_vtable.free (mem); } TRACE (GLIB_MEM_REALLOC((void*) newmem, (void*)mem, (unsigned int) n_bytes, 1)); return newmem; }
gpointer g_realloc (gpointer mem, gsize n_bytes) { if (G_UNLIKELY (!g_mem_initialized)) g_mem_init_nomessage(); if (G_LIKELY (n_bytes)) { mem = glib_mem_vtable.realloc (mem, n_bytes); if (mem) return mem; g_error ("%s: failed to allocate %"G_GSIZE_FORMAT" bytes", G_STRLOC, n_bytes); } if (mem) glib_mem_vtable.free (mem); return NULL; }
void g_free (gpointer mem) { if (mem) glib_mem_vtable.free (mem); }