RFR: 8307145: windowsaccessbridge.dll is missing 4 critical methods in its C API
Julian Waters
jwaters at openjdk.org
Wed May 3 13:23:15 UTC 2023
On Sat, 29 Apr 2023 19:26:00 GMT, Julian Waters <jwaters at openjdk.org> wrote:
> In windowsaccessbridge(-64).dll the following methods are exported in a def file to C API which in turn call their real implementation, which are instance methods of the class WinAccessBridge:
>
> addJavaEventNotification
> removeJavaEventNotification
> addAccessibilityEventNotification
> removeAccessibilityEventNotification
>
>
> However, they are nowhere to be seen in the actual C interface, in AccessBridgeWindowsEntryPoints.cpp. Your guess is as good as mine as to how on earth MSVC is still capable of compiling and linking this without any errors whatsoever, but in any case, this is a severe oversight and should be properly defined in the C API lest this happy accident within MSVC is fixed by Microsoft in the future
I should think so, it doesn't make sense to export a function that doesn't even exist at all. And to make matters worse Microsoft Visual C still does export functions with those names (you can easily verify this with dumpbin) which is even more confusing. It may be a cursed Microsoft extension that has simply gone under the radar, and is somehow exporting the C++ class instance methods as static, or even exporting dummy functions, neither of which is what we want it to do!
-------------
PR Comment: https://git.openjdk.org/jdk/pull/13734#issuecomment-1533020156
More information about the client-libs-dev
mailing list