<AWT Dev> [9] Review request: new macro for conversion to jboolean
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Wed Mar 19 23:43:10 UTC 2014
Thanks.
So if nobody objects, the final version will be:
#define IS_NULL(obj) ((obj) == NULL)
#define JNU_IsNull(env,obj) ((obj) == NULL)
+#define TO_JBOOLEAN(obj) (jboolean) ((obj) ? JNI_TRUE : JNI_FALSE)
On 3/20/14 12:07 AM, roger riggs wrote:
> Hi,
>
> Well... When JNU_RETURN was added, there was a long discussion about
> NOT using JNU unless the JNI environment was an argument to the macro.
>
> So, the simple name is preferred.
>
> Roger
>
> On 3/19/2014 4:08 PM, Phil Race wrote:
>> PS .. so maybe whilst you are touching this file you could do
>> #define JNU_CHECK_NULL CHECK_NULL
>> #define JNU_CHECK_NULL_RETURN CHECK_NULL_RETURN
>>
>> so we could migrate to these (clearer) ones
>>
>> -phil.
>>
>> On 3/19/2014 1:05 PM, Phil Race wrote:
>>> I think having it start with "JNU_" is a good suggestion.
>>> I've been wondering over the last week or so if it would not have been
>>> better to have CHECK_NULL called JNU_CHECK_NULL to reduce collision
>>> chances
>>> and to make it clearer where it comes from ..
>>>
>>> -phil.
>>>
>>> On 3/19/2014 12:49 PM, Mike Duigou wrote:
>>>> Definitely a useful macro.
>>>>
>>>> I too would prefer a name like TO_JBOOLEAN since it reveals the
>>>> result type. Also all uppercase to identify it as a macro. If we
>>>> are paranoid and want to reduce the chance of a name collision then
>>>> JNU_TO_JBOOLEAN perhaps.
>>>>
>>>> I would also define the macro as:
>>>>
>>>> #define JNU_TO_JBOOLEAN(obj) (jboolean) ((obj) ? JNI_TRUE : JNI_FALSE)
>>>>
>>>> so that the type of the result is explicit. Unfortunately jni.h
>>>> doesn't define JNI_TRUE or false with a cast to jboolean as they
>>>> probably should.
>>>>
>>>> Mike
>>>>
>>>> On Mar 19 2014, at 11:36 , Sergey Bylokhov
>>>> <sergey.bylokhov at oracle.com> wrote:
>>>>
>>>>> Thanks Anthony!
>>>>>
>>>>> Can somebody from the core-libs team take a look?
>>>>>
>>>>> On 3/17/14 10:31 PM, Anthony Petrov wrote:
>>>>>> Personally, I'd call it to_jboolean(obj), but IS_TRUE(obj) sounds
>>>>>> good to me too. Either way, I'm fine with the fix.
>>>>>>
>>>>>> --
>>>>>> best regards,
>>>>>> Anthony
>>>>>>
>>>>>> On 3/17/2014 7:01 PM, Sergey Bylokhov wrote:
>>>>>>> Hello.
>>>>>>> This review request is for the new macro, which simplify
>>>>>>> conversion to
>>>>>>> jboolean. It will be useful for fixing parfait warnings.
>>>>>>>
>>>>>>> We have a lot of places, where we cast some type to jboolean:
>>>>>>>
>>>>>>> BOOL = retVal;
>>>>>>> return (jboolean) retVal;
>>>>>>>
>>>>>>> WARNING: Expecting value of JNI primitive type jboolean: mismatched
>>>>>>> value retVal with size 32 bits, retVal used for conversion to
>>>>>>> int8 in return
>>>>>>>
>>>>>>>
>>>>>>> +++ b/src/share/native/common/jni_util.h Mon Mar 17 18:28:48
>>>>>>> 2014 +0400
>>>>>>> @@ -277,6 +277,7 @@
>>>>>>>
>>>>>>> #define IS_NULL(obj) ((obj) == NULL)
>>>>>>> #define JNU_IsNull(env,obj) ((obj) == NULL)
>>>>>>> +#define IS_TRUE(obj) ((obj) ? JNI_TRUE : JNI_FALSE)
>>>>>>>
>>>>>>> I am not sure about the name, probably someone have a better
>>>>>>> suggestion?
>>>>>>>
>>>>>>> The fix is for jdk9/dev.
>>>>>>>
>>>>>>> --
>>>>>>> Best regards, Sergey.
>>>>>>>
>>>>>
>>>>> --
>>>>> Best regards, Sergey.
>>>>>
>>>
>>
>
--
Best regards, Sergey.
More information about the core-libs-dev
mailing list