about summary refs log tree commit diff stats
path: root/src/wrapped
diff options
context:
space:
mode:
Diffstat (limited to 'src/wrapped')
-rwxr-xr-xsrc/wrapped/wrappedbz2.c12
-rwxr-xr-xsrc/wrapped/wrappedcrashhandler.c2
-rwxr-xr-xsrc/wrapped/wrappedglib2.c2
-rwxr-xr-xsrc/wrapped/wrappedgobject2.c12
-rwxr-xr-xsrc/wrapped/wrappedgtkx112.c6
-rwxr-xr-xsrc/wrapped/wrappedldlinux.c2
-rwxr-xr-xsrc/wrapped/wrappedlib_init.h44
-rwxr-xr-xsrc/wrapped/wrappedlibasound.c2
-rwxr-xr-xsrc/wrapped/wrappedlibc.c26
-rwxr-xr-xsrc/wrapped/wrappedlibgl.c6
-rwxr-xr-xsrc/wrapped/wrappedlibglu.c1
-rwxr-xr-xsrc/wrapped/wrappedlibm.c2
-rwxr-xr-xsrc/wrapped/wrappedlibpcre.c2
-rwxr-xr-xsrc/wrapped/wrappedlibssl.c6
-rwxr-xr-xsrc/wrapped/wrappedlibusb1.c6
-rwxr-xr-xsrc/wrapped/wrappedlibvorbis.c6
-rwxr-xr-xsrc/wrapped/wrappedlibx11.c52
-rwxr-xr-xsrc/wrapped/wrappedlibxext.c6
-rwxr-xr-xsrc/wrapped/wrappedlibz.c4
-rwxr-xr-xsrc/wrapped/wrappednss3.c12
-rwxr-xr-xsrc/wrapped/wrappedpulse.c22
-rwxr-xr-xsrc/wrapped/wrappedsdl1.c17
-rwxr-xr-xsrc/wrapped/wrappedsdl1mixer.c2
-rwxr-xr-xsrc/wrapped/wrappedsdl2.c26
-rwxr-xr-xsrc/wrapped/wrappedsdl2mixer.c2
-rwxr-xr-xsrc/wrapped/wrappedtcmallocminimal.c2
-rw-r--r--src/wrapped/wrappedunwind.c2
-rwxr-xr-xsrc/wrapped/wrappedutil.c2
-rwxr-xr-xsrc/wrapped/wrappedvorbisfile.c4
-rwxr-xr-xsrc/wrapped/wrappedvulkan.c6
-rw-r--r--src/wrapped/wrappedwaylandclient.c6
-rw-r--r--src/wrapped/wrappedwaylandcursor.c6
-rw-r--r--src/wrapped/wrappedwaylandegl.c6
-rwxr-xr-xsrc/wrapped/wrappedxml2.c22
-rw-r--r--src/wrapped/wrappercallback.h3
35 files changed, 150 insertions, 189 deletions
diff --git a/src/wrapped/wrappedbz2.c b/src/wrapped/wrappedbz2.c
index a5b0e5ae..e3ff920e 100755
--- a/src/wrapped/wrappedbz2.c
+++ b/src/wrapped/wrappedbz2.c
@@ -57,12 +57,12 @@ static void* find_alloc_Fct(void* fct)
 static void* reverse_alloc_Fct(void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(my_lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(my_lib->priv.w.bridge, fct);
+    if(CheckBridged(my_lib->w.bridge, fct))
+        return (void*)CheckBridged(my_lib->w.bridge, fct);
     #define GO(A) if(my_alloc_##A == fct) return (void*)my_alloc_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(my_lib->priv.w.bridge, pFpii, fct, 0, NULL);
+    return (void*)AddBridge(my_lib->w.bridge, pFpii, fct, 0, NULL);
 }
 // free ...
 #define GO(A)   \
@@ -89,12 +89,12 @@ static void* find_free_Fct(void* fct)
 static void* reverse_free_Fct(void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(my_lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(my_lib->priv.w.bridge, fct);
+    if(CheckBridged(my_lib->w.bridge, fct))
+        return (void*)CheckBridged(my_lib->w.bridge, fct);
     #define GO(A) if(my_free_##A == fct) return (void*)my_free_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(my_lib->priv.w.bridge, vFpp, fct, 0, NULL);
+    return (void*)AddBridge(my_lib->w.bridge, vFpp, fct, 0, NULL);
 }
 #undef SUPER
 
diff --git a/src/wrapped/wrappedcrashhandler.c b/src/wrapped/wrappedcrashhandler.c
index 115e3150..c6f625df 100755
--- a/src/wrapped/wrappedcrashhandler.c
+++ b/src/wrapped/wrappedcrashhandler.c
@@ -24,7 +24,7 @@ const char* crashhandlerName = "crashhandler.so";
     if(!box64_steam)                                            \
         return -1;                                              \
     if(1)                                                       \
-        lib->priv.w.lib = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);\
+        lib->w.lib = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);\
     else
 
 
diff --git a/src/wrapped/wrappedglib2.c b/src/wrapped/wrappedglib2.c
index 48742b67..0c5663bc 100755
--- a/src/wrapped/wrappedglib2.c
+++ b/src/wrapped/wrappedglib2.c
@@ -816,7 +816,7 @@ EXPORT void* my_g_main_context_get_poll_func(x64emu_t* emu, void* context)
     void* r = reversePollFct(ret);
     if(r) return r;
     // needs to bridge....
-    return (void*)AddCheckBridge(my_lib->priv.w.bridge, iFpui, ret, 0, NULL);
+    return (void*)AddCheckBridge(my_lib->w.bridge, iFpui, ret, 0, NULL);
 }
     
 EXPORT void my_g_main_context_set_poll_func(x64emu_t* emu, void* context, void* func)
