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.

Reply via email to