From e8fcb070b32aeee01c50c777a58b6d7725a4c36d Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Tue, 11 Jul 2023 20:09:26 -0700 Subject: [PATCH 1/3] Thunks/X11: Fixes variadic packing and callbacks. Two bugs here that caused thunking X11 thunking in Wine/Proton to not work. The easier of the two. The various variadic functions that we thunk actually take key:value pairs where the first is a string pointer, and the value can be various things. We need to handle these as true key:value pairs rather than finding the first nullptr and dropping the remainder. Additionally, there are 12 keys that specify a callback that FEX needs to catch and convert to host callable. Wine is the first application that I have seen that actually uses this. If these callbacks aren't wired up then it it can miss events. The harder of the two problems is the `libX11_Variadic_u64` function was subtly incorrect. Nothing had previously truly exercised this and my test program didn't notice anything wrong while writing it. The first incorrect thing was that it was subtracting the nullptr ender variable before the stack size calculation, causing the value to overwrite the stack if the number of remaining elements was event. Secondly the assembly that was storing two elements per step was decrementing the counter by 8 instead of two. Didn't pick this up before since I believe the code was only hitting the non-pair path before. This gets Proton thunking working under FEX now. --- ThunkLibs/libX11/X11Common.h | 25 +++ ThunkLibs/libX11/libX11_Guest.cpp | 281 +++++++++++++++++--------- ThunkLibs/libX11/libX11_Host.cpp | 81 ++++++-- ThunkLibs/libX11/libX11_interface.cpp | 20 +- 4 files changed, 288 insertions(+), 119 deletions(-) create mode 100644 ThunkLibs/libX11/X11Common.h diff --git a/ThunkLibs/libX11/X11Common.h b/ThunkLibs/libX11/X11Common.h new file mode 100644 index 000000000..685bc503b --- /dev/null +++ b/ThunkLibs/libX11/X11Common.h @@ -0,0 +1,25 @@ +#pragma once + +#include +#include +extern "C" { +#include +} + +namespace X11 { + constexpr static std::array CallbackKeys = {{ + XNGeometryCallback, + XNDestroyCallback, + XNPreeditStartCallback, + XNPreeditDoneCallback, + XNPreeditDrawCallback, + XNPreeditCaretCallback, + XNPreeditStateNotifyCallback, + XNStatusStartCallback, + XNStatusDoneCallback, + XNStatusDrawCallback, + XNR6PreeditCallback, + XNStringConversionCallback, + }}; + +} diff --git a/ThunkLibs/libX11/libX11_Guest.cpp b/ThunkLibs/libX11/libX11_Guest.cpp index 31b95400e..b32ad9228 100644 --- a/ThunkLibs/libX11/libX11_Guest.cpp +++ b/ThunkLibs/libX11/libX11_Guest.cpp @@ -20,134 +20,214 @@ extern "C" { #undef max } +#include +#include +#include #include #include #include #include +#include #include +#include #include "common/Guest.h" #include #include "thunkgen_guest_libX11.inl" +#include "X11Common.h" // Custom implementations // #include +namespace { + // The various X11 variadic functions take a flattened sequence of key:value pairs as arguments. + // The key element is a pointer to a string. + // The value element is a pointer to the data of that key type. + // + // Some keys describe function callbacks for various events that the server interface can call. + // FEX needs to walk these keys and ensure any callback function has a trampoline so the native + // X11 library can call it. + template + static std::list ConvertCallbackArguments(std::vector &IncomingArguments) { + assert(IncomingArguments.size() % 2 == 0 && "Incoming arguments needs to be in pairs"); + + std::list Callbacks; + // Walk the arguments and convert any callbacks. + const size_t ArgumentPairs = IncomingArguments.size() / 2; + for (size_t i = 0; i < ArgumentPairs; ++i) { + const char *Key = static_cast(IncomingArguments[i * 2]); + void** Data = &IncomingArguments[i * 2 + 1]; + if (!*Data) { + continue; + } + + // Check if the key is a callback and needs to be modified. + auto KeyIt = std::find(X11::CallbackKeys.begin(), X11::CallbackKeys.end(), Key); + if (KeyIt == X11::CallbackKeys.end()) { + continue; + } + + // Key matches a callback, we need to wrap this. + CallbackType *IncomingCallback = reinterpret_cast(*Data); + CallbackType *ConvertedCallback = &Callbacks.emplace_back(CallbackType { + // Client data stays the same. + .client_data = IncomingCallback->client_data, + + // Callback needs a trampoline. + .callback = AllocateHostTrampolineForGuestFunction(IncomingCallback->callback), + }); + + // Add this converted back in. + *Data = ConvertedCallback; + } + + return Callbacks; + } +} + extern "C" { char* XGetICValues(XIC ic, ...) { - fprintf(stderr, "XGetICValues\n"); - va_list ap; - std::vector args; - va_start(ap, ic); - for (;;) { - auto arg = va_arg(ap, unsigned long); - if (arg == 0) - break; - args.push_back(arg); - fprintf(stderr, "%016lX\n", arg); - } + fprintf(stderr, "XGetICValues\n"); + va_list ap; + std::vector args; + va_start(ap, ic); + for (;;) { + auto arg = va_arg(ap, void*); + if (arg == 0) + break; + args.push_back(arg); + fprintf(stderr, "%p\n", arg); + } - va_end(ap); - auto rv = fexfn_pack_XGetICValues_internal(ic, args.size(), &args[0]); - fprintf(stderr, "RV: %p\n", rv); - return rv; + va_end(ap); + + auto rv = fexfn_pack_XGetICValues_internal(ic, args.size(), &args[0]); + fprintf(stderr, "RV: %p\n", rv); + return rv; } char* XSetICValues(XIC ic, ...) { - fprintf(stderr, "XSetICValues\n"); - va_list ap; - std::vector args; - va_start(ap, ic); - for (;;) { - auto arg = va_arg(ap, unsigned long); - if (arg == 0) - break; - args.push_back(arg); - fprintf(stderr, "%016lX\n", arg); - } + fprintf(stderr, "XSetICValues\n"); + va_list ap; + std::vector IncomingArguments; + va_start(ap, ic); + for (;;) { + auto Key = va_arg(ap, void*); + if (Key == 0) + break; - va_end(ap); - auto rv = fexfn_pack_XSetICValues_internal(ic, args.size(), &args[0]); - fprintf(stderr, "RV: %p\n", rv); - return rv; + auto Value = va_arg(ap, void*); + IncomingArguments.emplace_back(Key); + IncomingArguments.emplace_back(Value); + } + + va_end(ap); + + // Callback memory needs to live beyond internal function call. + std::list Callbacks = ConvertCallbackArguments(IncomingArguments); + + auto rv = fexfn_pack_XSetICValues_internal(ic, IncomingArguments.size(), &IncomingArguments[0]); + fprintf(stderr, "RV: %p\n", rv); + return rv; } char* XGetIMValues(XIM ic, ...) { - fprintf(stderr, "XGetIMValues\n"); - va_list ap; - std::vector args; - va_start(ap, ic); - for (;;) { - auto arg = va_arg(ap, void*); - if (arg == 0) - break; - args.push_back(arg); - fprintf(stderr, "%p\n", arg); - } + fprintf(stderr, "XGetIMValues\n"); + va_list ap; + std::vector args; + va_start(ap, ic); + for (;;) { + auto arg = va_arg(ap, void*); + if (arg == 0) + break; + args.push_back(arg); + fprintf(stderr, "%p\n", arg); + } - va_end(ap); - auto rv = fexfn_pack_XGetIMValues_internal(ic, args.size(), &args[0]); - fprintf(stderr, "RV: %p\n", rv); - return rv; + va_end(ap); + auto rv = fexfn_pack_XGetIMValues_internal(ic, args.size(), &args[0]); + fprintf(stderr, "RV: %p\n", rv); + return rv; } char* XSetIMValues(XIM ic, ...) { - fprintf(stderr, "XSetIMValues\n"); - va_list ap; - std::vector args; - va_start(ap, ic); - for (;;) { - auto arg = va_arg(ap, void*); - if (arg == 0) - break; - args.push_back(arg); - fprintf(stderr, "%p\n", arg); - } + fprintf(stderr, "XSetIMValues\n"); + va_list ap; + std::vector IncomingArguments; + va_start(ap, ic); + for (;;) { + auto Key = va_arg(ap, void*); + if (Key == 0) + break; - va_end(ap); - auto rv = fexfn_pack_XSetIMValues_internal(ic, args.size(), &args[0]); - fprintf(stderr, "RV: %p\n", rv); - return rv; + auto Value = va_arg(ap, void*); + IncomingArguments.emplace_back(Key); + IncomingArguments.emplace_back(Value); + fprintf(stderr, "%s\n", (char*)Key); + } + + va_end(ap); + + // Callback memory needs to live beyond internal function call. + std::list Callbacks = ConvertCallbackArguments(IncomingArguments); + + // Send a count (not including nullptr); + auto rv = fexfn_pack_XSetIMValues_internal(ic, IncomingArguments.size(), &IncomingArguments[0]); + fprintf(stderr, "RV: %p\n", rv); + return rv; } _XIC* XCreateIC(XIM im, ...) { - fprintf(stderr, "XCreateIC\n"); - va_list ap; - std::vector args; - va_start(ap, im); - for (;;) { - auto arg = va_arg(ap, unsigned long); - if (arg == 0) - break; - args.push_back(arg); - fprintf(stderr, "%016lX\n", arg); - } + fprintf(stderr, "XCreateIC\n"); + va_list ap; + std::vector IncomingArguments; - va_end(ap); - auto rv = fexfn_pack_XCreateIC_internal(im, args.size(), &args[0]); - fprintf(stderr, "RV: %p\n", rv); - return rv; + va_start(ap, im); + for (;;) { + auto Key = va_arg(ap, void*); + if (Key == 0) + break; + + auto Value = va_arg(ap, void*); + IncomingArguments.emplace_back(Key); + IncomingArguments.emplace_back(Value); + } + + va_end(ap); + + // Callback memory needs to live beyond internal function call. + std::list Callbacks = ConvertCallbackArguments(IncomingArguments); + + auto rv = fexfn_pack_XCreateIC_internal(im, IncomingArguments.size(), &IncomingArguments[0]); + return rv; } XVaNestedList XVaCreateNestedList(int unused_arg, ...) { - fprintf(stderr, "XVaCreateNestedList\n"); - va_list ap; - std::vector args; - va_start(ap, unused_arg); - for (;;) { - auto arg = va_arg(ap, void*); - if (arg == 0) - break; - args.push_back(arg); - fprintf(stderr, "%p\n", arg); - } + fprintf(stderr, "XVaCreateNestedList\n"); + va_list ap; + std::vector IncomingArguments; - va_end(ap); - auto rv = fexfn_pack_XVaCreateNestedList_internal(unused_arg, args.size(), &args[0]); - fprintf(stderr, "RV: %p\n", rv); - return rv; + va_start(ap, unused_arg); + for (;;) { + auto Key = va_arg(ap, void*); + if (Key == 0) + break; + + auto Value = va_arg(ap, void*); + IncomingArguments.emplace_back(Key); + IncomingArguments.emplace_back(Value); + } + + va_end(ap); + + // Callback memory needs to live beyond internal function call. + std::list Callbacks = ConvertCallbackArguments(IncomingArguments); + + auto rv = fexfn_pack_XVaCreateNestedList_internal(unused_arg, IncomingArguments.size(), &IncomingArguments[0]); + fprintf(stderr, "RV: %p\n", rv); + return rv; } static void LockMutexFunction(LockInfoPtr) { @@ -265,6 +345,27 @@ extern "C" { return ret; } + Bool XRegisterIMInstantiateCallback(Display* dpy, + struct _XrmHashBucketRec* rdb, + char* res_name, + char* res_class, + XIDProc callback, + XPointer client_data + ) { + return fexfn_pack_XRegisterIMInstantiateCallback(dpy, rdb, res_name, res_class, AllocateHostTrampolineForGuestFunction(callback), client_data); + } + + Bool XUnregisterIMInstantiateCallback( + Display* dpy, + struct _XrmHashBucketRec* rdb, + char* res_name, + char* res_class, + XIDProc callback, + XPointer client_data + ) { + return fexfn_pack_XUnregisterIMInstantiateCallback(dpy, rdb, res_name, res_class, AllocateHostTrampolineForGuestFunction(callback), client_data); + } + void (*_XLockMutex_fn)(LockInfoPtr) = LockMutexFunction; void (*_XUnlockMutex_fn)(LockInfoPtr) = UnlockMutexFunction; LockInfoPtr _Xglobal_lock = (LockInfoPtr)0x4142434445464748ULL; diff --git a/ThunkLibs/libX11/libX11_Host.cpp b/ThunkLibs/libX11/libX11_Host.cpp index 793e3aaf2..d62e2625e 100644 --- a/ThunkLibs/libX11/libX11_Host.cpp +++ b/ThunkLibs/libX11/libX11_Host.cpp @@ -5,7 +5,9 @@ desc: Handles callbacks and varargs $end_info$ */ +#include #include +#include #include #include @@ -31,6 +33,7 @@ extern "C" { #include #include "thunkgen_host_libX11.inl" +#include "X11Common.h" #ifdef _M_ARM_64 // This Variadic asm only works for one signature @@ -46,15 +49,15 @@ extern "C" { // // Incoming: // x0 = XIM -// x1 = count -// x2 = array of 64-bit values +// x1 = count (excluding final nullptr) +// x2 = array of 64-bit values (excluding final nullptr) // x3 = Function to call // // Outgoing: // x0: Ptr __attribute__((naked)) -void *libX11_Variadic_u64(uint64_t a_0, size_t count, unsigned long *list, void *Func) { +void *libX11_Variadic_u64(uint64_t a_0, size_t count, void **list, void *Func) { asm volatile(R"( # Move our function to x8, which will be unused mov x8, x3 @@ -122,10 +125,11 @@ void *libX11_Variadic_u64(uint64_t a_0, size_t count, unsigned long *list, void # x1 = # x9 = - # Stack objects - # Count >= 7 + # The number of arguments on the stack will always be (Count - 7) + 1 + # Subtract 6 count objects - # Leaves us at least 1 (nullptr) + # Gives us the total number of objects that need to be stored on to the stack. + # If exactly 7 objects then only nullptr ends up on the stack. sub x1, x1, 6 # Round up to the nearest pair @@ -141,29 +145,33 @@ void *libX11_Variadic_u64(uint64_t a_0, size_t count, unsigned long *list, void # Store how much data we added to the stack in our callee saved register we stole mov x28, x10 - # Subtract one member due to nullptr ender - sub x10, x1, 1 - - # x11 - stack offset + # x11 - stack offset - for stack Arguments mov x11, sp - # x12 - load offset + # x12 - load offset into input array (skipping the first 7 arguments) add x12, x9, (7 * 8) - cmp x10, 1 + # Compute the number of elements excluding the terminating nullptr + subs x10, x1, 1 + b.eq .single%= b.lt .no_single%= .load_pair%=: + # Copy data from x12 to x11 ldp x1, x2, [x12], 16 stp x1, x2, [x11], 16 - sub x10, x10, 8 + + # Stored two so subtract from the count. + sub x10, x10, 2 cmp x10, 1 b.gt .load_pair%= b.lt .no_single%= - # One variable at most .single%=: + # One variable at most + # Load the argument from the source. + # Then store that and the terminating nullptr. ldr x1, [x12] stp x1, xzr, [x11] b .top_reg_args%= @@ -201,7 +209,32 @@ void *libX11_Variadic_u64(uint64_t a_0, size_t count, unsigned long *list, void #endif -_XIC *fexfn_impl_libX11_XCreateIC_internal(XIM a_0, size_t count, unsigned long *list) { +// Walks the array of key:value pairs provided from the guest code side. +// Finalizing any callback functions that the guest side prepared for us. +template +void FinalizeIncomingCallbacks(size_t Count, void **list) { + assert(Count % 2 == 0 && "Incoming arguments needs to be in pairs"); + for (size_t i = 0; i < (Count / 2); ++i) { + const char *Key = static_cast(list[i * 2]); + void** Data = &list[i * 2 + 1]; + if (!*Data) { + continue; + } + + // Check if the key is a callback and needs to be modified. + auto KeyIt = std::find(X11::CallbackKeys.begin(), X11::CallbackKeys.end(), Key); + if (KeyIt == X11::CallbackKeys.end()) { + continue; + } + + CallbackType *IncomingCallback = reinterpret_cast(*Data); + FinalizeHostTrampolineForGuestFunction(IncomingCallback->callback); + } +} + +_XIC *fexfn_impl_libX11_XCreateIC_internal(XIM a_0, size_t count, void **list) { + FinalizeIncomingCallbacks(count, list); + switch(count) { case 0: return fexldr_ptr_libX11_XCreateIC(a_0, nullptr); break; case 1: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], nullptr); break; @@ -222,7 +255,7 @@ _XIC *fexfn_impl_libX11_XCreateIC_internal(XIM a_0, size_t count, unsigned long } } -char* fexfn_impl_libX11_XGetICValues_internal(XIC a_0, size_t count, unsigned long *list) { +char* fexfn_impl_libX11_XGetICValues_internal(XIC a_0, size_t count, void **list) { switch(count) { case 0: return fexldr_ptr_libX11_XGetICValues(a_0, nullptr); break; case 1: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], nullptr); break; @@ -243,7 +276,9 @@ char* fexfn_impl_libX11_XGetICValues_internal(XIC a_0, size_t count, unsigned lo } } -char* fexfn_impl_libX11_XSetICValues_internal(XIC a_0, size_t count, unsigned long *list) { +char* fexfn_impl_libX11_XSetICValues_internal(XIC a_0, size_t count, void **list) { + FinalizeIncomingCallbacks(count, list); + switch(count) { case 0: return fexldr_ptr_libX11_XSetICValues(a_0, nullptr); break; case 1: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], nullptr); break; @@ -277,7 +312,7 @@ char* fexfn_impl_libX11_XGetIMValues_internal(XIM a_0, size_t count, void **list case 8: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); break; default: #ifdef _M_ARM_64 - return reinterpret_cast(libX11_Variadic_u64(reinterpret_cast(a_0), count, reinterpret_cast(list), reinterpret_cast(fexldr_ptr_libX11_XGetIMValues))); + return reinterpret_cast(libX11_Variadic_u64(reinterpret_cast(a_0), count, list, reinterpret_cast(fexldr_ptr_libX11_XGetIMValues))); #else fprintf(stderr, "XGetIMValues_internal FAILURE\n"); abort(); @@ -286,6 +321,8 @@ char* fexfn_impl_libX11_XGetIMValues_internal(XIM a_0, size_t count, void **list } char* fexfn_impl_libX11_XSetIMValues_internal(XIM a_0, size_t count, void **list) { + FinalizeIncomingCallbacks(count, list); + switch(count) { case 0: return fexldr_ptr_libX11_XSetIMValues(a_0, nullptr); break; case 1: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], nullptr); break; @@ -298,7 +335,7 @@ char* fexfn_impl_libX11_XSetIMValues_internal(XIM a_0, size_t count, void **list case 8: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); break; default: #ifdef _M_ARM_64 - return reinterpret_cast(libX11_Variadic_u64(reinterpret_cast(a_0), count, reinterpret_cast(list), reinterpret_cast(fexldr_ptr_libX11_XSetIMValues))); + return reinterpret_cast(libX11_Variadic_u64(reinterpret_cast(a_0), count, list, reinterpret_cast(fexldr_ptr_libX11_XSetIMValues))); #else fprintf(stderr, "XSetIMValues_internal FAILURE\n"); abort(); @@ -306,7 +343,9 @@ char* fexfn_impl_libX11_XSetIMValues_internal(XIM a_0, size_t count, void **list } } -XVaNestedList fexfn_impl_libX11_XVaCreateNestedList_internal(int unused_arg, size_t count, void** list) { +XVaNestedList fexfn_impl_libX11_XVaCreateNestedList_internal(int unused_arg, size_t count, void **list) { + FinalizeIncomingCallbacks(count, list); + switch(count) { case 0: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, nullptr); break; case 1: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], nullptr); break; @@ -319,7 +358,7 @@ XVaNestedList fexfn_impl_libX11_XVaCreateNestedList_internal(int unused_arg, siz case 8: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); break; default: #ifdef _M_ARM_64 - return reinterpret_cast(libX11_Variadic_u64(unused_arg, count, reinterpret_cast(list), reinterpret_cast(fexldr_ptr_libX11_XVaCreateNestedList))); + return reinterpret_cast(libX11_Variadic_u64(unused_arg, count, list, reinterpret_cast(fexldr_ptr_libX11_XVaCreateNestedList))); #else fprintf(stderr, "XVaCreateNestedList_internal FAILURE\n"); abort(); diff --git a/ThunkLibs/libX11/libX11_interface.cpp b/ThunkLibs/libX11/libX11_interface.cpp index 698bc657a..188826056 100644 --- a/ThunkLibs/libX11/libX11_interface.cpp +++ b/ThunkLibs/libX11/libX11_interface.cpp @@ -45,6 +45,10 @@ template<> struct fex_gen_type> {}; / template<> struct fex_gen_type {}; // XDisplay::async_handlers->handler +template<> struct fex_gen_type {}; // XIMProc +template<> struct fex_gen_type {}; // XICProc +template<> struct fex_gen_type {}; // XIDProc + template<> struct fex_gen_type {}; // XImage::f.destroy_image template<> struct fex_gen_type {}; // XImage::f.get_pixel template<> struct fex_gen_type {}; // XImage::f.put_pixel @@ -653,15 +657,15 @@ template<> struct fex_gen_config {}; template<> struct fex_gen_config {}; template<> struct fex_gen_config {}; template<> struct fex_gen_config { - using uniform_va_type = void*; + using uniform_va_type = void*; }; template<> struct fex_gen_config { - using uniform_va_type = void*; + using uniform_va_type = void*; }; template<> struct fex_gen_config {}; template<> struct fex_gen_config {}; template<> struct fex_gen_config { - using uniform_va_type = unsigned long; + using uniform_va_type = void*; }; template<> struct fex_gen_config {}; template<> struct fex_gen_config {}; @@ -670,11 +674,11 @@ template<> struct fex_gen_config {}; template<> struct fex_gen_config {}; template<> struct fex_gen_config {}; template<> struct fex_gen_config { - using uniform_va_type = unsigned long; + using uniform_va_type = void*; }; template<> struct fex_gen_config { - using uniform_va_type = unsigned long; + using uniform_va_type = void*; }; template<> struct fex_gen_config {}; @@ -683,11 +687,11 @@ template<> struct fex_gen_config {}; template<> struct fex_gen_config {}; template<> struct fex_gen_config {}; template<> struct fex_gen_config { - using uniform_va_type = void*; + using uniform_va_type = void*; }; -template<> struct fex_gen_config {}; -template<> struct fex_gen_config {}; +template<> struct fex_gen_config : fexgen::custom_guest_entrypoint {}; +template<> struct fex_gen_config : fexgen::custom_guest_entrypoint {}; template<> struct fex_gen_config {}; template<> struct fex_gen_config {}; template<> struct fex_gen_config {}; From 02fc02964b911fca4345c137704ed0cd291b5646 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Thu, 20 Jul 2023 13:47:35 -0700 Subject: [PATCH 2/3] Thunks/LibX11: Removes variadic multiple argument copying Just copy one at a time. --- ThunkLibs/libX11/libX11_Host.cpp | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/ThunkLibs/libX11/libX11_Host.cpp b/ThunkLibs/libX11/libX11_Host.cpp index d62e2625e..c6f03febc 100644 --- a/ThunkLibs/libX11/libX11_Host.cpp +++ b/ThunkLibs/libX11/libX11_Host.cpp @@ -154,29 +154,13 @@ void *libX11_Variadic_u64(uint64_t a_0, size_t count, void **list, void *Func) { # Compute the number of elements excluding the terminating nullptr subs x10, x1, 1 - b.eq .single%= - b.lt .no_single%= - - .load_pair%=: - # Copy data from x12 to x11 - ldp x1, x2, [x12], 16 - stp x1, x2, [x11], 16 - - # Stored two so subtract from the count. - sub x10, x10, 2 - cmp x10, 1 - b.gt .load_pair%= - b.lt .no_single%= - .single%=: - # One variable at most - # Load the argument from the source. - # Then store that and the terminating nullptr. - ldr x1, [x12] - stp x1, xzr, [x11] - b .top_reg_args%= + ldr x1, [x12], 8 + str x1, [x11], 8 + sub x10, x10, 1 + cmp x10, 1 + b.ge .single%= - .no_single%=: # Need to store nullptr str xzr, [x11] From eca80b6046cc169902c045df78ab929446a30813 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Thu, 20 Jul 2023 16:00:43 -0700 Subject: [PATCH 3/3] Remove inline assembly 64 should be enough for anybody. --- ThunkLibs/libX11/libX11_Host.cpp | 2306 +++++++++++++++++++++++++++--- 1 file changed, 2070 insertions(+), 236 deletions(-) diff --git a/ThunkLibs/libX11/libX11_Host.cpp b/ThunkLibs/libX11/libX11_Host.cpp index c6f03febc..c73d7a6ea 100644 --- a/ThunkLibs/libX11/libX11_Host.cpp +++ b/ThunkLibs/libX11/libX11_Host.cpp @@ -35,164 +35,6 @@ extern "C" { #include "thunkgen_host_libX11.inl" #include "X11Common.h" -#ifdef _M_ARM_64 -// This Variadic asm only works for one signature -// ({uint32_t,uint64_t} a_0, size_t count, uint64_t *list) -// -// Variadic ABI for AArch64 (flat uint64_t): -// Arguments 0-7 is in registers -// 8+ stored on to stack -// -// The X11 functions we are calling need an additional nullptr passed in. -// nullptr will be at the end of the list of generated stack items when called through this. -// We will always generate a variadic frame of `count` objects + 1 for nullptr. -// -// Incoming: -// x0 = XIM -// x1 = count (excluding final nullptr) -// x2 = array of 64-bit values (excluding final nullptr) -// x3 = Function to call -// -// Outgoing: -// x0: Ptr - -__attribute__((naked)) -void *libX11_Variadic_u64(uint64_t a_0, size_t count, void **list, void *Func) { - asm volatile(R"( - # Move our function to x8, which will be unused - mov x8, x3 - - # Move our list to x9, which will be unused - mov x9, x2 - - # >6 means use stack callback - cmp x1, 6 - b.gt .stack%= - - # Setup a jump table - adr x10, .zero%= - adr x11, .jump_table%= - ldrb w11, [x11, x1] - add x10, x10, x11, lsl 2 - br x10 - - .zero%=: - mov x1, 0 - br x8 - - .one%=: - ldr x1, [x9, 0] - mov x2, #0 - br x8 - - .two%=: - ldp x1, x2, [x9, 0] - mov x3, 0 - br x8 - - .three%=: - ldp x1, x2, [x9, 0] - ldr x3, [x9, 16] - mov x4, 0 - br x8 - - .four%=: - ldp x1, x2, [x9, 0] - ldp x3, x4, [x9, 16] - mov x5, 0 - br x8 - - .five%=: - ldp x1, x2, [x9, 0] - ldp x3, x4, [x9, 16] - ldr x5, [x9, 32] - mov x6, 0 - br x8 - - .six%=: - ldp x1, x2, [x9, 0] - ldp x3, x4, [x9, 16] - ldp x5, x6, [x9, 32] - mov x7, 0 - br x8 - - .stack%=: - # Store LR and x28 - stp x28, x30, [sp, -16]! - - # x8 = - # x0 = - # x1 = - # x9 = - - # The number of arguments on the stack will always be (Count - 7) + 1 - - # Subtract 6 count objects - # Gives us the total number of objects that need to be stored on to the stack. - # If exactly 7 objects then only nullptr ends up on the stack. - sub x1, x1, 6 - - # Round up to the nearest pair - and x10, x1, 1 - add x10, x10, x1 - - # Multiply by eight to get the size of stack we need to create - lsl x10, x10, 3 - - # Allocate stack space - sub sp, sp, x10 - - # Store how much data we added to the stack in our callee saved register we stole - mov x28, x10 - - # x11 - stack offset - for stack Arguments - mov x11, sp - - # x12 - load offset into input array (skipping the first 7 arguments) - add x12, x9, (7 * 8) - - # Compute the number of elements excluding the terminating nullptr - subs x10, x1, 1 - - .single%=: - ldr x1, [x12], 8 - str x1, [x11], 8 - sub x10, x10, 1 - cmp x10, 1 - b.ge .single%= - - # Need to store nullptr - str xzr, [x11] - - .top_reg_args%=: - ldp x1, x2, [x9, 0] - ldp x3, x4, [x9, 16] - ldp x5, x6, [x9, 32] - ldr x7, [x9, 48] - - # Stack is setup going in to this - blr x8 - - # Move stack back - add sp, sp, x28 - ldp x28, x30, [sp], 16 - ret - - .jump_table%=: - .byte (.zero%= - .zero%=) >> 2 - .byte (.one%= - .zero%=) >> 2 - .byte (.two%= - .zero%=) >> 2 - .byte (.three%= - .zero%=) >> 2 - .byte (.four%= - .zero%=) >> 2 - .byte (.five%= - .zero%=) >> 2 - .byte (.six%= - .zero%=) >> 2 - )" - ::: "memory" - ); -} - -#endif - // Walks the array of key:value pairs provided from the guest code side. // Finalizing any callback functions that the guest side prepared for us. template @@ -220,43 +62,707 @@ _XIC *fexfn_impl_libX11_XCreateIC_internal(XIM a_0, size_t count, void **list) { FinalizeIncomingCallbacks(count, list); switch(count) { - case 0: return fexldr_ptr_libX11_XCreateIC(a_0, nullptr); break; - case 1: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], nullptr); break; - case 2: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], nullptr); break; - case 3: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], nullptr); break; - case 4: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], nullptr); break; - case 5: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); break; - case 6: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); break; - case 7: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); break; - case 8: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); break; + case 0: return fexldr_ptr_libX11_XCreateIC(a_0, nullptr); + break; + case 1: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], nullptr); + break; + case 2: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], nullptr); + break; + case 3: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], nullptr); + break; + case 4: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], nullptr); + break; + case 5: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); + break; + case 6: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); + break; + case 7: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); + break; + case 8: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); + break; + case 9: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], nullptr); + break; + case 10: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], nullptr); + break; + case 11: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], nullptr); + break; + case 12: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], nullptr); + break; + case 13: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], nullptr); + break; + case 14: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], nullptr); + break; + case 15: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], nullptr); + break; + case 16: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], nullptr); + break; + case 17: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], nullptr); + break; + case 18: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], nullptr); + break; + case 19: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], nullptr); + break; + case 20: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], nullptr); + break; + case 21: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], nullptr); + break; + case 22: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], nullptr); + break; + case 23: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], nullptr); + break; + case 24: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], nullptr); + break; + case 25: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], nullptr); + break; + case 26: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], nullptr); + break; + case 27: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], nullptr); + break; + case 28: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], nullptr); + break; + case 29: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], nullptr); + break; + case 30: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], nullptr); + break; + case 31: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], nullptr); + break; + case 32: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], nullptr); + break; + case 33: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], nullptr); + break; + case 34: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], nullptr); + break; + case 35: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], nullptr); + break; + case 36: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], nullptr); + break; + case 37: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], nullptr); + break; + case 38: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], nullptr); + break; + case 39: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], nullptr); + break; + case 40: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], nullptr); + break; + case 41: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], nullptr); + break; + case 42: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], nullptr); + break; + case 43: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], nullptr); + break; + case 44: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], nullptr); + break; + case 45: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], nullptr); + break; + case 46: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], nullptr); + break; + case 47: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], nullptr); + break; + case 48: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], nullptr); + break; + case 49: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], nullptr); + break; + case 50: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], nullptr); + break; + case 51: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], nullptr); + break; + case 52: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], nullptr); + break; + case 53: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], nullptr); + break; + case 54: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], nullptr); + break; + case 55: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], nullptr); + break; + case 56: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], nullptr); + break; + case 57: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], nullptr); + break; + case 58: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], nullptr); + break; + case 59: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], nullptr); + break; + case 60: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], nullptr); + break; + case 61: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], nullptr); + break; + case 62: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], nullptr); + break; + case 63: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], list[62], nullptr); + break; default: -#ifdef _M_ARM_64 - return reinterpret_cast<_XIC*>(libX11_Variadic_u64(reinterpret_cast(a_0), count, list, reinterpret_cast(fexldr_ptr_libX11_XCreateIC))); -#else fprintf(stderr, "XCreateIC_internal FAILURE\n"); return nullptr; -#endif } } char* fexfn_impl_libX11_XGetICValues_internal(XIC a_0, size_t count, void **list) { switch(count) { - case 0: return fexldr_ptr_libX11_XGetICValues(a_0, nullptr); break; - case 1: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], nullptr); break; - case 2: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], nullptr); break; - case 3: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], nullptr); break; - case 4: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], nullptr); break; - case 5: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); break; - case 6: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); break; - case 7: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); break; - case 8: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); break; + case 0: return fexldr_ptr_libX11_XGetICValues(a_0, nullptr); + break; + case 1: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], nullptr); + break; + case 2: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], nullptr); + break; + case 3: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], nullptr); + break; + case 4: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], nullptr); + break; + case 5: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); + break; + case 6: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); + break; + case 7: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); + break; + case 8: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); + break; + case 9: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], nullptr); + break; + case 10: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], nullptr); + break; + case 11: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], nullptr); + break; + case 12: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], nullptr); + break; + case 13: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], nullptr); + break; + case 14: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], nullptr); + break; + case 15: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], nullptr); + break; + case 16: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], nullptr); + break; + case 17: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], nullptr); + break; + case 18: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], nullptr); + break; + case 19: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], nullptr); + break; + case 20: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], nullptr); + break; + case 21: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], nullptr); + break; + case 22: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], nullptr); + break; + case 23: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], nullptr); + break; + case 24: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], nullptr); + break; + case 25: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], nullptr); + break; + case 26: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], nullptr); + break; + case 27: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], nullptr); + break; + case 28: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], nullptr); + break; + case 29: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], nullptr); + break; + case 30: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], nullptr); + break; + case 31: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], nullptr); + break; + case 32: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], nullptr); + break; + case 33: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], nullptr); + break; + case 34: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], nullptr); + break; + case 35: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], nullptr); + break; + case 36: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], nullptr); + break; + case 37: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], nullptr); + break; + case 38: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], nullptr); + break; + case 39: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], nullptr); + break; + case 40: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], nullptr); + break; + case 41: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], nullptr); + break; + case 42: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], nullptr); + break; + case 43: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], nullptr); + break; + case 44: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], nullptr); + break; + case 45: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], nullptr); + break; + case 46: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], nullptr); + break; + case 47: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], nullptr); + break; + case 48: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], nullptr); + break; + case 49: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], nullptr); + break; + case 50: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], nullptr); + break; + case 51: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], nullptr); + break; + case 52: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], nullptr); + break; + case 53: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], nullptr); + break; + case 54: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], nullptr); + break; + case 55: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], nullptr); + break; + case 56: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], nullptr); + break; + case 57: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], nullptr); + break; + case 58: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], nullptr); + break; + case 59: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], nullptr); + break; + case 60: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], nullptr); + break; + case 61: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], nullptr); + break; + case 62: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], nullptr); + break; + case 63: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], list[62], nullptr); + break; default: -#ifdef _M_ARM_64 - return reinterpret_cast(libX11_Variadic_u64(reinterpret_cast(a_0), count, list, reinterpret_cast(fexldr_ptr_libX11_XGetICValues))); -#else fprintf(stderr, "XGetICValues_internal FAILURE\n"); abort(); -#endif } } @@ -264,43 +770,707 @@ char* fexfn_impl_libX11_XSetICValues_internal(XIC a_0, size_t count, void **list FinalizeIncomingCallbacks(count, list); switch(count) { - case 0: return fexldr_ptr_libX11_XSetICValues(a_0, nullptr); break; - case 1: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], nullptr); break; - case 2: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], nullptr); break; - case 3: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], nullptr); break; - case 4: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], nullptr); break; - case 5: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); break; - case 6: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); break; - case 7: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); break; - case 8: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); break; + case 0: return fexldr_ptr_libX11_XSetICValues(a_0, nullptr); + break; + case 1: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], nullptr); + break; + case 2: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], nullptr); + break; + case 3: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], nullptr); + break; + case 4: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], nullptr); + break; + case 5: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); + break; + case 6: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); + break; + case 7: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); + break; + case 8: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); + break; + case 9: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], nullptr); + break; + case 10: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], nullptr); + break; + case 11: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], nullptr); + break; + case 12: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], nullptr); + break; + case 13: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], nullptr); + break; + case 14: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], nullptr); + break; + case 15: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], nullptr); + break; + case 16: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], nullptr); + break; + case 17: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], nullptr); + break; + case 18: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], nullptr); + break; + case 19: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], nullptr); + break; + case 20: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], nullptr); + break; + case 21: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], nullptr); + break; + case 22: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], nullptr); + break; + case 23: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], nullptr); + break; + case 24: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], nullptr); + break; + case 25: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], nullptr); + break; + case 26: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], nullptr); + break; + case 27: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], nullptr); + break; + case 28: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], nullptr); + break; + case 29: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], nullptr); + break; + case 30: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], nullptr); + break; + case 31: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], nullptr); + break; + case 32: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], nullptr); + break; + case 33: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], nullptr); + break; + case 34: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], nullptr); + break; + case 35: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], nullptr); + break; + case 36: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], nullptr); + break; + case 37: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], nullptr); + break; + case 38: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], nullptr); + break; + case 39: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], nullptr); + break; + case 40: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], nullptr); + break; + case 41: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], nullptr); + break; + case 42: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], nullptr); + break; + case 43: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], nullptr); + break; + case 44: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], nullptr); + break; + case 45: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], nullptr); + break; + case 46: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], nullptr); + break; + case 47: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], nullptr); + break; + case 48: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], nullptr); + break; + case 49: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], nullptr); + break; + case 50: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], nullptr); + break; + case 51: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], nullptr); + break; + case 52: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], nullptr); + break; + case 53: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], nullptr); + break; + case 54: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], nullptr); + break; + case 55: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], nullptr); + break; + case 56: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], nullptr); + break; + case 57: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], nullptr); + break; + case 58: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], nullptr); + break; + case 59: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], nullptr); + break; + case 60: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], nullptr); + break; + case 61: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], nullptr); + break; + case 62: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], nullptr); + break; + case 63: return fexldr_ptr_libX11_XSetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], list[62], nullptr); + break; default: -#ifdef _M_ARM_64 - return reinterpret_cast(libX11_Variadic_u64(reinterpret_cast(a_0), count, list, reinterpret_cast(fexldr_ptr_libX11_XSetICValues))); -#else fprintf(stderr, "XSetICValues_internal FAILURE\n"); abort(); -#endif } } char* fexfn_impl_libX11_XGetIMValues_internal(XIM a_0, size_t count, void **list) { switch(count) { - case 0: return fexldr_ptr_libX11_XGetIMValues(a_0, nullptr); break; - case 1: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], nullptr); break; - case 2: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], nullptr); break; - case 3: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], nullptr); break; - case 4: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], nullptr); break; - case 5: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); break; - case 6: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); break; - case 7: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); break; - case 8: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); break; + case 0: return fexldr_ptr_libX11_XGetIMValues(a_0, nullptr); + break; + case 1: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], nullptr); + break; + case 2: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], nullptr); + break; + case 3: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], nullptr); + break; + case 4: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], nullptr); + break; + case 5: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); + break; + case 6: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); + break; + case 7: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); + break; + case 8: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); + break; + case 9: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], nullptr); + break; + case 10: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], nullptr); + break; + case 11: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], nullptr); + break; + case 12: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], nullptr); + break; + case 13: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], nullptr); + break; + case 14: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], nullptr); + break; + case 15: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], nullptr); + break; + case 16: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], nullptr); + break; + case 17: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], nullptr); + break; + case 18: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], nullptr); + break; + case 19: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], nullptr); + break; + case 20: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], nullptr); + break; + case 21: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], nullptr); + break; + case 22: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], nullptr); + break; + case 23: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], nullptr); + break; + case 24: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], nullptr); + break; + case 25: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], nullptr); + break; + case 26: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], nullptr); + break; + case 27: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], nullptr); + break; + case 28: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], nullptr); + break; + case 29: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], nullptr); + break; + case 30: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], nullptr); + break; + case 31: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], nullptr); + break; + case 32: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], nullptr); + break; + case 33: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], nullptr); + break; + case 34: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], nullptr); + break; + case 35: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], nullptr); + break; + case 36: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], nullptr); + break; + case 37: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], nullptr); + break; + case 38: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], nullptr); + break; + case 39: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], nullptr); + break; + case 40: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], nullptr); + break; + case 41: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], nullptr); + break; + case 42: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], nullptr); + break; + case 43: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], nullptr); + break; + case 44: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], nullptr); + break; + case 45: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], nullptr); + break; + case 46: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], nullptr); + break; + case 47: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], nullptr); + break; + case 48: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], nullptr); + break; + case 49: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], nullptr); + break; + case 50: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], nullptr); + break; + case 51: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], nullptr); + break; + case 52: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], nullptr); + break; + case 53: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], nullptr); + break; + case 54: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], nullptr); + break; + case 55: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], nullptr); + break; + case 56: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], nullptr); + break; + case 57: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], nullptr); + break; + case 58: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], nullptr); + break; + case 59: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], nullptr); + break; + case 60: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], nullptr); + break; + case 61: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], nullptr); + break; + case 62: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], nullptr); + break; + case 63: return fexldr_ptr_libX11_XGetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], list[62], nullptr); + break; default: -#ifdef _M_ARM_64 - return reinterpret_cast(libX11_Variadic_u64(reinterpret_cast(a_0), count, list, reinterpret_cast(fexldr_ptr_libX11_XGetIMValues))); -#else fprintf(stderr, "XGetIMValues_internal FAILURE\n"); abort(); -#endif } } @@ -308,22 +1478,354 @@ char* fexfn_impl_libX11_XSetIMValues_internal(XIM a_0, size_t count, void **list FinalizeIncomingCallbacks(count, list); switch(count) { - case 0: return fexldr_ptr_libX11_XSetIMValues(a_0, nullptr); break; - case 1: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], nullptr); break; - case 2: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], nullptr); break; - case 3: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], nullptr); break; - case 4: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], nullptr); break; - case 5: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); break; - case 6: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); break; - case 7: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); break; - case 8: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); break; + case 0: return fexldr_ptr_libX11_XSetIMValues(a_0, nullptr); + break; + case 1: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], nullptr); + break; + case 2: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], nullptr); + break; + case 3: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], nullptr); + break; + case 4: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], nullptr); + break; + case 5: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); + break; + case 6: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); + break; + case 7: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); + break; + case 8: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); + break; + case 9: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], nullptr); + break; + case 10: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], nullptr); + break; + case 11: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], nullptr); + break; + case 12: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], nullptr); + break; + case 13: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], nullptr); + break; + case 14: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], nullptr); + break; + case 15: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], nullptr); + break; + case 16: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], nullptr); + break; + case 17: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], nullptr); + break; + case 18: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], nullptr); + break; + case 19: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], nullptr); + break; + case 20: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], nullptr); + break; + case 21: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], nullptr); + break; + case 22: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], nullptr); + break; + case 23: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], nullptr); + break; + case 24: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], nullptr); + break; + case 25: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], nullptr); + break; + case 26: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], nullptr); + break; + case 27: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], nullptr); + break; + case 28: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], nullptr); + break; + case 29: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], nullptr); + break; + case 30: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], nullptr); + break; + case 31: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], nullptr); + break; + case 32: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], nullptr); + break; + case 33: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], nullptr); + break; + case 34: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], nullptr); + break; + case 35: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], nullptr); + break; + case 36: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], nullptr); + break; + case 37: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], nullptr); + break; + case 38: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], nullptr); + break; + case 39: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], nullptr); + break; + case 40: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], nullptr); + break; + case 41: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], nullptr); + break; + case 42: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], nullptr); + break; + case 43: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], nullptr); + break; + case 44: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], nullptr); + break; + case 45: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], nullptr); + break; + case 46: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], nullptr); + break; + case 47: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], nullptr); + break; + case 48: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], nullptr); + break; + case 49: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], nullptr); + break; + case 50: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], nullptr); + break; + case 51: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], nullptr); + break; + case 52: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], nullptr); + break; + case 53: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], nullptr); + break; + case 54: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], nullptr); + break; + case 55: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], nullptr); + break; + case 56: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], nullptr); + break; + case 57: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], nullptr); + break; + case 58: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], nullptr); + break; + case 59: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], nullptr); + break; + case 60: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], nullptr); + break; + case 61: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], nullptr); + break; + case 62: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], nullptr); + break; + case 63: return fexldr_ptr_libX11_XSetIMValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], list[62], nullptr); + break; default: -#ifdef _M_ARM_64 - return reinterpret_cast(libX11_Variadic_u64(reinterpret_cast(a_0), count, list, reinterpret_cast(fexldr_ptr_libX11_XSetIMValues))); -#else fprintf(stderr, "XSetIMValues_internal FAILURE\n"); abort(); -#endif } } @@ -331,22 +1833,354 @@ XVaNestedList fexfn_impl_libX11_XVaCreateNestedList_internal(int unused_arg, siz FinalizeIncomingCallbacks(count, list); switch(count) { - case 0: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, nullptr); break; - case 1: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], nullptr); break; - case 2: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], nullptr); break; - case 3: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], nullptr); break; - case 4: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], nullptr); break; - case 5: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], nullptr); break; - case 6: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); break; - case 7: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); break; - case 8: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); break; + case 0: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, nullptr); + break; + case 1: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], nullptr); + break; + case 2: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], nullptr); + break; + case 3: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], nullptr); + break; + case 4: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], nullptr); + break; + case 5: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], nullptr); + break; + case 6: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); + break; + case 7: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); + break; + case 8: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], nullptr); + break; + case 9: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], nullptr); + break; + case 10: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], nullptr); + break; + case 11: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], nullptr); + break; + case 12: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], nullptr); + break; + case 13: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], nullptr); + break; + case 14: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], nullptr); + break; + case 15: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], nullptr); + break; + case 16: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], nullptr); + break; + case 17: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], nullptr); + break; + case 18: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], nullptr); + break; + case 19: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], nullptr); + break; + case 20: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], nullptr); + break; + case 21: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], nullptr); + break; + case 22: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], nullptr); + break; + case 23: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], nullptr); + break; + case 24: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], nullptr); + break; + case 25: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], nullptr); + break; + case 26: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], nullptr); + break; + case 27: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], nullptr); + break; + case 28: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], nullptr); + break; + case 29: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], nullptr); + break; + case 30: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], nullptr); + break; + case 31: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], nullptr); + break; + case 32: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], nullptr); + break; + case 33: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], nullptr); + break; + case 34: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], nullptr); + break; + case 35: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], nullptr); + break; + case 36: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], nullptr); + break; + case 37: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], nullptr); + break; + case 38: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], nullptr); + break; + case 39: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], nullptr); + break; + case 40: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], nullptr); + break; + case 41: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], nullptr); + break; + case 42: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], nullptr); + break; + case 43: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], nullptr); + break; + case 44: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], nullptr); + break; + case 45: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], nullptr); + break; + case 46: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], nullptr); + break; + case 47: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], nullptr); + break; + case 48: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], nullptr); + break; + case 49: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], nullptr); + break; + case 50: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], nullptr); + break; + case 51: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], nullptr); + break; + case 52: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], nullptr); + break; + case 53: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], nullptr); + break; + case 54: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], nullptr); + break; + case 55: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], nullptr); + break; + case 56: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], nullptr); + break; + case 57: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], nullptr); + break; + case 58: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], nullptr); + break; + case 59: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], nullptr); + break; + case 60: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], nullptr); + break; + case 61: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], nullptr); + break; + case 62: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], nullptr); + break; + case 63: return fexldr_ptr_libX11_XVaCreateNestedList(unused_arg, list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7], + list[8], list[9], list[10], list[11], list[12], list[13], list[14], list[15], + list[16], list[17], list[18], list[19], list[20], list[21], list[22], list[23], + list[24], list[25], list[26], list[27], list[28], list[29], list[30], list[31], + list[32], list[33], list[34], list[35], list[36], list[37], list[38], list[39], + list[40], list[41], list[42], list[43], list[44], list[45], list[46], list[47], + list[48], list[49], list[50], list[51], list[52], list[53], list[54], list[55], + list[56], list[57], list[58], list[59], list[60], list[61], list[62], nullptr); + break; default: -#ifdef _M_ARM_64 - return reinterpret_cast(libX11_Variadic_u64(unused_arg, count, list, reinterpret_cast(fexldr_ptr_libX11_XVaCreateNestedList))); -#else fprintf(stderr, "XVaCreateNestedList_internal FAILURE\n"); abort(); -#endif } }