summary refs log tree commit diff stats
path: root/results/scraper/box64/2136
diff options
context:
space:
mode:
Diffstat (limited to 'results/scraper/box64/2136')
-rw-r--r--results/scraper/box64/213661
1 files changed, 61 insertions, 0 deletions
diff --git a/results/scraper/box64/2136 b/results/scraper/box64/2136
new file mode 100644
index 000000000..b3a524761
--- /dev/null
+++ b/results/scraper/box64/2136
@@ -0,0 +1,61 @@
+[WRAPPER] The function or data cairo_image_surface_create is declared in multiple files
+Hi,

+

+x64 openjdk [src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.c]( https://github.com/openjdk/jdk/blob/master/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.c#L347) `gtk3_load` not only check gtk related API but also check cairo:

+```

+static void* dl_symbol(const char* name)

+{

+    void* result = dlsym(gtk3_libhandle, name);

+    if (!result) {

+        longjmp(j, NO_SYMBOL_EXCEPTION);

+    }

+

+    return result;

+}

+

+GtkApi* gtk3_load(JNIEnv *env, const char* lib_name)

+{

+...

+    fp_gtk_check_version = dl_symbol("gtk_check_version");

+...

+=>  fp_cairo_image_surface_create = dl_symbol("cairo_image_surface_create");

+...

+    /* Now we have only one kind of exceptions: NO_SYMBOL_EXCEPTION

+     * Otherwise we can check the return value of setjmp method.

+     */

+    else

+    {

+        dlclose(gtk3_libhandle);

+        gtk3_libhandle = NULL;

+

+        dlclose(gthread_libhandle);

+        gthread_libhandle = NULL;

+

+        return NULL;

+    }

+...

+```

+

+if added cairo related API wrapper into gtk3:

+```

+diff --git a/src/wrapped/wrappedgtk3_private.h b/src/wrapped/wrappedgtk3_private.h

+index ac87f92d..63f69330 100644

+--- a/src/wrapped/wrappedgtk3_private.h

++++ b/src/wrapped/wrappedgtk3_private.h

+@@ -4591,3 +4591,5 @@ GO(gtk_wrap_mode_get_type, LFv)

+ GO(dummy_iFppdd, iFppdd)    // for GtkEventController wrapping

+ GO(dummy_iFppUup, iFppUup)

+ GO(dummy_pFpLi, pFpLi)

++

++GO(cairo_image_surface_create, pFiii)

+```

+

+rebuild_wrappers.py halt:

+```

+The function or data cairo_image_surface_create is declared in multiple files (wrappedcairo_private.h/wrappedgtk3_private.h) [extra note in the script]

+```

+

+So I just comment `halt_required = True` and rebuilt box64, it works :) but open an issue about is it able to add cario related API into gtk3?

+

+Thanks,

+Leslie Zhai
\ No newline at end of file