diff options
| author | bigbear <ns@bigbear.dk> | 2024-02-08 03:08:54 +0100 | 
|---|---|---|
| committer | bigbear <ns@bigbear.dk> | 2024-02-08 19:52:53 +0100 | 
| commit | 33d6c7101cee251b91b4f01b2ddde55b4b2d50d9 (patch) | |
| tree | 49ae675f7d68b90415db69bfcd21fe84fa74013d /deps | |
| parent | 1dc1f18804969c191346b064cd232d3f5959b13c (diff) | |
FIX back ports
Diffstat (limited to 'deps')
| -rw-r--r-- | deps/sysobj_early/gui/uri_handler.c | 5 | ||||
| -rw-r--r-- | deps/sysobj_early/src/auto_free.c | 39 | 
2 files changed, 37 insertions, 7 deletions
| diff --git a/deps/sysobj_early/gui/uri_handler.c b/deps/sysobj_early/gui/uri_handler.c index 055dbaca..de9f64a7 100644 --- a/deps/sysobj_early/gui/uri_handler.c +++ b/deps/sysobj_early/gui/uri_handler.c @@ -21,6 +21,11 @@  #include <stdio.h>  #include "uri_handler.h" +//compatibility +#ifndef G_SPAWN_DEFAULT +#define G_SPAWN_DEFAULT 0 +#endif +  static uri_handler uri_func = NULL;  void uri_set_function(uri_handler f) { diff --git a/deps/sysobj_early/src/auto_free.c b/deps/sysobj_early/src/auto_free.c index 8439681f..9a10e27a 100644 --- a/deps/sysobj_early/src/auto_free.c +++ b/deps/sysobj_early/src/auto_free.c @@ -33,7 +33,17 @@ static struct {  } af_stats;  #endif -static GMutex free_lock; +//Compatibility +#ifndef G_SOURCE_REMOVE +  #define G_SOURCE_REMOVE FALSE +#endif + +#ifndef G_SOURCE_CONTINUE +  #define G_SOURCE_CONTINUE TRUE +#endif + + +static GMutex *free_lock = NULL;  static GSList *free_list = NULL;  static gboolean free_final = FALSE;  static GTimer *auto_free_timer = NULL; @@ -95,10 +105,15 @@ gpointer auto_free_ex_(gpointer p, GDestroyNotify f, const char *file, int line,      z->line = line;      z->func = func;      z->stamp = af_elapsed(); -    g_mutex_lock(&free_lock); +#if GLIB_CHECK_VERSION(2,32,0) +    if(free_lock==NULL) {free_lock=g_new(GMutex,1);g_mutex_init(free_lock);} +#else +    if(free_lock==NULL) free_lock=g_mutex_new(); +#endif +    g_mutex_lock(free_lock);      free_list = g_slist_prepend(free_list, z);      sysobj_stats.auto_free_len++; -    g_mutex_unlock(&free_lock); +    g_mutex_unlock(free_lock);      return p;  } @@ -113,10 +128,15 @@ gpointer auto_free_on_exit_ex_(gpointer p, GDestroyNotify f, const char *file, i      z->line = line;      z->func = func;      z->stamp = -1.0; -    g_mutex_lock(&free_lock); +#if GLIB_CHECK_VERSION(2,32,0) +    if(free_lock==NULL) g_mutex_init(free_lock); +#else +    if(free_lock==NULL) free_lock=g_mutex_new(); +#endif +    g_mutex_lock(free_lock);      free_list = g_slist_prepend(free_list, z);      sysobj_stats.auto_free_len++; -    g_mutex_unlock(&free_lock); +    g_mutex_unlock(free_lock);      return p;  } @@ -140,7 +160,12 @@ static void free_auto_free_ex(gboolean thread_final) {      if (!free_list) return; -    g_mutex_lock(&free_lock); +#if GLIB_CHECK_VERSION(2,32,0) +    if(free_lock==NULL) {free_lock=g_new(GMutex,1);g_mutex_init(free_lock);} +#else +    if(free_lock==NULL) free_lock=g_mutex_new(); +#endif +    g_mutex_lock(free_lock);      if (DEBUG_AUTO_FREE)          auto_free_msg("%llu total items in queue, but will free from thread %p only... ", sysobj_stats.auto_free_len, this_thread);      for(l = free_list; l; l = n) { @@ -174,7 +199,7 @@ static void free_auto_free_ex(gboolean thread_final) {          auto_free_msg("... freed %llu (from thread %p)", fc, this_thread);      sysobj_stats.auto_freed += fc;      sysobj_stats.auto_free_len -= fc; -    g_mutex_unlock(&free_lock); +    g_mutex_unlock(free_lock);  }  void free_auto_free_thread_final() { | 
