Imported Upstream version 5.18.0.248

Former-commit-id: 738e3044ff639637d8fe2511a8b60b065577838e
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-01-26 08:23:49 +00:00
parent ce8e504569
commit 2393d5688b
315 changed files with 1737 additions and 313 deletions

View File

@@ -295,6 +295,7 @@ GTKX11 = @GTKX11@
HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
HAVE_MSGFMT = @HAVE_MSGFMT@
HAVE_NINJA = @HAVE_NINJA@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
HOST_CC = @HOST_CC@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@

View File

@@ -19,6 +19,10 @@
#define G_HAVE_ALLOCA_H
#endif
#if @HAVE_UNISTD_H@ == 1
#define G_HAVE_UNISTD_H
#endif
typedef @GSIZE@ gsize;
typedef @GSSIZE@ gssize;

View File

@@ -112,6 +112,7 @@
#define g_markup_parse_context_parse monoeg_g_markup_parse_context_parse
#define g_memdup monoeg_g_memdup
#define g_mem_set_vtable monoeg_g_mem_set_vtable
#define g_mem_get_vtable monoeg_g_mem_get_vtable
#define g_mkdtemp monoeg_g_mkdtemp
#define g_module_build_path monoeg_g_module_build_path
#define g_module_close monoeg_g_module_close
@@ -124,6 +125,10 @@
#define g_pattern_match_string monoeg_g_pattern_match_string
#define g_pattern_spec_free monoeg_g_pattern_spec_free
#define g_pattern_spec_new monoeg_g_pattern_spec_new
#define g_async_safe_fprintf monoeg_g_async_safe_fprintf
#define g_async_safe_vfprintf monoeg_g_async_safe_vfprintf
#define g_async_safe_printf monoeg_g_async_safe_printf
#define g_async_safe_vprintf monoeg_g_async_safe_vprintf
#define g_print monoeg_g_print
#define g_printf monoeg_g_printf
#define g_printerr monoeg_g_printerr
@@ -260,6 +265,8 @@
#define g_utf8_to_ucs4_fast monoeg_g_utf8_to_ucs4_fast
#define g_vasprintf monoeg_g_vasprintf
#define g_win32_getlocale monoeg_g_win32_getlocale
#define g_assertion_disable_global monoeg_assertion_disable_global
#define g_assert_abort monoeg_assert_abort
#define g_assertion_message monoeg_assertion_message
#define g_get_assertion_message monoeg_get_assertion_message
#define g_malloc monoeg_malloc

View File

@@ -40,6 +40,10 @@
#include <malloc.h>
#endif
#ifdef G_HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifndef offsetof
# define offsetof(s_name,n_name) (size_t)(char *)&(((s_name*)0)->m_name)
#endif
@@ -175,6 +179,7 @@ typedef struct {
} GMemVTable;
void g_mem_set_vtable (GMemVTable* vtable);
void g_mem_get_vtable (GMemVTable* vtable);
struct _GMemChunk {
guint alloc_size;
@@ -617,7 +622,10 @@ const char * g_get_assertion_message (void);
typedef void (*GLogFunc) (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data);
typedef void (*GPrintFunc) (const gchar *string);
typedef void (*GAbortFunc) (void);
void g_assertion_disable_global (GAbortFunc func);
void g_assert_abort (void);
void g_log_default_handler (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer unused_data);
GLogFunc g_log_set_default_handler (GLogFunc log_func, gpointer user_data);
GPrintFunc g_set_print_handler (GPrintFunc func);
@@ -966,6 +974,49 @@ gboolean g_file_test (const gchar *filename, GFileTest test);
gchar *g_mkdtemp (gchar *tmpl);
/*
* Low-level write-based printing functions
*/
static inline gint
g_async_safe_vfprintf (int handle, gchar const *format, va_list args)
{
char print_buff [1024];
print_buff [0] = '\0';
g_vsnprintf (print_buff, sizeof(print_buff), format, args);
int ret = g_write (handle, print_buff, (guint32) strlen (print_buff));
return ret;
}
static inline gint
g_async_safe_fprintf (int handle, gchar const *format, ...)
{
va_list args;
va_start (args, format);
int ret = g_async_safe_vfprintf (handle, format, args);
va_end (args);
return ret;
}
static inline gint
g_async_safe_vprintf (gchar const *format, va_list args)
{
return g_async_safe_vfprintf (1, format, args);
}
static inline gint
g_async_safe_printf (gchar const *format, ...)
{
va_list args;
va_start (args, format);
int ret = g_async_safe_vfprintf (1, format, args);
va_end (args);
return ret;
}
/*
* Pattern matching
*/

View File

@@ -43,12 +43,24 @@ g_mem_set_vtable (GMemVTable* vtable)
sGMemVTable.free = vtable->free ? vtable->free : free;
}
void
g_mem_get_vtable (GMemVTable* vtable)
{
*vtable = sGMemVTable;
}
#define G_FREE_INTERNAL sGMemVTable.free
#define G_REALLOC_INTERNAL sGMemVTable.realloc
#define G_CALLOC_INTERNAL sGMemVTable.calloc
#define G_MALLOC_INTERNAL sGMemVTable.malloc
#else
void
g_mem_get_vtable (GMemVTable* vtable)
{
memset (vtable, 0, sizeof (*vtable));
}
void
g_mem_set_vtable (GMemVTable* vtable)
{

View File

@@ -40,6 +40,23 @@ static GPrintFunc stdout_handler, stderr_handler;
static void default_stdout_handler (const gchar *string);
static void default_stderr_handler (const gchar *string);
static GAbortFunc internal_abort_func;
void
g_assertion_disable_global (GAbortFunc abort_func)
{
internal_abort_func = abort_func;
}
void
g_assert_abort (void)
{
if (internal_abort_func)
internal_abort_func ();
else
abort ();
}
void
g_printv (const gchar *format, va_list args)
{
@@ -122,8 +139,12 @@ g_logv_nofree (const gchar *log_domain, GLogLevelFlags log_level, const gchar *f
{
char *msg;
if (g_vasprintf (&msg, format, args) < 0)
if (internal_abort_func) {
g_async_safe_vprintf (format, args);
return NULL;
} else if (g_vasprintf (&msg, format, args) < 0) {
return NULL;
}
g_logstr (log_domain, log_level, msg);
return msg;
@@ -236,7 +257,7 @@ g_log_default_handler (const gchar *log_domain, GLogLevelFlags log_level, const
{
android_log (to_android_priority (log_level), log_domain, message);
if (log_level & fatal)
abort ();
g_assert_abort ();
}
static void
@@ -277,7 +298,7 @@ g_log_default_handler (const gchar *log_domain, GLogLevelFlags log_level, const
{
asl_log (NULL, NULL, to_asl_priority (log_level), "%s", message);
if (log_level & fatal)
abort ();
g_assert_abort ();
}
static void
@@ -307,7 +328,7 @@ g_log_default_handler (const gchar *log_domain, GLogLevelFlags log_level, const
if (log_level & fatal) {
fflush (stdout);
fflush (stderr);
abort ();
g_assert_abort ();
}
}