include <stdlib.h> and <stddef.h> if STDC_HEADERS is defined.
[platform/upstream/glib.git] / glib.h
diff --git a/glib.h b/glib.h
index fdfb687..7f31ba9 100644 (file)
--- a/glib.h
+++ b/glib.h
@@ -55,6 +55,7 @@
  *  gint16, guint16
  *  gint32, guint32
  *  gint64, guint64
+ *  gssize, gsize
  *
  * It defines the G_BYTE_ORDER symbol to one of G_*_ENDIAN (see later in
  * this file). 
@@ -426,6 +427,8 @@ extern "C" {
 
 #define g_return_if_fail(expr)
 #define g_return_val_if_fail(expr,val)
+#define g_return_if_reached() return
+#define g_return_val_if_reached(val) return (val)
 
 #else /* !G_DISABLE_CHECKS */
 
@@ -436,7 +439,7 @@ extern "C" {
        {                                                               \
         g_log (G_LOG_DOMAIN,                                           \
                G_LOG_LEVEL_CRITICAL,                                   \
-               "file %s: line %d (%s): assertion `%s' failed.",        \
+               "file %s: line %d (%s): assertion `%s' failed",         \
                __FILE__,                                               \
                __LINE__,                                               \
                __PRETTY_FUNCTION__,                                    \
@@ -449,14 +452,32 @@ extern "C" {
        {                                                               \
         g_log (G_LOG_DOMAIN,                                           \
                G_LOG_LEVEL_CRITICAL,                                   \
-               "file %s: line %d (%s): assertion `%s' failed.",        \
+               "file %s: line %d (%s): assertion `%s' failed",         \
                __FILE__,                                               \
                __LINE__,                                               \
                __PRETTY_FUNCTION__,                                    \
                #expr);                                                 \
-        return val;                                                    \
+        return (val);                                                  \
        };                              }G_STMT_END
 
+#define g_return_if_reached()          G_STMT_START{                   \
+     g_log (G_LOG_DOMAIN,                                              \
+           G_LOG_LEVEL_CRITICAL,                                       \
+           "file %s: line %d (%s): should not be reached",             \
+           __FILE__,                                                   \
+           __LINE__,                                                   \
+           __PRETTY_FUNCTION__);                                       \
+     return;                           }G_STMT_END
+
+#define g_return_val_if_reached(val)   G_STMT_START{                   \
+     g_log (G_LOG_DOMAIN,                                              \
+           G_LOG_LEVEL_CRITICAL,                                       \
+           "file %s: line %d (%s): should not be reached",             \
+           __FILE__,                                                   \
+           __LINE__,                                                   \
+           __PRETTY_FUNCTION__);                                       \
+     return (val);                     }G_STMT_END
+
 #else /* !__GNUC__ */
 
 #define g_return_if_fail(expr)         G_STMT_START{           \
@@ -464,7 +485,7 @@ extern "C" {
        {                                                       \
         g_log (G_LOG_DOMAIN,                                   \
                G_LOG_LEVEL_CRITICAL,                           \
-               "file %s: line %d: assertion `%s' failed.",     \
+               "file %s: line %d: assertion `%s' failed",      \
                __FILE__,                                       \
                __LINE__,                                       \
                #expr);                                         \
@@ -476,13 +497,29 @@ extern "C" {
        {                                                       \
         g_log (G_LOG_DOMAIN,                                   \
                G_LOG_LEVEL_CRITICAL,                           \
-               "file %s: line %d: assertion `%s' failed.",     \
+               "file %s: line %d: assertion `%s' failed",      \
                __FILE__,                                       \
                __LINE__,                                       \
                #expr);                                         \
-        return val;                                            \
+        return (val);                                          \
        };                              }G_STMT_END
 
+#define g_return_if_reached()          G_STMT_START{           \
+     g_log (G_LOG_DOMAIN,                                      \
+           G_LOG_LEVEL_CRITICAL,                               \
+           "file %s: line %d: should not be reached",          \
+           __FILE__,                                           \
+           __LINE__);                                          \
+     return;                           }G_STMT_END
+
+#define g_return_val_if_reached(val)   G_STMT_START{           \
+     g_log (G_LOG_DOMAIN,                                      \
+           G_LOG_LEVEL_CRITICAL,                               \
+           "file %s: line %d: should not be reached",          \
+           __FILE__,                                           \
+           __LINE__);                                          \
+     return (val);                     }G_STMT_END
+
 #endif /* !__GNUC__ */
 
 #endif /* !G_DISABLE_CHECKS */
@@ -532,8 +569,6 @@ typedef void* gpointer;
 typedef const void *gconstpointer;
 
 
-typedef gint32 gssize;
-typedef guint32 gsize;
 typedef guint32 GQuark;
 typedef gint32 GTime;
 
@@ -1442,6 +1477,9 @@ GLogLevelFlags    g_log_set_always_fatal  (GLogLevelFlags  fatal_mask);
 #define        g_message(format, args...)      g_log (G_LOG_DOMAIN, \
                                               G_LOG_LEVEL_MESSAGE, \
                                               format, ##args)
+#define        g_critical(format, args...)     g_log (G_LOG_DOMAIN, \
+                                              G_LOG_LEVEL_CRITICAL, \
+                                              format, ##args)
 #define        g_warning(format, args...)      g_log (G_LOG_DOMAIN, \
                                               G_LOG_LEVEL_WARNING, \
                                               format, ##args)
@@ -1465,6 +1503,15 @@ g_message (const gchar *format,
   va_end (args);
 }
 static void
+g_critical (const gchar *format,
+           ...)
+{
+  va_list args;
+  va_start (args, format);
+  g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, format, args);
+  va_end (args);
+}
+static void
 g_warning (const gchar *format,
           ...)
 {