Add g_try_new, g_try_new0 and g_try_renew. (#169611, Stefan Kost)

2005-03-21  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmem.h: Add g_try_new, g_try_new0 and
	g_try_renew.  (#169611, Stefan Kost)
This commit is contained in:
Matthias Clasen 2005-03-22 04:02:13 +00:00 committed by Matthias Clasen
parent 169da6ebcb
commit 103fe49b8e
8 changed files with 83 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2005-03-21 Matthias Clasen <mclasen@redhat.com>
* glib/gmem.h: Add g_try_new, g_try_new0 and
g_try_renew. (#169611, Stefan Kost)
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gspawn-win32.c (do_spawn_with_pipes): Close the process

View File

@ -1,3 +1,8 @@
2005-03-21 Matthias Clasen <mclasen@redhat.com>
* glib/gmem.h: Add g_try_new, g_try_new0 and
g_try_renew. (#169611, Stefan Kost)
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gspawn-win32.c (do_spawn_with_pipes): Close the process

View File

@ -1,3 +1,8 @@
2005-03-21 Matthias Clasen <mclasen@redhat.com>
* glib/gmem.h: Add g_try_new, g_try_new0 and
g_try_renew. (#169611, Stefan Kost)
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gspawn-win32.c (do_spawn_with_pipes): Close the process

View File

@ -1,3 +1,8 @@
2005-03-21 Matthias Clasen <mclasen@redhat.com>
* glib/gmem.h: Add g_try_new, g_try_new0 and
g_try_renew. (#169611, Stefan Kost)
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gspawn-win32.c (do_spawn_with_pipes): Close the process

View File

@ -1,3 +1,9 @@
2005-03-21 Matthias Clasen <mclasen@redhat.com>
* glib/glib-sections.txt:
* glib/tmpl/memory.sgml: Document g_try_new, g_try_new0
and g_try_renew.
2005-03-20 Matthias Clasen <mclasen@redhat.com>
* gobject/tmpl/gparamspec.sgml: Document G_PARAM_SPEC_STATIC_

View File

@ -763,6 +763,9 @@ g_io_watch_funcs
g_new
g_new0
g_renew
g_try_new
g_try_new0
g_try_renew
<SUBSECTION>
g_malloc

View File

@ -24,7 +24,7 @@ This also means that there is no need to check if the call succeeded.
<para>
Allocates @n_structs elements of type @struct_type.
The returned pointer is cast to a pointer to the given type.
If @count is 0 it returns %NULL.
If @n_structs is 0 it returns %NULL.
</para>
@struct_type: the type of the elements to allocate.
@ -36,7 +36,7 @@ If @count is 0 it returns %NULL.
<para>
Allocates @n_structs elements of type @struct_type, initialized to 0's.
The returned pointer is cast to a pointer to the given type.
If @count is 0 it returns %NULL.
If @n_structs is 0 it returns %NULL.
</para>
@struct_type: the type of the elements to allocate.
@ -47,7 +47,7 @@ If @count is 0 it returns %NULL.
<!-- ##### MACRO g_renew ##### -->
<para>
Reallocates the memory pointed to by @mem, so that it now has space for
@n_struct elements of type @struct_type. It returns the new address of
@n_structs elements of type @struct_type. It returns the new address of
the memory, which may have been moved.
</para>
@ -57,6 +57,50 @@ the memory, which may have been moved.
@Returns: a pointer to the new allocated memory, cast to a pointer to @struct_type.
<!-- ##### MACRO g_try_new ##### -->
<para>
Attempts to allocate @n_structs elements of type @struct_type, and returns
%NULL on failure. Contrast with g_new(), which aborts the program on failure.
The returned pointer is cast to a pointer to the given type.
If @n_structs is 0 it returns %NULL.
</para>
@struct_type: the type of the elements to allocate.
@n_structs: the number of elements to allocate.
@Returns: a pointer to the allocated memory, cast to a pointer to @struct_type.
@Since: 2.8
<!-- ##### MACRO g_try_new0 ##### -->
<para>
Attempts to allocate @n_structs elements of type @struct_type, initialized
to 0's, and returns %NULL on failure. Contrast with g_new0(), which aborts
the program on failure.
The returned pointer is cast to a pointer to the given type.
If @n_counts is 0 it returns %NULL.
</para>
@struct_type: the type of the elements to allocate.
@n_structs: the number of elements to allocate.
@Returns: a pointer to the allocated memory, cast to a pointer to @struct_type.
@Since: 2.8
<!-- ##### MACRO g_try_renew ##### -->
<para>
Attempts to reallocate the memory pointed to by @mem, so that it now has
space for @n_structs elements of type @struct_type, and returns %NULL on
failure. Contrast with g_renew(), which aborts the program on failure.
It returns the new address of the memory, which may have been moved.
</para>
@struct_type: the type of the elements to allocate.
@mem: the currently allocated memory.
@n_structs: the number of elements to allocate.
@Returns: a pointer to the new allocated memory, cast to a pointer to @struct_type.
@Since: 2.8
<!-- ##### FUNCTION g_malloc ##### -->
<para>
Allocates @n_bytes bytes of memory.

View File

@ -64,6 +64,13 @@ gpointer g_try_realloc (gpointer mem,
#define g_renew(struct_type, mem, n_structs) \
((struct_type *) g_realloc ((mem), ((gsize) sizeof (struct_type)) * ((gsize) (n_structs))))
#define g_try_new(struct_type, n_structs) \
((struct_type *) g_try_malloc (((gsize) sizeof (struct_type)) * ((gsize) (n_structs))))
#define g_try_new0(struct_type, n_structs) \
((struct_type *) g_try_malloc0 (((gsize) sizeof (struct_type)) * ((gsize) (n_structs))))
#define g_try_renew(struct_type, mem, n_structs) \
((struct_type *) g_try_realloc ((mem), ((gsize) sizeof (struct_type)) * ((gsize) (n_structs))))
/* Memory allocation virtualization for debugging purposes
* g_mem_set_vtable() has to be the very first GLib function called