diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-12-20 11:42:14 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-12-20 11:42:14 +0100 |
| commit | 80db0175e0c0ea8c7c92fb366f35e6c572c1ec74 (patch) | |
| tree | 5c7d4c5f296f4861cb0a979356f216c6e0787ef5 /src | |
| parent | 15f90899eb6cd227bb7eca647b90600a80c30dea (diff) | |
| download | box64-80db0175e0c0ea8c7c92fb366f35e6c572c1ec74.tar.gz box64-80db0175e0c0ea8c7c92fb366f35e6c572c1ec74.zip | |
[WRAPPER] Added a few glib2 wrapped functions
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 7 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedglib2types.h | 7 | ||||
| -rw-r--r-- | src/wrapped/wrappedglib2.c | 57 | ||||
| -rw-r--r-- | src/wrapped/wrappedglib2_private.h | 16 |
4 files changed, 80 insertions, 7 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 0f989183..3ded4466 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -3823,8 +3823,10 @@ wrappedglib2: - g_main_context_get_poll_func - g_private_new - g_ptr_array_new_with_free_func + - g_sequence_new - g_set_print_handler - g_set_printerr_handler + - g_tree_new - vFpp: - g_array_set_clear_func - g_array_sort @@ -3881,6 +3883,7 @@ wrappedglib2: - g_queue_foreach - g_slist_foreach - g_static_private_set + - g_tree_foreach - vFppV: - g_string_append_printf - g_string_printf @@ -3926,6 +3929,7 @@ wrappedglib2: - vFpupp: - g_datalist_id_set_data_full - vFpppp: + - g_queue_insert_sorted - g_source_set_callback - iFpLpV: - g_snprintf @@ -3951,8 +3955,11 @@ wrappedglib2: - pFpppp: - g_hash_table_new_full - g_list_insert_sorted_with_data + - g_sequence_insert_sorted + - g_sequence_lookup - g_slist_insert_sorted_with_data - g_thread_try_new + - g_tree_new_full - vFpiLpp: - g_qsort_with_data - vFpuipV: diff --git a/src/wrapped/generated/wrappedglib2types.h b/src/wrapped/generated/wrappedglib2types.h index 69a770b8..07b528de 100644 --- a/src/wrapped/generated/wrappedglib2types.h +++ b/src/wrapped/generated/wrappedglib2types.h @@ -70,8 +70,10 @@ typedef int32_t (*iFpppuppppppp_t)(void*, void*, void*, uint32_t, void*, void*, GO(g_main_context_get_poll_func, pFp_t) \ GO(g_private_new, pFp_t) \ GO(g_ptr_array_new_with_free_func, pFp_t) \ + GO(g_sequence_new, pFp_t) \ GO(g_set_print_handler, pFp_t) \ GO(g_set_printerr_handler, pFp_t) \ + GO(g_tree_new, pFp_t) \ GO(g_array_set_clear_func, vFpp_t) \ GO(g_array_sort, vFpp_t) \ GO(g_completion_set_compare, vFpp_t) \ @@ -115,6 +117,7 @@ typedef int32_t (*iFpppuppppppp_t)(void*, void*, void*, uint32_t, void*, void*, GO(g_queue_foreach, vFppp_t) \ GO(g_slist_foreach, vFppp_t) \ GO(g_static_private_set, vFppp_t) \ + GO(g_tree_foreach, vFppp_t) \ GO(g_string_append_printf, vFppV_t) \ GO(g_string_printf, vFppV_t) \ GO(g_variant_builder_add, vFppV_t) \ @@ -147,6 +150,7 @@ typedef int32_t (*iFpppuppppppp_t)(void*, void*, void*, uint32_t, void*, void*, GO(g_log, vFpipV_t) \ GO(g_logv, vFpipA_t) \ GO(g_datalist_id_set_data_full, vFpupp_t) \ + GO(g_queue_insert_sorted, vFpppp_t) \ GO(g_source_set_callback, vFpppp_t) \ GO(g_snprintf, iFpLpV_t) \ GO(g_vsnprintf, iFpLpA_t) \ @@ -161,8 +165,11 @@ typedef int32_t (*iFpppuppppppp_t)(void*, void*, void*, uint32_t, void*, void*, GO(g_thread_create, pFppip_t) \ GO(g_hash_table_new_full, pFpppp_t) \ GO(g_list_insert_sorted_with_data, pFpppp_t) \ + GO(g_sequence_insert_sorted, pFpppp_t) \ + GO(g_sequence_lookup, pFpppp_t) \ GO(g_slist_insert_sorted_with_data, pFpppp_t) \ GO(g_thread_try_new, pFpppp_t) \ + GO(g_tree_new_full, pFpppp_t) \ GO(g_qsort_with_data, vFpiLpp_t) \ GO(g_set_error, vFpuipV_t) \ GO(g_child_watch_add_full, uFiippp_t) \ diff --git a/src/wrapped/wrappedglib2.c b/src/wrapped/wrappedglib2.c index fbe64e4d..cd0b4d64 100644 --- a/src/wrapped/wrappedglib2.c +++ b/src/wrapped/wrappedglib2.c @@ -733,6 +733,28 @@ static void* findTimeOutFct(void* fct) printf_log(LOG_NONE, "Warning, no more slot for glib2 TimeOut callback\n"); return NULL; } +// GTraverseFunc ... +#define GO(A) \ +static uintptr_t my_GTraverseFunc_fct_##A = 0; \ +static int my_GTraverseFunc_##A(void* a, void* b, void* c) \ +{ \ + return (int)RunFunctionFmt(my_GTraverseFunc_fct_##A, "ppp", a, b, c); \ +} +SUPER() +#undef GO +static void* findGTraverseFuncFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_GTraverseFunc_fct_##A == (uintptr_t)fct) return my_GTraverseFunc_##A; + SUPER() + #undef GO + #define GO(A) if(my_GTraverseFunc_fct_##A == 0) {my_GTraverseFunc_fct_##A = (uintptr_t)fct; return my_GTraverseFunc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for glib2 GTraverseFunc callback\n"); + return NULL; +} #undef SUPER @@ -1479,6 +1501,41 @@ EXPORT void my_g_assertion_message_cmpnum(void* domain, void* file, int32_t line } #endif +EXPORT void* my_g_sequence_new(x64emu_t* emu, void* d) +{ + return my->g_sequence_new(findGDestroyNotifyFct(d)); +} + +EXPORT void* my_g_sequence_lookup(x64emu_t* emu, void* seq, void* data, void* f, void* cmp_data) +{ + return my->g_sequence_lookup(seq, data, findGCompareDataFuncFct(f), cmp_data); +} + +EXPORT void* my_g_sequence_insert_sorted(x64emu_t* emu, void* seq, void* data, void* f, void* cmp_data) +{ + return my->g_sequence_insert_sorted(seq, data, findGCompareDataFuncFct(f), cmp_data); +} + +EXPORT void* my_g_tree_new(x64emu_t* emu, void* f) +{ + return my->g_tree_new(findGCompareFuncFct(f)); +} + +EXPORT void* my_g_tree_new_full(x64emu_t* emu, void* f, void* data, void* d1, void* d2) +{ + return my->g_tree_new_full(findGCompareFuncFct(f), data, findGDestroyNotifyFct(d1), findGDestroyNotifyFct(d2)); +} + +EXPORT void my_g_tree_foreach(x64emu_t* emu, void* tree, void* f, void* data) +{ + my->g_tree_foreach(tree, findGTraverseFuncFct(f), data); +} + +EXPORT void my_g_queue_insert_sorted(x64emu_t* emu, void* queue, void* data, void* f, void* user_data) +{ + my->g_queue_insert_sorted(queue, data, findGCompareDataFuncFct(f), user_data); +} + #define PRE_INIT \ if(box64_nogtk) \ return -1; diff --git a/src/wrapped/wrappedglib2_private.h b/src/wrapped/wrappedglib2_private.h index deee3912..a549e8f5 100644 --- a/src/wrapped/wrappedglib2_private.h +++ b/src/wrapped/wrappedglib2_private.h @@ -291,6 +291,7 @@ GO(g_date_time_compare, iFpp) GO(g_date_time_difference, lFpp) GO(g_date_time_equal, iFpp) GO(g_date_time_format, pFpp) +GO(g_date_time_format_iso8601, pFp) GO(g_date_time_get_day_of_month, iFp) GO(g_date_time_get_day_of_week, iFp) GO(g_date_time_get_day_of_year, iFp) @@ -708,6 +709,7 @@ GO(g_mem_chunk_new, pFpiLi) GO(g_mem_chunk_print, vFp) GO(g_mem_chunk_reset, vFp) GO(g_memdup, pFpu) +GO(g_memdup2, pFpL) GO(g_mem_is_system_malloc, iFv) GO(g_mem_profile, vFv) //GOM(g_mem_set_vtable, vFEp) @@ -859,7 +861,7 @@ GO(g_queue_insert_after, vFppp) GO(g_queue_insert_after_link, vFppp) // 2.62+ GO(g_queue_insert_before, vFppp) GO(g_queue_insert_before_link, vFppp) // 2.62+ -//GOM(g_queue_insert_sorted, vFEpppp) +GOM(g_queue_insert_sorted, vFEpppp) GO(g_queue_is_empty, iFp) GO(g_queue_link_index, iFpp) GO(g_queue_new, pFv) @@ -988,7 +990,7 @@ GO(g_sequence_get_end_iter, pFp) GO(g_sequence_get_iter_at_pos, pFpi) GO(g_sequence_get_length, iFp) GO(g_sequence_insert_before, pFpp) -//GOM(g_sequence_insert_sorted, pFpppp) +GOM(g_sequence_insert_sorted, pFEpppp) //GOM(g_sequence_insert_sorted_iter, pFpppp) GO(g_sequence_iter_compare, iFpp) GO(g_sequence_iter_get_position, iFp) @@ -998,11 +1000,11 @@ GO(g_sequence_iter_is_end, iFp) GO(g_sequence_iter_move, pFpi) GO(g_sequence_iter_next, pFp) GO(g_sequence_iter_prev, pFp) -//GOM(g_sequence_lookup, pFpppp) +GOM(g_sequence_lookup, pFEpppp) //GOM(g_sequence_lookup_iter, pFpppp) GO(g_sequence_move, vFpp) GO(g_sequence_move_range, vFppp) -//GOM(g_sequence_new, pFp) +GOM(g_sequence_new, pFEp) GO(g_sequence_prepend, pFpp) GO(g_sequence_range_get_midpoint, pFpp) GO(g_sequence_remove, vFp) @@ -1326,13 +1328,13 @@ GO(g_trash_stack_peek, pFp) GO(g_trash_stack_pop, pFp) GO(g_trash_stack_push, vFpp) GO(g_tree_destroy, vFp) -//GOM(g_tree_foreach, vFppp) +GOM(g_tree_foreach, vFEppp) GO(g_tree_height, iFp) GO(g_tree_insert, vFppp) GO(g_tree_lookup, pFpp) GO(g_tree_lookup_extended, iFpppp) -//GOM(g_tree_new, pFp) -//GOM(g_tree_new_full, pFpppp) +GOM(g_tree_new, pFEp) +GOM(g_tree_new_full, pFEpppp) //GOM(g_tree_new_with_data, pFpp) GO(g_tree_nnodes, iFp) GO(g_tree_ref, pFp) |