diff --git a/src/wrapped/wrappedgobject2.c b/src/wrapped/wrappedgobject2.c
index c4f95265..b70c6db0 100755
--- a/src/wrapped/wrappedgobject2.c
+++ b/src/wrapped/wrappedgobject2.c
@@ -127,7 +127,7 @@ static void signal_delete(my_signal_t* sig, void* b)
 
 static void addGObject2Alternate(library_t* lib)
 {
-    #define GO(A, W) AddAutomaticBridge(thread_get_emu(), lib->priv.w.bridge, W, dlsym(lib->priv.w.lib, #A), 0)
+    #define GO(A, W) AddAutomaticBridge(thread_get_emu(), lib->w.bridge, W, dlsym(lib->w.lib, #A), 0)
     GO(g_cclosure_marshal_VOID__VOID,               vFppuppp);
     GO(g_cclosure_marshal_VOID__BOOLEAN,            vFppuppp);
     GO(g_cclosure_marshal_VOID__UCHAR,              vFppuppp);
@@ -173,7 +173,7 @@ static void addGObject2Alternate(library_t* lib)
     GO(g_cclosure_marshal_BOOLEAN__FLAGSv,          vFpppppip);
     GO(g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv,    vFpppppip);
     #undef GO
-    #define GO(A, W) AddAutomaticBridge(thread_get_emu(), lib->priv.w.bridge, W, A, 0)
+    #define GO(A, W) AddAutomaticBridge(thread_get_emu(), lib->w.bridge, W, A, 0)
     GO(signal_cb, iFpppp);
     GO(signal_cb_swapped, iFpppp);
     GO(signal_cb_5, iFppppp);
@@ -220,7 +220,7 @@ EXPORT uintptr_t my_g_signal_connect_data(x64emu_t* emu, void* instance, void* d
 
 EXPORT void* my_g_object_connect(x64emu_t* emu, void* object, void* signal_spec, void** b)
 {
-        //gobject2_my_t *my = (gobject2_my_t*)my_lib->priv.w.p2;
+        //gobject2_my_t *my = (gobject2_my_t*)my_lib->w.p2;
 
     char* spec = (char*)signal_spec;
     while(spec) {
@@ -345,7 +345,7 @@ static void* findMarshalFct(void* fct)
     #define GO(A) if(my_marshal_fct_##A == (uintptr_t)fct) return my_marshal_##A;
     SUPER()
     #undef GO
-    #define GO(A) if(my_marshal_fct_##A == 0) {AddAutomaticBridge(thread_get_emu(), my_lib->priv.w.bridge, vFppuppp, my_marshal_##A, 0); my_marshal_fct_##A = (uintptr_t)fct; return my_marshal_##A; }
+    #define GO(A) if(my_marshal_fct_##A == 0) {AddAutomaticBridge(thread_get_emu(), my_lib->w.bridge, vFppuppp, my_marshal_##A, 0); my_marshal_fct_##A = (uintptr_t)fct; return my_marshal_##A; }
     SUPER()
     #undef GO
     printf_log(LOG_NONE, "Warning, no more slot for gobject Closure Marshal callback\n");
@@ -723,7 +723,7 @@ EXPORT unsigned long my_g_signal_add_emission_hook(x64emu_t* emu, uint32_t signa
 
 EXPORT size_t my_g_type_register_static_simple(x64emu_t* emu, size_t parent, void* name, size_t class_size, void* class_init, size_t instance_size, void* instance_init, int flags)
 {
-        //gobject2_my_t *my = (gobject2_my_t*)my_lib->priv.w.p2;
+        //gobject2_my_t *my = (gobject2_my_t*)my_lib->w.p2;
 
     my_GTypeInfo_t info = {0};
     info.class_size = class_size;
@@ -861,7 +861,7 @@ EXPORT void my_g_signal_override_class_handler(x64emu_t* emu, char* name, void*
         return -1;
 
 #define CUSTOM_INIT \
-    InitGTKClass(lib->priv.w.bridge);       \
+    InitGTKClass(lib->w.bridge);       \
     getMy(lib);                             \
     SetGObjectID(my->g_object_get_type());  \
     SetGTypeName(my->g_type_name);          \
diff --git a/src/wrapped/wrappedgtkx112.c b/src/wrapped/wrappedgtkx112.c
index c7d42e83..4955385c 100755
--- a/src/wrapped/wrappedgtkx112.c
+++ b/src/wrapped/wrappedgtkx112.c
@@ -634,12 +634,12 @@ static void* find_GtkLinkButtonUri_Fct(void* fct)
 static void* reverse_GtkLinkButtonUri_Fct(void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(my_lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(my_lib->priv.w.bridge, fct);
+    if(CheckBridged(my_lib->w.bridge, fct))
+        return (void*)CheckBridged(my_lib->w.bridge, fct);
     #define GO(A) if(my_GtkLinkButtonUri_##A == fct) return (void*)my_GtkLinkButtonUri_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(my_lib->priv.w.bridge, vFppp, fct, 0, NULL);
+    return (void*)AddBridge(my_lib->w.bridge, vFppp, fct, 0, NULL);
 }
 
 #undef SUPER
diff --git a/src/wrapped/wrappedldlinux.c b/src/wrapped/wrappedldlinux.c
index e8c56bc0..1030fc5f 100755
--- a/src/wrapped/wrappedldlinux.c
+++ b/src/wrapped/wrappedldlinux.c
@@ -33,7 +33,7 @@ const char* ldlinuxName = "ld-linux.so.2";
 
 #define PRE_INIT\
     if(1)                                                           \
-        lib->priv.w.lib = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);    \
+        lib->w.lib = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);    \
     else
 
 // define all standard library functions
diff --git a/src/wrapped/wrappedlib_init.h b/src/wrapped/wrappedlib_init.h
index e19d4352..b61989b0 100755
--- a/src/wrapped/wrappedlib_init.h
+++ b/src/wrapped/wrappedlib_init.h
@@ -122,16 +122,16 @@ int FUNC(_init)(library_t* lib, box64context_t* box64)
     PRE_INIT
 #endif
     {
-        lib->priv.w.lib = dlopen(MAPNAME(Name), RTLD_LAZY | RTLD_GLOBAL);
-        if(!lib->priv.w.lib) {
+        lib->w.lib = dlopen(MAPNAME(Name), RTLD_LAZY | RTLD_GLOBAL);
+        if(!lib->w.lib) {
 #ifdef ALTNAME
-        lib->priv.w.lib = dlopen(ALTNAME, RTLD_LAZY | RTLD_GLOBAL);
-        if(!lib->priv.w.lib)
+        lib->w.lib = dlopen(ALTNAME, RTLD_LAZY | RTLD_GLOBAL);
+        if(!lib->w.lib)
 #endif
 #ifdef ALTNAME2
             {
-            lib->priv.w.lib = dlopen(ALTNAME2, RTLD_LAZY | RTLD_GLOBAL);
-            if(!lib->priv.w.lib)
+            lib->w.lib = dlopen(ALTNAME2, RTLD_LAZY | RTLD_GLOBAL);
+            if(!lib->w.lib)
 #endif
                 return -1;
 #ifdef ALTNAME2
@@ -151,11 +151,11 @@ int FUNC(_init)(library_t* lib, box64context_t* box64)
 	cnt = sizeof(MAPNAME(mapname))/sizeof(map_onesymbol_t);                         \
 	for (int i = 0; i < cnt; ++i) {                                                 \
         if (MAPNAME(mapname)[i].weak) {                                             \
-            k = kh_put(symbolmap, lib->w##mapname, MAPNAME(mapname)[i].name, &ret); \
-            kh_value(lib->w##mapname, k) = MAPNAME(mapname)[i].w;                   \
+            k = kh_put(symbolmap, lib->w.w##mapname, MAPNAME(mapname)[i].name, &ret); \
+            kh_value(lib->w.w##mapname, k) = MAPNAME(mapname)[i].w;                   \
         } else {                                                                    \
-            k = kh_put(symbolmap, lib->mapname, MAPNAME(mapname)[i].name, &ret);    \
-            kh_value(lib->mapname, k) = MAPNAME(mapname)[i].w;                      \
+            k = kh_put(symbolmap, lib->w.mapname, MAPNAME(mapname)[i].name, &ret);    \
+            kh_value(lib->w.mapname, k) = MAPNAME(mapname)[i].w;                      \
         }                                                                           \
         if (strchr(MAPNAME(mapname)[i].name, '@'))                                  \
             AddDictionnary(box64->versym, MAPNAME(mapname)[i].name);                \
@@ -165,34 +165,34 @@ int FUNC(_init)(library_t* lib, box64context_t* box64)
 #undef DOIT
     cnt = sizeof(MAPNAME(stsymbolmap))/sizeof(map_onesymbol_t);
     for (int i=0; i<cnt; ++i) {
-        k = kh_put(symbolmap, lib->stsymbolmap, MAPNAME(stsymbolmap)[i].name, &ret);
-        kh_value(lib->stsymbolmap, k) = MAPNAME(stsymbolmap)[i].w;
+        k = kh_put(symbolmap, lib->w.stsymbolmap, MAPNAME(stsymbolmap)[i].name, &ret);
+        kh_value(lib->w.stsymbolmap, k) = MAPNAME(stsymbolmap)[i].w;
         if(strchr(MAPNAME(stsymbolmap)[i].name, '@'))
             AddDictionnary(box64->versym, MAPNAME(stsymbolmap)[i].name);
     }
     cnt = sizeof(MAPNAME(symbol2map))/sizeof(map_onesymbol2_t);
     for (int i=0; i<cnt; ++i) {
-        k = kh_put(symbol2map, lib->symbol2map, MAPNAME(symbol2map)[i].name, &ret);
-        kh_value(lib->symbol2map, k).name = MAPNAME(symbol2map)[i].name2;
-        kh_value(lib->symbol2map, k).w = MAPNAME(symbol2map)[i].w;
-        kh_value(lib->symbol2map, k).weak = MAPNAME(symbol2map)[i].weak;
+        k = kh_put(symbol2map, lib->w.symbol2map, MAPNAME(symbol2map)[i].name, &ret);
+        kh_value(lib->w.symbol2map, k).name = MAPNAME(symbol2map)[i].name2;
+        kh_value(lib->w.symbol2map, k).w = MAPNAME(symbol2map)[i].w;
+        kh_value(lib->w.symbol2map, k).weak = MAPNAME(symbol2map)[i].weak;
         if(strchr(MAPNAME(symbol2map)[i].name, '@'))
             AddDictionnary(box64->versym, MAPNAME(symbol2map)[i].name);
     }
     cnt = sizeof(MAPNAME(datamap))/sizeof(map_onedata_t);
     for (int i=0; i<cnt; ++i) {
         if(MAPNAME(datamap)[i].weak) {
-            k = kh_put(datamap, lib->wdatamap, MAPNAME(datamap)[i].name, &ret);
-            kh_value(lib->wdatamap, k) = MAPNAME(datamap)[i].sz;
+            k = kh_put(datamap, lib->w.wdatamap, MAPNAME(datamap)[i].name, &ret);
+            kh_value(lib->w.wdatamap, k) = MAPNAME(datamap)[i].sz;
         } else {
-            k = kh_put(datamap, lib->datamap, MAPNAME(datamap)[i].name, &ret);
-            kh_value(lib->datamap, k) = MAPNAME(datamap)[i].sz;
+            k = kh_put(datamap, lib->w.datamap, MAPNAME(datamap)[i].name, &ret);
+            kh_value(lib->w.datamap, k) = MAPNAME(datamap)[i].sz;
         }
     }
     cnt = sizeof(MAPNAME(mydatamap))/sizeof(map_onedata_t);
     for (int i=0; i<cnt; ++i) {
-        k = kh_put(datamap, lib->mydatamap, MAPNAME(mydatamap)[i].name, &ret);
-        kh_value(lib->mydatamap, k) = MAPNAME(mydatamap)[i].sz;
+        k = kh_put(datamap, lib->w.mydatamap, MAPNAME(mydatamap)[i].name, &ret);
+        kh_value(lib->w.mydatamap, k) = MAPNAME(mydatamap)[i].sz;
     }
 #ifdef CUSTOM_INIT
     CUSTOM_INIT
diff --git a/src/wrapped/wrappedlibasound.c b/src/wrapped/wrappedlibasound.c
index 54d55804..6d7420c6 100755
--- a/src/wrapped/wrappedlibasound.c
+++ b/src/wrapped/wrappedlibasound.c
@@ -138,11 +138,9 @@ EXPORT void* my_snd_dlsym(x64emu_t* emu, void* handle, void* name, void* version
 }
 
 #define CUSTOM_INIT                     \
-    box64->asound = lib;                \
     getMy(lib);
 
 #define CUSTOM_FINI                     \
-    lib->context->asound = NULL;        \
     freeMy();
 
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c
index 37a6b175..630b5cd1 100755
--- a/src/wrapped/wrappedlibc.c
+++ b/src/wrapped/wrappedlibc.c
@@ -987,7 +987,7 @@ EXPORT void my__ITM_addUserCommitAction(x64emu_t* emu, void* cb, uint32_t b, voi
     // disabled for now... Are all this _ITM_ stuff really mendatory?
     #if 0
     // quick and dirty... Should store the callback to be removed later....
-    libc_my_t *my = (libc_my_t *)emu->context->libclib->priv.w.p2;
+    libc_my_t *my = (libc_my_t *)emu->context->libclib->w.p2;
     x64emu_t *cbemu = AddCallback(emu, (uintptr_t)cb, 1, c, NULL, NULL, NULL);
     my->_ITM_addUserCommitAction(libc1ArgCallback, b, cbemu);
     // should keep track of cbemu to remove at some point...
@@ -1227,7 +1227,7 @@ EXPORT void* my_readdir(x64emu_t* emu, void* dirp)
         if(!f) {
             library_t* lib = my_lib;
             if(!lib) return NULL;
-            f = (pFp_t)dlsym(lib->priv.w.lib, "readdir");
+            f = (pFp_t)dlsym(lib->w.lib, "readdir");
         }
 
         return f(dirp);
@@ -1247,7 +1247,7 @@ EXPORT int32_t my_readdir_r(x64emu_t* emu, void* dirp, void* entry, void** resul
                 *result = NULL;
                 return 0;
             }
-            f = (iFppp_t)dlsym(lib->priv.w.lib, "readdir64_r");
+            f = (iFppp_t)dlsym(lib->w.lib, "readdir64_r");
         }
 
         int r = f(dirp, &d64, &dp64);
@@ -1283,7 +1283,7 @@ EXPORT int32_t my_readdir_r(x64emu_t* emu, void* dirp, void* entry, void** resul
                 *result = NULL;
                 return 0;
             }
-            f = (iFppp_t)dlsym(lib->priv.w.lib, "readdir_r");
+            f = (iFppp_t)dlsym(lib->w.lib, "readdir_r");
         }
 
         return f(dirp, entry, result);
@@ -1592,7 +1592,7 @@ EXPORT int32_t my_ftw(x64emu_t* emu, void* pathname, void* B, int32_t nopenfd)
     if(!f) {
         library_t* lib = my_lib;
         if(!lib) return 0;
-        f = (iFppi_t)dlsym(lib->priv.w.lib, "ftw");
+        f = (iFppi_t)dlsym(lib->w.lib, "ftw");
     }
 
     return f(pathname, findftwFct(B), nopenfd);
@@ -1604,7 +1604,7 @@ EXPORT int32_t my_nftw(x64emu_t* emu, void* pathname, void* B, int32_t nopenfd,
     if(!f) {
         library_t* lib = my_lib;
         if(!lib) return 0;
-        f = (iFppii_t)dlsym(lib->priv.w.lib, "nftw");
+        f = (iFppii_t)dlsym(lib->w.lib, "nftw");
     }
 
     return f(pathname, findnftwFct(B), nopenfd, flags);
@@ -2073,7 +2073,7 @@ EXPORT int32_t my_preadv64(x64emu_t* emu, int32_t fd, void* v, int32_t c, int64_
 {
     library_t* lib = my_lib;
     if(!lib) return 0;
-    void* f = dlsym(lib->priv.w.lib, "preadv64");
+    void* f = dlsym(lib->w.lib, "preadv64");
     if(f)
         return ((iFipiI_t)f)(fd, v, c, o);
     return syscall(__NR_preadv, fd, v, c,(uint32_t)(o&0xffffffff), (uint32_t)((o>>32)&0xffffffff));
@@ -2083,7 +2083,7 @@ EXPORT int32_t my_pwritev64(x64emu_t* emu, int32_t fd, void* v, int32_t c, int64
 {
     library_t* lib = my_lib;
     if(!lib) return 0;
-    void* f = dlsym(lib->priv.w.lib, "pwritev64");
+    void* f = dlsym(lib->w.lib, "pwritev64");
     if(f)
         return ((iFipiI_t)f)(fd, v, c, o);
     #ifdef __arm__
@@ -2098,7 +2098,7 @@ EXPORT int32_t my_accept4(x64emu_t* emu, int32_t fd, void* a, void* l, int32_t f
 {
     library_t* lib = my_lib;
     if(!lib) return 0;
-    void* f = dlsym(lib->priv.w.lib, "accept4");
+    void* f = dlsym(lib->w.lib, "accept4");
     if(f)
         return ((iFippi_t)f)(fd, a, l, flags);
     if(!flags)
@@ -2112,7 +2112,7 @@ EXPORT  int32_t my_fallocate64(int fd, int mode, int64_t offs, int64_t len)
     static int done = 0;
     if(!done) {
         library_t* lib = my_lib;
-        f = (iFiiII_t)dlsym(lib->priv.w.lib, "fallocate64");
+        f = (iFiiII_t)dlsym(lib->w.lib, "fallocate64");
         done = 1;
     }
     if(f)
@@ -2521,7 +2521,7 @@ EXPORT int my___libc_alloca_cutoff(x64emu_t* emu, size_t size)
     // not always implemented on old linux version...
     library_t* lib = my_lib;
     if(!lib) return 0;
-    void* f = dlsym(lib->priv.w.lib, "__libc_alloca_cutoff");
+    void* f = dlsym(lib->w.lib, "__libc_alloca_cutoff");
     if(f)
         return ((iFL_t)f)(size);
     // approximate version but it's better than nothing....
@@ -2620,7 +2620,7 @@ EXPORT int my_getentropy(x64emu_t* emu, void* buffer, size_t length)
 {
     library_t* lib = my_lib;
     if(!lib) return 0;
-    void* f = dlsym(lib->priv.w.lib, "getentropy");
+    void* f = dlsym(lib->w.lib, "getentropy");
     if(f)
         return ((iFpL_t)f)(buffer, length);
     // custom implementation
@@ -2911,7 +2911,7 @@ EXPORT char my___libc_single_threaded = 0;
 
 #define PRE_INIT\
     if(box64_tcmalloc_minimal)                                      \
-        lib->priv.w.lib = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);    \
+        lib->w.lib = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);    \
     else
 
 #define CUSTOM_INIT         \
diff --git a/src/wrapped/wrappedlibgl.c b/src/wrapped/wrappedlibgl.c
index 006774aa..96128410 100755
--- a/src/wrapped/wrappedlibgl.c
+++ b/src/wrapped/wrappedlibgl.c
@@ -197,11 +197,11 @@ EXPORT void* my_glGetVkProcAddrNV(x64emu_t* emu, void* name)
     return my_GetVkProcAddr(emu, name, GetVkProcAddrNV);
 }
 
-#define PRE_INIT if(libGL) {lib->priv.w.lib = dlopen(libGL, RTLD_LAZY | RTLD_GLOBAL); lib->path = strdup(libGL);} else
+#define PRE_INIT if(libGL) {lib->w.lib = dlopen(libGL, RTLD_LAZY | RTLD_GLOBAL); lib->path = strdup(libGL);} else
 #define CUSTOM_INIT \
-    lib->priv.w.priv = dlsym(lib->priv.w.lib, "glXGetProcAddress"); \
+    lib->w.priv = dlsym(lib->w.lib, "glXGetProcAddress"); \
     if (!box64->glxprocaddress) \
-        box64->glxprocaddress = lib->priv.w.priv;
+        box64->glxprocaddress = lib->w.priv;
 
 
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibglu.c b/src/wrapped/wrappedlibglu.c
index 082e724c..57a2bb4e 100755
--- a/src/wrapped/wrappedlibglu.c
+++ b/src/wrapped/wrappedlibglu.c
@@ -132,7 +132,6 @@ void EXPORT my_gluNurbsCallback(x64emu_t* emu, void* a, int32_t b, void* cb)
 }
 
 #define CUSTOM_INIT                     \
-    box64->libglu = lib;                \
     getMy(lib);                         \
     setNeededLibs(lib, 1, "libGL.so.1");
 
diff --git a/src/wrapped/wrappedlibm.c b/src/wrapped/wrappedlibm.c
index 48c34580..43bdf5cc 100755
--- a/src/wrapped/wrappedlibm.c
+++ b/src/wrapped/wrappedlibm.c
@@ -32,7 +32,7 @@ EXPORT R my___##N##_finite P        \
     static int check = 0;           \
     T f = NULL;                     \
     if(!check) {                    \
-        f = (T)dlsym(my_lib->priv.w.lib, "__" #N "_finite");  \
+        f = (T)dlsym(my_lib->w.lib, "__" #N "_finite");  \
         ++check;                    \
     }                               \
     if(f)                           \
diff --git a/src/wrapped/wrappedlibpcre.c b/src/wrapped/wrappedlibpcre.c
index fbd2218b..1175f7dd 100755
--- a/src/wrapped/wrappedlibpcre.c
+++ b/src/wrapped/wrappedlibpcre.c
@@ -25,7 +25,7 @@ void wrapped_pcre_free(void* p) {
 EXPORT pcre_free_t pcre_free = wrapped_pcre_free;
 
 #define CUSTOM_INIT \
-    my_pcre_free = AddCheckBridge(lib->priv.w.bridge, vFp, free, 0, "free");
+    my_pcre_free = AddCheckBridge(lib->w.bridge, vFp, free, 0, "free");
 
 #include "wrappedlib_init.h"
 
diff --git a/src/wrapped/wrappedlibssl.c b/src/wrapped/wrappedlibssl.c
index 0d7fc823..40ca1a7f 100755
--- a/src/wrapped/wrappedlibssl.c
+++ b/src/wrapped/wrappedlibssl.c
@@ -109,12 +109,12 @@ static void* find_verify_Fct(void* fct)
 static void* reverse_verify_Fct(void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(my_lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(my_lib->priv.w.bridge, fct);
+    if(CheckBridged(my_lib->w.bridge, fct))
+        return (void*)CheckBridged(my_lib->w.bridge, fct);
     #define GO(A) if(my_verify_##A == fct) return (void*)my_verify_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(my_lib->priv.w.bridge, iFip, fct, 0, NULL);
+    return (void*)AddBridge(my_lib->w.bridge, iFip, fct, 0, NULL);
 }
 
 // ex_new
diff --git a/src/wrapped/wrappedlibusb1.c b/src/wrapped/wrappedlibusb1.c
index 31d0867b..e34f440f 100755
--- a/src/wrapped/wrappedlibusb1.c
+++ b/src/wrapped/wrappedlibusb1.c
@@ -90,12 +90,12 @@ static void* findtransfertFct(void* fct)
 static void* reverse_transfert_Fct(void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(my_lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(my_lib->priv.w.bridge, fct);
+    if(CheckBridged(my_lib->w.bridge, fct))
+        return (void*)CheckBridged(my_lib->w.bridge, fct);
     #define GO(A) if(my_transfert_##A == fct) return (void*)my_transfert_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(my_lib->priv.w.bridge, vFp, fct, 0, NULL);
+    return (void*)AddBridge(my_lib->w.bridge, vFp, fct, 0, NULL);
 }
 
 #undef SUPER
diff --git a/src/wrapped/wrappedlibvorbis.c b/src/wrapped/wrappedlibvorbis.c
index d9018689..74495820 100755
--- a/src/wrapped/wrappedlibvorbis.c
+++ b/src/wrapped/wrappedlibvorbis.c
@@ -21,10 +21,4 @@
 const char* libvorbisName = "libvorbis.so.0";
 #define LIBNAME libvorbis
 
-#define CUSTOM_INIT \
-    box64->vorbis = lib;
-
-#define CUSTOM_FINI \
-    lib->context->vorbis = NULL;
-
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibx11.c b/src/wrapped/wrappedlibx11.c
index 9d8fd445..fa12a53c 100755
--- a/src/wrapped/wrappedlibx11.c
+++ b/src/wrapped/wrappedlibx11.c
@@ -139,12 +139,12 @@ static void* findwire_to_eventFct(void* fct)
 static void* reverse_wire_to_eventFct(library_t* lib, void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    if(CheckBridged(lib->w.bridge, fct))
+        return (void*)CheckBridged(lib->w.bridge, fct);
     #define GO(A) if(my_wire_to_event_##A == fct) return (void*)my_wire_to_event_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(lib->priv.w.bridge, iFppp, fct, 0, NULL);
+    return (void*)AddBridge(lib->w.bridge, iFppp, fct, 0, NULL);
 }
 
 // event_to_wire
@@ -172,12 +172,12 @@ static void* findevent_to_wireFct(void* fct)
 static void* reverse_event_to_wireFct(library_t* lib, void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    if(CheckBridged(lib->w.bridge, fct))
+        return (void*)CheckBridged(lib->w.bridge, fct);
     #define GO(A) if(my_event_to_wire_##A == fct) return (void*)my_event_to_wire_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(lib->priv.w.bridge, iFppp, fct, 0, NULL);
+    return (void*)AddBridge(lib->w.bridge, iFppp, fct, 0, NULL);
 }
 
 // error_handler
@@ -205,12 +205,12 @@ static void* finderror_handlerFct(void* fct)
 static void* reverse_error_handlerFct(library_t* lib, void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    if(CheckBridged(lib->w.bridge, fct))
+        return (void*)CheckBridged(lib->w.bridge, fct);
     #define GO(A) if(my_error_handler_##A == fct) return (void*)my_error_handler_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(lib->priv.w.bridge, iFpp, fct, 0, NULL);
+    return (void*)AddBridge(lib->w.bridge, iFpp, fct, 0, NULL);
 }
 
 // ioerror_handler
@@ -238,12 +238,12 @@ static void* findioerror_handlerFct(void* fct)
 static void* reverse_ioerror_handlerFct(library_t* lib, void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    if(CheckBridged(lib->w.bridge, fct))
+        return (void*)CheckBridged(lib->w.bridge, fct);
     #define GO(A) if(my_ioerror_handler_##A == fct) return (void*)my_ioerror_handler_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(lib->priv.w.bridge, iFp, fct, 0, NULL);
+    return (void*)AddBridge(lib->w.bridge, iFp, fct, 0, NULL);
 }
 
 // exterror_handler
@@ -271,12 +271,12 @@ static void* findexterror_handlerFct(void* fct)
 static void* reverse_exterror_handlerFct(library_t* lib, void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    if(CheckBridged(lib->w.bridge, fct))
+        return (void*)CheckBridged(lib->w.bridge, fct);
     #define GO(A) if(my_exterror_handler_##A == fct) return (void*)my_exterror_handler_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(lib->priv.w.bridge, iFpppp, fct, 0, NULL);
+    return (void*)AddBridge(lib->w.bridge, iFpppp, fct, 0, NULL);
 }
 
 // close_display
@@ -304,12 +304,12 @@ static void* findclose_displayFct(void* fct)
 static void* reverse_close_displayFct(library_t* lib, void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    if(CheckBridged(lib->w.bridge, fct))
+        return (void*)CheckBridged(lib->w.bridge, fct);
     #define GO(A) if(my_close_display_##A == fct) return (void*)my_close_display_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(lib->priv.w.bridge, iFpp, fct, 0, NULL);
+    return (void*)AddBridge(lib->w.bridge, iFpp, fct, 0, NULL);
 }
 
 // register_im
@@ -337,12 +337,12 @@ static void* findregister_imFct(void* fct)
 static void* reverse_register_imFct(library_t* lib, void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    if(CheckBridged(lib->w.bridge, fct))
+        return (void*)CheckBridged(lib->w.bridge, fct);
     #define GO(A) if(my_register_im_##A == fct) return (void*)my_register_im_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(lib->priv.w.bridge, iFppp, fct, 0, NULL);
+    return (void*)AddBridge(lib->w.bridge, iFppp, fct, 0, NULL);
 }
 
 // XConnectionWatchProc
@@ -437,12 +437,12 @@ static void* findXSynchronizeProcFct(void* fct)
 static void* reverse_XSynchronizeProcFct(library_t* lib, void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    if(CheckBridged(lib->w.bridge, fct))
+        return (void*)CheckBridged(lib->w.bridge, fct);
     #define GO(A) if(my_XSynchronizeProc_##A == fct) return (void*)my_XSynchronizeProc_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(lib->priv.w.bridge, iFppp, fct, 0, NULL);
+    return (void*)AddBridge(lib->w.bridge, iFppp, fct, 0, NULL);
 }
 
 // XLockDisplay
@@ -1153,12 +1153,10 @@ EXPORT void* my_XOpenDisplay(x64emu_t* emu, void* d)
 }
 
 #define CUSTOM_INIT                 \
-    box64->x11lib = lib;            \
     getMy(lib);                     \
     if(x11threads) my->XInitThreads();
 
 #define CUSTOM_FINI \
-    freeMy(); \
-    ((box64context_t*)(lib->context))->x11lib = NULL; \
+    freeMy();
 
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibxext.c b/src/wrapped/wrappedlibxext.c
index 7d8aebc2..efc2fba4 100755
--- a/src/wrapped/wrappedlibxext.c
+++ b/src/wrapped/wrappedlibxext.c
@@ -76,12 +76,12 @@ static void* find_exterrorhandle_Fct(void* fct)
 static void* reverse_exterrorhandleFct(void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(my_lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(my_lib->priv.w.bridge, fct);
+    if(CheckBridged(my_lib->w.bridge, fct))
+        return (void*)CheckBridged(my_lib->w.bridge, fct);
     #define GO(A) if(my_exterrorhandle_##A == fct) return (void*)my_exterrorhandle_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(my_lib->priv.w.bridge, iFppp, fct, 0, NULL);
+    return (void*)AddBridge(my_lib->w.bridge, iFppp, fct, 0, NULL);
 }
 
 #undef SUPER
diff --git a/src/wrapped/wrappedlibz.c b/src/wrapped/wrappedlibz.c
index 75f77e96..8d3ebb7a 100755
--- a/src/wrapped/wrappedlibz.c
+++ b/src/wrapped/wrappedlibz.c
@@ -154,11 +154,9 @@ EXPORT int my_inflate(x64emu_t* emu, void* str, int flush)
 
 
 #define CUSTOM_INIT \
-    box64->zlib = lib; \
     getMy(lib);
 
 #define CUSTOM_FINI \
-    freeMy(); \
-    ((box64context_t*)(lib->context))->zlib = NULL;
+    freeMy();
 
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappednss3.c b/src/wrapped/wrappednss3.c
index e2655aef..2b10bb41 100755
--- a/src/wrapped/wrappednss3.c
+++ b/src/wrapped/wrappednss3.c
@@ -80,12 +80,12 @@ static void* find_CERT_StringFromCertFcn_Fct(void* fct)
 static void* reverse_CERT_StringFromCertFcn_Fct(library_t* lib, void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    if(CheckBridged(lib->w.bridge, fct))
+        return (void*)CheckBridged(lib->w.bridge, fct);
     #define GO(A) if(my_CERT_StringFromCertFcn_##A == fct) return (void*)my_CERT_StringFromCertFcn_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(lib->priv.w.bridge, pFp, fct, 0, NULL);
+    return (void*)AddBridge(lib->w.bridge, pFp, fct, 0, NULL);
 }
 // CERTChainVerifyCallbackFunc ...
 #define GO(A)   \
@@ -112,12 +112,12 @@ static void* find_CERTChainVerifyCallbackFunc_Fct(void* fct)
 static void* reverse_CERTChainVerifyCallbackFunc_Fct(library_t* lib, void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    if(CheckBridged(lib->w.bridge, fct))
+        return (void*)CheckBridged(lib->w.bridge, fct);
     #define GO(A) if(my_CERTChainVerifyCallbackFunc_##A == fct) return (void*)my_CERTChainVerifyCallbackFunc_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(lib->priv.w.bridge, iFppp, fct, 0, NULL);
+    return (void*)AddBridge(lib->w.bridge, iFppp, fct, 0, NULL);
 }
 
 #undef SUPER
diff --git a/src/wrapped/wrappedpulse.c b/src/wrapped/wrappedpulse.c
index 688671dc..02233aa0 100755
--- a/src/wrapped/wrappedpulse.c
+++ b/src/wrapped/wrappedpulse.c
@@ -826,7 +826,7 @@ static void* my_io_new(void* api, int fd, int events, void* cb, void *userdata)
         return ((pFpiipp_t)fnc)(api, fd, events, cb, userdata);
     }
 
-    bridge_t* bridge = my_context->pulse->priv.w.bridge;
+    bridge_t* bridge = my_lib->w.bridge;
     if(cb)
         b = AddCheckBridge(bridge, vFppiip, cb, 0, NULL);
     if(api==my_mainloop_orig) api=my_mainloop_ref;    // need emulated version
@@ -857,7 +857,7 @@ static void my_io_set_destroy(void* e, void* cb)
     if(fnc)
         return ((vFpp_t)fnc)(e, cb);
 
-    bridge_t* bridge = my_context->pulse->priv.w.bridge;
+    bridge_t* bridge = my_lib->w.bridge;
     uintptr_t b = 0;
     if(cb) {
         b = CheckBridged(bridge, cb);
@@ -878,7 +878,7 @@ static void* my_time_new(void* api, void* tv, void* cb, void* data)
     }
 
     // need to bridge the callback!
-    bridge_t* bridge = my_context->pulse->priv.w.bridge;
+    bridge_t* bridge = my_lib->w.bridge;
     if(cb)
         b = AddCheckBridge(bridge, vFpppp, cb, 0, NULL);
     if(api==my_mainloop_orig) api=my_mainloop_ref;    // need emulated version
@@ -909,7 +909,7 @@ static void my_time_set_destroy(void* e, void* cb)
     if(fnc)
         return ((vFpp_t)fnc)(e, cb);
 
-    bridge_t* bridge = my_context->pulse->priv.w.bridge;
+    bridge_t* bridge = my_lib->w.bridge;
     uintptr_t b = 0;
     if(cb)
             b = AddCheckBridge(bridge, vFppp, cb, 0, NULL);
@@ -927,7 +927,7 @@ static void* my_defer_new(void* api, void* cb, void* data)
     }
 
     // need to bridge the callback!
-    bridge_t* bridge = my_context->pulse->priv.w.bridge;
+    bridge_t* bridge = my_lib->w.bridge;
     if(cb) {
         b = CheckBridged(bridge, cb);
         if(!b)
@@ -961,7 +961,7 @@ static void my_defer_set_destroy(void* e, void* cb)
     if(fnc)
         return ((vFpp_t)fnc)(e, cb);
 
-    bridge_t* bridge = my_context->pulse->priv.w.bridge;
+    bridge_t* bridge = my_lib->w.bridge;
     uintptr_t b = 0;
     if(cb)
         b = AddCheckBridge(bridge, vFppp, cb, 0, NULL);
@@ -1027,7 +1027,7 @@ EXPORT void my_pa_mainloop_free(x64emu_t* emu, void* mainloop)
 EXPORT void* my_pa_mainloop_get_api(x64emu_t* emu, void* mainloop)
 {
     my_pa_mainloop_api_t* api = my->pa_mainloop_get_api(mainloop);
-    bridgeMainloopAPI(my_lib->priv.w.bridge, api);
+    bridgeMainloopAPI(my_lib->w.bridge, api);
     return my_mainloop_ref;
 }
 
@@ -1040,7 +1040,7 @@ EXPORT void my_pa_threaded_mainloop_free(x64emu_t* emu, void* mainloop)
 EXPORT void* my_pa_threaded_mainloop_get_api(x64emu_t* emu, void* mainloop)
 {
     my_pa_mainloop_api_t* api = my->pa_threaded_mainloop_get_api(mainloop);
-    bridgeMainloopAPI(my_lib->priv.w.bridge, api);
+    bridgeMainloopAPI(my_lib->w.bridge, api);
     return my_mainloop_ref;
 }
 
@@ -1271,7 +1271,7 @@ EXPORT void my_pa_stream_set_read_callback(x64emu_t* emu, void* stream, void* cb
 
 EXPORT int my_pa_stream_write(x64emu_t* emu, void* stream, void* d, size_t nbytes, void* cb, int64_t offset, int seek)
 {
-    if(!emu->context->pulse)
+    if(!my_lib)
         return 0;
     if(!my)
         return 0;
@@ -1484,12 +1484,10 @@ EXPORT void* my_pa_context_get_source_output_info(x64emu_t* emu, void* c, uint32
         return -1;
 
 #define CUSTOM_INIT \
-    getMy(lib);     \
-    box64->pulse = lib;
+    getMy(lib);
 
 
 #define CUSTOM_FINI \
-    lib->context->pulse = NULL;     \
     freeMy();
 
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedsdl1.c b/src/wrapped/wrappedsdl1.c
index 6341c9cb..97353568 100755
--- a/src/wrapped/wrappedsdl1.c
+++ b/src/wrapped/wrappedsdl1.c
@@ -136,13 +136,12 @@ static void* find_EvtFilter_Fct(void* fct)
 static void* reverse_EvtFilterFct(void* fct)
 {
     if(!fct) return fct;
-    library_t* my_lib = my_context->sdl1lib;
-    if(CheckBridged(my_lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(my_lib->priv.w.bridge, fct);
+    if(CheckBridged(my_lib->w.bridge, fct))
+        return (void*)CheckBridged(my_lib->w.bridge, fct);
     #define GO(A) if(my_EvtFilter_##A == fct) return (void*)my_EvtFilter_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(my_lib->priv.w.bridge, iFp, fct, 0, NULL);
+    return (void*)AddBridge(my_lib->w.bridge, iFp, fct, 0, NULL);
 }
 #undef SUPER
 
@@ -454,7 +453,6 @@ EXPORT int32_t my_SDL_GetWMInfo(x64emu_t* emu, void* p)
 }
 
 #define CUSTOM_INIT \
-    box64->sdl1lib = lib;                   \
     getMy(lib);                             \
     box64->sdl1allocrw = my->SDL_AllocRW;   \
     box64->sdl1freerw  = my->SDL_FreeRW;    \
@@ -464,10 +462,9 @@ EXPORT int32_t my_SDL_GetWMInfo(x64emu_t* emu, void* p)
         "librt.so.1");
 
 #define CUSTOM_FINI \
-    my->SDL_Quit();                                         \
-    freeMy();                                               \
-    ((box64context_t*)(lib->context))->sdl1lib = NULL;      \
-    ((box64context_t*)(lib->context))->sdl1allocrw = NULL;  \
-    ((box64context_t*)(lib->context))->sdl1freerw = NULL;
+    my->SDL_Quit();                         \
+    freeMy();                               \
+    my_context->sdl1allocrw = NULL;         \
+    my_context->sdl1freerw = NULL;
 
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedsdl1mixer.c b/src/wrapped/wrappedsdl1mixer.c
index fa4ea1a8..9538aacf 100755
--- a/src/wrapped/wrappedsdl1mixer.c
+++ b/src/wrapped/wrappedsdl1mixer.c
@@ -214,6 +214,6 @@ EXPORT int my_Mix_UnregisterEffect(x64emu_t* emu, int channel, void* f)
 
 #define CUSTOM_FINI \
     freeMy();       \
-    ((box64context_t*)(lib->context))->sdl1mixerlib = NULL;
+    my_context->sdl1mixerlib = NULL;
 
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedsdl2.c b/src/wrapped/wrappedsdl2.c
index 9f02e549..6de8b907 100755
--- a/src/wrapped/wrappedsdl2.c
+++ b/src/wrapped/wrappedsdl2.c
@@ -173,12 +173,12 @@ static void* find_eventfilter_Fct(void* fct)
 static void* reverse_eventfilter_Fct(void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(my_context->sdl2lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(my_context->sdl2lib->priv.w.bridge, fct);
+    if(CheckBridged(my_lib->w.bridge, fct))
+        return (void*)CheckBridged(my_lib->w.bridge, fct);
     #define GO(A) if(my_eventfilter_##A == fct) return (void*)my_eventfilter_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(my_context->sdl2lib->priv.w.bridge, iFpp, fct, 0, NULL);
+    return (void*)AddBridge(my_lib->w.bridge, iFpp, fct, 0, NULL);
 }
 
 // LogOutput
@@ -206,12 +206,12 @@ static void* find_LogOutput_Fct(void* fct)
 static void* reverse_LogOutput_Fct(void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(my_context->sdl2lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(my_context->sdl2lib->priv.w.bridge, fct);
+    if(CheckBridged(my_lib->w.bridge, fct))
+        return (void*)CheckBridged(my_lib->w.bridge, fct);
     #define GO(A) if(my_LogOutput_##A == fct) return (void*)my_LogOutput_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(my_context->sdl2lib->priv.w.bridge, vFpiip, fct, 0, NULL);
+    return (void*)AddBridge(my_lib->w.bridge, vFpiip, fct, 0, NULL);
 }
 
 #undef SUPER
@@ -532,14 +532,14 @@ static int get_sdl_priv(x64emu_t* emu, const char *sym_str, void **w, void **f)
         else if (strcmp(#sym, sym_str) == 0) \
         { \
             *w = _w; \
-            *f = dlsym(emu->context->sdl2lib->priv.w.lib, #sym); \
+            *f = dlsym(emu->context->sdl2lib->w.lib, #sym); \
             return *f != NULL; \
         }
     #define GO2(sym, _w, sym2) \
         else if (strcmp(#sym, sym_str) == 0) \
         { \
             *w = _w; \
-            *f = dlsym(emu->context->sdl2lib->priv.w.lib, #sym2); \
+            *f = dlsym(emu->context->sdl2lib->w.lib, #sym2); \
             return *f != NULL; \
         }
     #define GOM(sym, _w) \
@@ -575,7 +575,7 @@ int EXPORT my2_SDL_DYNAPI_entry(x64emu_t* emu, uint32_t version, uintptr_t *tabl
             void *w = NULL; \
             void *f = NULL; \
             if (get_sdl_priv(emu, #sym, &w, &f)) { \
-                table[i] = AddCheckBridge(my_context->sdl2lib->priv.w.bridge, w, f, 0, #sym); \
+                table[i] = AddCheckBridge(my_lib->w.bridge, w, f, 0, #sym); \
             } \
             else \
                 table[i] = (uintptr_t)NULL; \
@@ -847,7 +847,7 @@ EXPORT void* my2_SDL_Vulkan_GetVkGetInstanceProcAddr(x64emu_t* emu)
         emu->context->vkprocaddress = (vkprocaddess_t)my->SDL_Vulkan_GetVkGetInstanceProcAddr();
 
     if(emu->context->vkprocaddress)
-        return (void*)AddCheckBridge(my_context->sdl2lib->priv.w.bridge, pFEpp, my_vkGetInstanceProcAddr, 0, "vkGetInstanceProcAddr");
+        return (void*)AddCheckBridge(my_lib->w.bridge, pFEpp, my_vkGetInstanceProcAddr, 0, "vkGetInstanceProcAddr");
     return NULL;
 }
 
@@ -888,9 +888,9 @@ EXPORT void my2_SDL_GetJoystickGUIDInfo(SDL_JoystickGUID guid, uint16_t *vend, u
     if(my_glhandle) my_dlclose(thread_get_emu(), my_glhandle);  \
     my_glhandle = NULL;                                         \
     freeMy();                                                   \
-    ((box64context_t*)(lib->context))->sdl2lib = NULL;          \
-    ((box64context_t*)(lib->context))->sdl2allocrw = NULL;      \
-    ((box64context_t*)(lib->context))->sdl2freerw = NULL;
+    my_context->sdl2lib = NULL;                                 \
+    my_context->sdl2allocrw = NULL;                             \
+    my_context->sdl2freerw = NULL;
 
 
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedsdl2mixer.c b/src/wrapped/wrappedsdl2mixer.c
index c0c5af5f..8bf9c4df 100755
--- a/src/wrapped/wrappedsdl2mixer.c
+++ b/src/wrapped/wrappedsdl2mixer.c
@@ -232,6 +232,6 @@ EXPORT int my2_MinorityMix_SetPosition(x64emu_t* emu, int channel, int16_t angle
 
 #define CUSTOM_FINI \
     freeMy();       \
-    ((box64context_t*)(lib->context))->sdl2mixerlib = NULL;
+    my_context->sdl2mixerlib = NULL;
 
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedtcmallocminimal.c b/src/wrapped/wrappedtcmallocminimal.c
index 20b2ccc0..4f179cf0 100755
--- a/src/wrapped/wrappedtcmallocminimal.c
+++ b/src/wrapped/wrappedtcmallocminimal.c
@@ -17,7 +17,7 @@ const char* tcmallocminimalName = "libtcmalloc_minimal.so.4";
 
 // this preinit basically open "box86" as dlopen (because libtcmalloc_minimal needs to be LD_PRELOAD for it to work)
 #define PRE_INIT\
-    lib->priv.w.lib = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);    \
+    lib->w.lib = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);    \
     if(0)
 
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedunwind.c b/src/wrapped/wrappedunwind.c
index ba503be2..c0aeba37 100644
--- a/src/wrapped/wrappedunwind.c
+++ b/src/wrapped/wrappedunwind.c
@@ -36,7 +36,7 @@ EXPORT int my__ULx86_64_init_local(x64emu_t* emu, void* cursor, void* ctx) {
 
 #define PRE_INIT                                                \
     if(1)                                                       \
-        lib->priv.w.lib = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);\
+        lib->w.lib = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);\
     else
 
 
diff --git a/src/wrapped/wrappedutil.c b/src/wrapped/wrappedutil.c
index 68f5757a..3c2442a3 100755
--- a/src/wrapped/wrappedutil.c
+++ b/src/wrapped/wrappedutil.c
@@ -28,7 +28,7 @@ EXPORT pid_t my_forkpty(x64emu_t* emu, void* amaster, void* name, void* termp, v
     forkinfo.termp = termp;
     forkinfo.winp = winp;
     library_t* lib = GetLibInternal(utilName);
-    forkinfo.f = dlsym(lib->priv.w.lib, "forkpty");
+    forkinfo.f = dlsym(lib->w.lib, "forkpty");
     
     emu->quit = 1;
     emu->fork = 2;
diff --git a/src/wrapped/wrappedvorbisfile.c b/src/wrapped/wrappedvorbisfile.c
index 768c06a6..ad285fe7 100755
--- a/src/wrapped/wrappedvorbisfile.c
+++ b/src/wrapped/wrappedvorbisfile.c
@@ -166,12 +166,10 @@ EXPORT int32_t my_ov_test_callbacks(x64emu_t* emu, void* datasource, void* vf, v
 #endif
 
 #define CUSTOM_INIT \
-    box64->vorbisfile = lib;\
     getMy(lib);
 
 #define CUSTOM_FINI \
-    freeMy();   \
-    my_context->vorbisfile = NULL;
+    freeMy();
 
 #include "wrappedlib_init.h"
 
diff --git a/src/wrapped/wrappedvulkan.c b/src/wrapped/wrappedvulkan.c
index 074082d8..21d9ea8c 100755
--- a/src/wrapped/wrappedvulkan.c
+++ b/src/wrapped/wrappedvulkan.c
@@ -325,7 +325,7 @@ static void* find_DebugReportCallbackEXT_Fct(void* fct)
 
 #undef SUPER
 
-//#define PRE_INIT if(libGL) {lib->priv.w.lib = dlopen(libGL, RTLD_LAZY | RTLD_GLOBAL); lib->path = strdup(libGL);} else
+//#define PRE_INIT if(libGL) {lib->w.lib = dlopen(libGL, RTLD_LAZY | RTLD_GLOBAL); lib->path = strdup(libGL);} else
 
 #define PRE_INIT        \
     if(box64_novulkan)  \
@@ -333,8 +333,8 @@ static void* find_DebugReportCallbackEXT_Fct(void* fct)
 
 #define CUSTOM_INIT \
     getMy(lib);     \
-    lib->priv.w.priv = dlsym(lib->priv.w.lib, "vkGetInstanceProcAddr"); \
-    box64->vkprocaddress = lib->priv.w.priv;
+    lib->w.priv = dlsym(lib->w.lib, "vkGetInstanceProcAddr"); \
+    box64->vkprocaddress = lib->w.priv;
 
 #define CUSTOM_FINI \
     freeMy();
diff --git a/src/wrapped/wrappedwaylandclient.c b/src/wrapped/wrappedwaylandclient.c
index 5335f30f..c1570cf2 100644
--- a/src/wrapped/wrappedwaylandclient.c
+++ b/src/wrapped/wrappedwaylandclient.c
@@ -21,10 +21,4 @@
 const char* waylandclientName = "libwayland-client.so.0";
 #define LIBNAME waylandclient
 
-#define CUSTOM_INIT \
-    box64->vorbis = lib;
-
-#define CUSTOM_FINI \
-    lib->context->vorbis = NULL;
-
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedwaylandcursor.c b/src/wrapped/wrappedwaylandcursor.c
index b62a4181..8ce68fb1 100644
--- a/src/wrapped/wrappedwaylandcursor.c
+++ b/src/wrapped/wrappedwaylandcursor.c
@@ -21,10 +21,4 @@
 const char* waylandcursorName = "libwayland-cursor.so.0";
 #define LIBNAME waylandcursor
 
-#define CUSTOM_INIT \
-    box64->vorbis = lib;
-
-#define CUSTOM_FINI \
-    lib->context->vorbis = NULL;
-
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedwaylandegl.c b/src/wrapped/wrappedwaylandegl.c
index d7c0dd29..5b696af1 100644
--- a/src/wrapped/wrappedwaylandegl.c
+++ b/src/wrapped/wrappedwaylandegl.c
@@ -21,10 +21,4 @@
 const char* waylandeglName = "libwayland-egl.so.1";
 #define LIBNAME waylandegl
 
-#define CUSTOM_INIT \
-    box64->vorbis = lib;
-
-#define CUSTOM_FINI \
-    lib->context->vorbis = NULL;
-
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedxml2.c b/src/wrapped/wrappedxml2.c
index e8c68206..271edfdd 100755
--- a/src/wrapped/wrappedxml2.c
+++ b/src/wrapped/wrappedxml2.c
@@ -67,17 +67,17 @@ void* my_wrap_xmlMemStrdup(void* p)
 
 #define ADDED_INIT() \
     void** p;                                                                                               \
-    p=dlsym(lib->priv.w.lib, "xmlFree");                                                                    \
-        my_xmlFree = (p && *p)?AddBridge(lib->priv.w.bridge, vFp, *p, 0, "my_wrap_xmlFree"):0;              \
+    p=dlsym(lib->w.lib, "xmlFree");                                                                    \
+        my_xmlFree = (p && *p)?AddBridge(lib->w.bridge, vFp, *p, 0, "my_wrap_xmlFree"):0;              \
         if(p) *p = my_wrap_xmlFree;                                                                         \
-    p=dlsym(lib->priv.w.lib, "xmlMalloc");                                                                  \
-        my_xmlMalloc = (p && *p)?AddBridge(lib->priv.w.bridge, pFL, *p, 0, "my_wrap_xmlMalloc"):0;          \
+    p=dlsym(lib->w.lib, "xmlMalloc");                                                                  \
+        my_xmlMalloc = (p && *p)?AddBridge(lib->w.bridge, pFL, *p, 0, "my_wrap_xmlMalloc"):0;          \
         if(p) *p = my_wrap_xmlMalloc;                                                                       \
-    p=dlsym(lib->priv.w.lib, "xmlRealloc");                                                                 \
-        my_xmlRealloc = (p && *p)?AddBridge(lib->priv.w.bridge, pFpL, *p, 0, "my_wrap_xmlRealloc"):0;       \
+    p=dlsym(lib->w.lib, "xmlRealloc");                                                                 \
+        my_xmlRealloc = (p && *p)?AddBridge(lib->w.bridge, pFpL, *p, 0, "my_wrap_xmlRealloc"):0;       \
         if(p) *p = my_wrap_xmlRealloc;                                                                      \
-    p=dlsym(lib->priv.w.lib, "xmlMemStrdup");                                                               \
-        my_xmlMemStrdup = (p && *p)?AddBridge(lib->priv.w.bridge, pFp, *p, 0, "my_wrap_xmlMemStrdup"):0;    \
+    p=dlsym(lib->w.lib, "xmlMemStrdup");                                                               \
+        my_xmlMemStrdup = (p && *p)?AddBridge(lib->w.bridge, pFp, *p, 0, "my_wrap_xmlMemStrdup"):0;    \
         if(p) *p = my_wrap_xmlMemStrdup;
 
 #include "wrappercallback.h"
@@ -1110,12 +1110,12 @@ static void* find_xmlExternalEntityLoaderFct(void* fct)
 static void* reverse_xmlExternalEntityLoaderFct(void* fct)
 {
     if(!fct) return fct;
-    if(CheckBridged(my_lib->priv.w.bridge, fct))
-        return (void*)CheckBridged(my_lib->priv.w.bridge, fct);
+    if(CheckBridged(my_lib->w.bridge, fct))
+        return (void*)CheckBridged(my_lib->w.bridge, fct);
     #define GO(A) if(my_xmlExternalEntityLoader_##A == fct) return (void*)my_xmlExternalEntityLoader_fct_##A;
     SUPER()
     #undef GO
-    return (void*)AddBridge(my_lib->priv.w.bridge, pFppp, fct, 0, "xmlExternalEntityLoader_callback");
+    return (void*)AddBridge(my_lib->w.bridge, pFppp, fct, 0, "xmlExternalEntityLoader_callback");
 }
 
 
diff --git a/src/wrapped/wrappercallback.h b/src/wrapped/wrappercallback.h
index 2886965e..b86ed14e 100644
--- a/src/wrapped/wrappercallback.h
+++ b/src/wrapped/wrappercallback.h
@@ -1,4 +1,3 @@
-
 #define TYPENAME3(N,M) N##M
 #define TYPENAME2(N,M) TYPENAME3(N,M)
 #define TYPENAME(N) TYPENAME2(LIBNAME, _my_t)
@@ -19,7 +18,7 @@ static TYPENAME(LIBNAME) * const my = &TYPENAME2(my_, LIBNAME);
 
 static void getMy(library_t* lib)
 {
-    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    #define GO(A, W) my->A = (W)dlsym(lib->w.lib, #A);
     SUPER()
     #undef GO
     my_lib = lib;