Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/wrapped/generated/functions_list.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4220,9 +4220,13 @@ wrappedgdkx112:
- uFiuppp:
- gdk_threads_add_timeout_full
wrappedgio2:
- vFpp:
- g_task_run_in_thread
- g_task_run_in_thread_sync
- vFppp:
- g_simple_async_result_set_op_res_gpointer
- g_task_return_pointer
- g_task_set_task_data
- vFippp:
- g_bus_get
- vFppip:
Expand Down Expand Up @@ -4357,6 +4361,7 @@ wrappedglib2:
- g_strdup_vprintf
- vFppp:
- g_array_sort_with_data
- g_datalist_foreach
- g_hash_table_foreach
- g_list_foreach
- g_log_set_writer_func
Expand Down Expand Up @@ -4401,6 +4406,7 @@ wrappedglib2:
- g_node_copy_deep
- g_once_impl
- g_queue_find_custom
- g_slist_copy_deep
- g_slist_find_custom
- g_slist_insert_sorted
- g_slist_sort_with_data
Expand Down
4 changes: 4 additions & 0 deletions src/wrapped/generated/wrappedgio2types.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#define ADDED_FUNCTIONS()
#endif

typedef void (*vFpp_t)(void*, void*);
typedef void (*vFppp_t)(void*, void*, void*);
typedef void (*vFippp_t)(int32_t, void*, void*, void*);
typedef void (*vFppip_t)(void*, void*, int32_t, void*);
Expand Down Expand Up @@ -45,8 +46,11 @@ typedef uint32_t (*uFppppppuppp_t)(void*, void*, void*, void*, void*, void*, uin
typedef void (*vFpppppppuippp_t)(void*, void*, void*, void*, void*, void*, void*, uint32_t, int32_t, void*, void*, void*);

#define SUPER() ADDED_FUNCTIONS() \
GO(g_task_run_in_thread, vFpp_t) \
GO(g_task_run_in_thread_sync, vFpp_t) \
GO(g_simple_async_result_set_op_res_gpointer, vFppp_t) \
GO(g_task_return_pointer, vFppp_t) \
GO(g_task_set_task_data, vFppp_t) \
GO(g_bus_get, vFippp_t) \
GO(g_simple_async_result_run_in_thread, vFppip_t) \
GO(g_dbus_connection_close, vFpppp_t) \
Expand Down
2 changes: 2 additions & 0 deletions src/wrapped/generated/wrappedglib2types.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ typedef int32_t (*iFpppuppppppp_t)(void*, void*, void*, uint32_t, void*, void*,
GO(g_markup_vprintf_escaped, pFpA_t) \
GO(g_strdup_vprintf, pFpA_t) \
GO(g_array_sort_with_data, vFppp_t) \
GO(g_datalist_foreach, vFppp_t) \
GO(g_hash_table_foreach, vFppp_t) \
GO(g_list_foreach, vFppp_t) \
GO(g_log_set_writer_func, vFppp_t) \
Expand Down Expand Up @@ -147,6 +148,7 @@ typedef int32_t (*iFpppuppppppp_t)(void*, void*, void*, uint32_t, void*, void*,
GO(g_node_copy_deep, pFppp_t) \
GO(g_once_impl, pFppp_t) \
GO(g_queue_find_custom, pFppp_t) \
GO(g_slist_copy_deep, pFppp_t) \
GO(g_slist_find_custom, pFppp_t) \
GO(g_slist_insert_sorted, pFppp_t) \
GO(g_slist_sort_with_data, pFppp_t) \
Expand Down
43 changes: 43 additions & 0 deletions src/wrapped/wrappedgio2.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,34 @@ static void* findGDestroyNotifyFct(void* fct)
return NULL;
}

// GTaskThreadFunc
#define GO(A) \
static uintptr_t my_GTaskThreadFunc_fct_##A = 0; \
static void my_GTaskThreadFunc_##A(void* task, void* source_object, void* task_data, void* cancellable) \
{ \
RunFunctionFmt(my_GTaskThreadFunc_fct_##A, "pppp", task, source_object, task_data, cancellable); \
}
SUPER()
#undef GO
static void* findGTaskThreadFuncFct(void* fct)
{
if (!fct) return fct;
if (GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) \
if (my_GTaskThreadFunc_fct_##A == (uintptr_t)fct) return my_GTaskThreadFunc_##A;
SUPER()
#undef GO
#define GO(A) \
if (my_GTaskThreadFunc_fct_##A == 0) { \
my_GTaskThreadFunc_fct_##A = (uintptr_t)fct; \
return my_GTaskThreadFunc_##A; \
}
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for gio2 GTaskThreadFunc callback\n");
return NULL;
}

// GDBusProxyTypeFunc
#define GO(A) \
static uintptr_t my_GDBusProxyTypeFunc_fct_##A = 0; \
Expand Down Expand Up @@ -381,6 +409,21 @@ EXPORT void my_g_task_return_pointer(x64emu_t* emu, void* task, void* result, vo
my->g_task_return_pointer(task, result, findGDestroyNotifyFct(destroy));
}

EXPORT void my_g_task_set_task_data(x64emu_t* emu, void* task, void* data, void* destroy)
{
my->g_task_set_task_data(task, data, findGDestroyNotifyFct(destroy));
}

EXPORT void my_g_task_run_in_thread(x64emu_t* emu, void* task, void* func)
{
my->g_task_run_in_thread(task, findGTaskThreadFuncFct(func));
}

EXPORT void my_g_task_run_in_thread_sync(x64emu_t* emu, void* task, void* func)
{
my->g_task_run_in_thread_sync(task, findGTaskThreadFuncFct(func));
}

EXPORT void my_g_dbus_proxy_new(x64emu_t* emu, void* connection, uint32_t flags, void* info, void* name, void* path, void* interface, void* cancellable, void* cb, void* data)
{
my->g_dbus_proxy_new(connection, flags, info, name, path, interface, cancellable, findGAsyncReadyCallbackFct(cb), data);
Expand Down
8 changes: 5 additions & 3 deletions src/wrapped/wrappedgio2_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -1620,6 +1620,7 @@ GO(g_subprocess_wait_finish, iFppp)
GO(g_task_get_cancellable, pFp)
GO(g_task_get_check_cancellable, iFp)
GO(g_task_get_context, pFp)
GO(g_task_get_name, pFp)
GO(g_task_get_priority, iFp)
GO(g_task_get_return_on_cancel, iFp)
GO(g_task_get_source_object, pFp)
Expand All @@ -1640,13 +1641,14 @@ GO(g_task_return_error_if_cancelled, iFp)
GO(g_task_return_int, vFpl)
GOM(g_task_return_new_error, vFEpuipV)
GOM(g_task_return_pointer, vFEppp)
//GOM(g_task_run_in_thread, vFpp)
//GOM(g_task_run_in_thread_sync, vFpp)
GOM(g_task_run_in_thread, vFEpp)
GOM(g_task_run_in_thread_sync, vFEpp)
GO(g_task_set_check_cancellable, vFpi)
GO(g_task_set_name, vFpp)
GO(g_task_set_priority, vFpi)
GO(g_task_set_return_on_cancel, iFpi)
GO(g_task_set_source_tag, vFpp)
//GOM(g_task_set_task_data, vFppp)
GOM(g_task_set_task_data, vFEppp)
GO(g_tcp_connection_get_graceful_disconnect, iFp)
GO(g_tcp_connection_get_type, LFv)
GO(g_tcp_connection_set_graceful_disconnect, vFpi)
Expand Down
50 changes: 44 additions & 6 deletions src/wrapped/wrappedglib2.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,12 @@ GO(13) \
GO(14) \

// GCopyFct
#define GO(A) \
static uintptr_t my_copy_fct_##A = 0; \
static void* my_copy_##A(void* data) \
{ \
return (void*)RunFunctionFmt(my_copy_fct_##A, "p", data); \
}
#define GO(A) \
static uintptr_t my_copy_fct_##A = 0; \
static void* my_copy_##A(void* src, void* data) \
{ \
return (void*)RunFunctionFmt(my_copy_fct_##A, "pp", src, data); \
}
SUPER()
#undef GO
static void* findCopyFct(void* fct)
Expand Down Expand Up @@ -789,6 +789,34 @@ static void* findLogWriterFct(void* fct)
return NULL;
}

// GDataForeachFunc ...
#define GO(A) \
static uintptr_t my_GDataForeachFunc_fct_##A = 0; \
static void* my_GDataForeachFunc_##A(uint32_t a, void* b, void* c) \
{ \
return (void*)RunFunctionFmt(my_GDataForeachFunc_fct_##A, "upp", a, b, c); \
}
SUPER()
#undef GO
static void* findGDataForeachFuncFct(void* fct)
{
if (!fct) return fct;
if (GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) \
if (my_GDataForeachFunc_fct_##A == (uintptr_t)fct) return my_GDataForeachFunc_##A;
SUPER()
#undef GO
#define GO(A) \
if (my_GDataForeachFunc_fct_##A == 0) { \
my_GDataForeachFunc_fct_##A = (uintptr_t)fct; \
return my_GDataForeachFunc_##A; \
}
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for glib2 GDataForeachFunc callback\n");
return NULL;
}

#undef SUPER

EXPORT void* my_g_markup_vprintf_escaped(x64emu_t *emu, void* fmt, void* b) {
Expand Down Expand Up @@ -834,6 +862,11 @@ EXPORT void my_g_datalist_id_set_data_full(x64emu_t* emu, void* datalist, uintpt
my->g_datalist_id_set_data_full(datalist, key, data, fc);
}

EXPORT void my_g_datalist_foreach(x64emu_t* emu, void* datalist, void* func, void* data)
{
my->g_datalist_foreach(datalist, findGDataForeachFuncFct(func), data);
}

EXPORT void* my_g_datalist_id_dup_data(x64emu_t* emu, void* datalist, uintptr_t key, void* dupcb, void* data)
{
void* cc = findDuplicateFct(dupcb);
Expand Down Expand Up @@ -1502,6 +1535,11 @@ EXPORT void* my_g_node_copy_deep(x64emu_t* emu, void* node, void* f, void* data)
return my->g_node_copy_deep(node, findCopyFct(f), data);
}

EXPORT void* my_g_slist_copy_deep(x64emu_t* emu, void* list, void* f, void* data)
{
return my->g_slist_copy_deep(list, findCopyFct(f), data);
}

EXPORT void* my_g_thread_try_new(x64emu_t* emu, void* name, void* f, void* data, void* err)
{
return my->g_thread_try_new(name, findGThreadFuncFct(f), data, err);
Expand Down
7 changes: 4 additions & 3 deletions src/wrapped/wrappedglib2_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ GO(g_convert_with_fallback, pFplpppppp)
GO(g_convert_with_iconv, pFplpppp)
GO(g_creat, iFpi)
GO(g_datalist_clear, vFp)
//GOM(g_datalist_foreach, vFEppp)
GOM(g_datalist_foreach, vFEppp)
GO(g_datalist_get_data, pFpp)
GO(g_datalist_get_flags, uFp)
GOM(g_datalist_id_dup_data, pFEpupp)
Expand Down Expand Up @@ -389,6 +389,7 @@ GO(g_get_filename_charsets, iFp)
GO(g_get_home_dir, pFv)
GO(g_get_host_name, pFv)
GO(g_get_language_names, pFv)
GO(g_get_language_names_with_category, pFp)
GO(g_get_locale_variants, pFp)
GO(g_get_monotonic_time, lFv)
GO(g_get_num_processors, uFv)
Expand Down Expand Up @@ -681,7 +682,7 @@ GO(g_markup_parse_context_get_user_data, pFp)
GOM(g_markup_parse_context_new, pFEpupp)
GO(g_markup_parse_context_parse, iFpplp)
GO(g_markup_parse_context_pop, pFp)
//GOM(g_markup_parse_context_push, vFppp)
GO(g_markup_parse_context_push, vFppp)
GO(g_markup_parse_context_ref, pFp)
GO(g_markup_parse_context_unref, vFp)
GOM(g_markup_printf_escaped, pFEpV)
Expand Down Expand Up @@ -1042,7 +1043,7 @@ GO(g_slist_alloc, pFv)
GO(g_slist_append, pFpp)
GO(g_slist_concat, pFpp)
GO(g_slist_copy, pFp)
//GOM(g_slist_copy_deep, pFEppp)
GOM(g_slist_copy_deep, pFEppp)
GO(g_slist_delete_link, pFpp)
GO(g_slist_find, pFpp)
GOM(g_slist_find_custom, pFEppp)
Expand Down
Loading