Hi Jc,

On 18/12/2018 8:12 am, JC Beyler wrote:
Hi David,

I understand the rationale behind the "If the method does return NULL, then isCopy's value is undefined". But what about the DEFINE_GETSCALARARRAYELEMENTS case?

It does this:
   if (len == 0) { \
     /* Empty array: legal but useless, can't return NULL. \
      * Return a pointer to something useless. \
      * Avoid asserts in typeArrayOop. */ \
     result = (ElementType*)get_bad_address(); \

Should we at least then put isCopy to JNI_FALSE in that case since it does not return NULL and no exception is raised,

Sure - it's an odd corner case, but better not to leave isCopy potentially uninitialized.

Thanks,
David

Thanks,
Jc


On Mon, Dec 17, 2018 at 1:29 PM David Holmes <david.hol...@oracle.com <mailto:david.hol...@oracle.com>> wrote:

    Hi Jc,

    On 18/12/2018 3:42 am, JC Beyler wrote:
     > Hi all,
     >
     > Could I get a review for this webrev:
     >
     > Webrev: http://cr.openjdk.java.net/~jcbeyler/8215495/webrev.00/
     > Bug: https://bugs.openjdk.java.net/browse/JDK-8215495

    isCopy only has to be set if the method executes successfully

    "If isCopy is not NULL, then *isCopy is set to JNI_TRUE if a copy is
    made; or it is set to JNI_FALSE if no copy is made."

    You can only make (or not) a copy if the operation actually
    succeeds. So
    before checking isCopy the caller must check for NULL and/or a pending
    exception.

    I see no bug here.

    David
    -----

     > Thanks,
     > Jc



--

Thanks,
Jc

Reply via email to