From: Tim Janik Date: Thu, 27 Nov 2003 17:08:58 +0000 (+0000) Subject: handle NULL arguments gracefully. X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=5d49a7caf7e10a69fb25159f51b3eebdb92f774f;p=dana%2Fcg-glib.git handle NULL arguments gracefully. Thu Nov 27 17:04:08 2003 Tim Janik * glib/gstrfuncs.c (g_strconcat): handle NULL arguments gracefully. * glib/gmacros.h: defined G_STRFUNC, which (pretty) prints the current function (since G_STRLOC and G_GNUC_*FUNCTION became unusable with gcc-3.0). --- diff --git a/ChangeLog b/ChangeLog index c5719123..3e1eadaa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Thu Nov 27 17:04:08 2003 Tim Janik + + * glib/gstrfuncs.c (g_strconcat): handle NULL arguments + gracefully. + + * glib/gmacros.h: defined G_STRFUNC, which (pretty) prints the + current function (since G_STRLOC and G_GNUC_*FUNCTION became + unusable with gcc-3.0). + Wed Nov 26 16:45:16 2003 Roozbeh Pournader * glib/gstrfuncs.c: Fixed a bad pointer comparison in diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c5719123..3e1eadaa 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +Thu Nov 27 17:04:08 2003 Tim Janik + + * glib/gstrfuncs.c (g_strconcat): handle NULL arguments + gracefully. + + * glib/gmacros.h: defined G_STRFUNC, which (pretty) prints the + current function (since G_STRLOC and G_GNUC_*FUNCTION became + unusable with gcc-3.0). + Wed Nov 26 16:45:16 2003 Roozbeh Pournader * glib/gstrfuncs.c: Fixed a bad pointer comparison in diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index c5719123..3e1eadaa 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,12 @@ +Thu Nov 27 17:04:08 2003 Tim Janik + + * glib/gstrfuncs.c (g_strconcat): handle NULL arguments + gracefully. + + * glib/gmacros.h: defined G_STRFUNC, which (pretty) prints the + current function (since G_STRLOC and G_GNUC_*FUNCTION became + unusable with gcc-3.0). + Wed Nov 26 16:45:16 2003 Roozbeh Pournader * glib/gstrfuncs.c: Fixed a bad pointer comparison in diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index c5719123..3e1eadaa 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,12 @@ +Thu Nov 27 17:04:08 2003 Tim Janik + + * glib/gstrfuncs.c (g_strconcat): handle NULL arguments + gracefully. + + * glib/gmacros.h: defined G_STRFUNC, which (pretty) prints the + current function (since G_STRLOC and G_GNUC_*FUNCTION became + unusable with gcc-3.0). + Wed Nov 26 16:45:16 2003 Roozbeh Pournader * glib/gstrfuncs.c: Fixed a bad pointer comparison in diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index c5719123..3e1eadaa 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +Thu Nov 27 17:04:08 2003 Tim Janik + + * glib/gstrfuncs.c (g_strconcat): handle NULL arguments + gracefully. + + * glib/gmacros.h: defined G_STRFUNC, which (pretty) prints the + current function (since G_STRLOC and G_GNUC_*FUNCTION became + unusable with gcc-3.0). + Wed Nov 26 16:45:16 2003 Roozbeh Pournader * glib/gstrfuncs.c: Fixed a bad pointer comparison in diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c5719123..3e1eadaa 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +Thu Nov 27 17:04:08 2003 Tim Janik + + * glib/gstrfuncs.c (g_strconcat): handle NULL arguments + gracefully. + + * glib/gmacros.h: defined G_STRFUNC, which (pretty) prints the + current function (since G_STRLOC and G_GNUC_*FUNCTION became + unusable with gcc-3.0). + Wed Nov 26 16:45:16 2003 Roozbeh Pournader * glib/gstrfuncs.c: Fixed a bad pointer comparison in diff --git a/glib/gmacros.h b/glib/gmacros.h index 7315445c..7b61b824 100644 --- a/glib/gmacros.h +++ b/glib/gmacros.h @@ -88,6 +88,7 @@ /* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with * macros, so we can refer to them as strings unconditionally. + * usage not-recommended since gcc-3.0 */ #if defined (__GNUC__) && (__GNUC__ < 3) #define G_GNUC_FUNCTION __FUNCTION__ @@ -107,6 +108,15 @@ # define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) #endif +/* Provide a string identifying the current function, non-concatenatable */ +#if defined (__GNUC__) +# define G_STRFUNC ((const char*) (__PRETTY_FUNCTION__)) +#elif defined (G_HAVE_ISO_VARARGS) +# define G_STRFUNC ((const char*) (__func__)) +#elif +# define G_STRFUNC ((const char*) ("???")) +#endif + /* Guard C code in headers, while including them from C++ */ #ifdef __cplusplus # define G_BEGIN_DECLS extern "C" { diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c index a4d6b173..e1662125 100644 --- a/glib/gstrfuncs.c +++ b/glib/gstrfuncs.c @@ -214,7 +214,8 @@ g_strconcat (const gchar *string1, ...) gchar *concat; gchar *ptr; - g_return_val_if_fail (string1 != NULL, NULL); + if (!string1) + return NULL; l = 1 + strlen (string1); va_start (args, string1);