Hi Sergey, I agree if this change goes to 8u as the least risky thing we can do now.
For 9 I'd prefer to fix the root cause of the problem, which is related to the wrong cast of e.g. AwtList::_IsSelected from (jboolean (*)(void*)) to (void *(*)(void *)) - we simply should have never performed such a type cast because it's wrong.
Alternatively, we could push your fix to 9 now so as to enable its back-porting, and then file a new bug against 9 to fix this issue properly. If you choose this way, please provide us with the new bug id and consider the current fix approved then.
-- best regards, Anthony On 7/10/2014 6:11 PM, Sergey Bylokhov wrote:
Hello. Please review the fix for jdk 9. The bug reproduced on xp only, regression of JDK-8035739 <https://bugs.openjdk.java.net/browse/JDK-8035739> Description: void * is 4 bytes jboolean is 1 byte. Before the fix we cast to jboolean after the fix not[1]. On XP part of the return value is not zeroed. So false became true. All places where we use JNI_IS_TRUE and SysCall were reverted. [1] http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/5d22ffb8b826 Bug: https://bugs.openjdk.java.net/browse/JDK-8049583 Webrev can be found at: http://cr.openjdk.java.net/~serb/8049583/webrev.00 -- Best regards, Sergey.
