<AWT Dev> FW: RFR: [XS] 8214380: AwtDragSource function LoadCache misses a ReleaseLongArrayElements in special case

Thomas Stüfe thomas.stuefe at gmail.com
Tue Dec 4 09:12:20 UTC 2018


Hi Matthias,

looks fine to me as well, though I wonder whether this
lformats/saveformats coding could be simplified by simply using
lformats[i] in the loops to access the array elements and getting rid
of saveformats. But this has nothing to do with your patch.

Cheers, Thomas
On Tue, Dec 4, 2018 at 10:09 AM Stuefe, Thomas <thomas.stuefe at sap.com> wrote:
>
>
>
> -----Original Message-----
> From: Baesken, Matthias
> Sent: Dienstag, 4. Dezember 2018 09:01
> To: Langer, Christoph <christoph.langer at sap.com>; Stuefe, Thomas <thomas.stuefe at sap.com>; Lindenmaier, Goetz <goetz.lindenmaier at sap.com>
> Subject: FW: <AWT Dev> RFR: [XS] 8214380: AwtDragSource function LoadCache misses a ReleaseLongArrayElements in special case
>
> Hallo, kann jemand noch ein 2. Review beitragen ?
>
> Danke und Gruß, Matthias
>
>
> -----Original Message-----
> From: Sergey Bylokhov <Sergey.Bylokhov at oracle.com>
> Sent: Samstag, 1. Dezember 2018 01:18
> To: Baesken, Matthias <matthias.baesken at sap.com>; awt-dev at openjdk.java.net
> Subject: Re: <AWT Dev> RFR: [XS] 8214380: AwtDragSource function LoadCache misses a ReleaseLongArrayElements in special case
>
> Looks fine.
>
> On 30/11/2018 05:22, Baesken, Matthias wrote:
> > Hi Sergey,   I prepared a second webrev  :
> >
> > http://cr.openjdk.java.net/~mbaesken/webrevs/8214380.1/
> >
> > - removed the unused isCopy
> > - added a NULL check  after  GetLongArrayElements
> >
> >
> > Best regards, Matthias
> >
> >
> >
> >> -----Original Message-----
> >> From: Baesken, Matthias
> >> Sent: Donnerstag, 29. November 2018 10:01
> >> To: 'Sergey Bylokhov' <Sergey.Bylokhov at oracle.com>; 'awt-
> >> dev at openjdk.java.net' <awt-dev at openjdk.java.net>
> >> Subject: RE: <AWT Dev> RFR: [XS] 8214380: AwtDragSource function
> >> LoadCache misses a ReleaseLongArrayElements in special case
> >>
> >> Btw when looking at the coding,  I  wonder  why  we save the copy-state  in
> >> isCopy  :
> >>
> >> Docu :    "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"
> >>
> >>   397     jboolean isCopy;
> >>   398     jlong *lFormats = env->GetLongArrayElements(formats, &isCopy),
> >>
> >>   But  then we do not use it afterwards ,   so should we better call   it with
> >> NULL  instead?
> >>
> >> Regards, Matthias
> >>
> >>
> >>> -----Original Message-----
> >>> From: Baesken, Matthias
> >>> Sent: Donnerstag, 29. November 2018 09:17
> >>> To: 'Sergey Bylokhov' <Sergey.Bylokhov at oracle.com>; awt-
> >>> dev at openjdk.java.net
> >>> Subject: RE: <AWT Dev> RFR: [XS] 8214380: AwtDragSource function
> >>> LoadCache misses a ReleaseLongArrayElements in special case
> >>>
> >>> Hi Sergey,   I  think it is (at least)  a good practice  to NULL -  check  the result
> >>> of  env->GetLongArrayElements .
> >>> Probably it should be done  right after  the
> >>>
> >>>       jlong *lFormats = env->GetLongArrayElements(formats, &isCopy),
> >>>
> >>> call.
> >>> See  jdk/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c   for
> >>> examples of usages   of the function (with NULL checks) .
> >>>
> >>> Or see the documentation at
> >>>
> >> https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/function
> >>> s.html
> >>> Where we find :
> >>>
> >>>
> >>> Get<PrimitiveType>ArrayElements Routines
> >>>     ....
> >>> PARAMETERS:
> >>>
> >>> env: the JNI interface pointer.
> >>> array: a Java string object.
> >>> isCopy: a pointer to a boolean.
> >>>
> >>>
> >>> RETURNS:
> >>>
> >>> Returns a pointer to the array elements, ****or NULL if the operation
> >>> fails.****
> >>>
> >>>
> >>> So returning NULL might  happen .
> >>>
> >>> Best regards, Matthias
> >>>
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: Sergey Bylokhov <Sergey.Bylokhov at oracle.com>
> >>>> Sent: Donnerstag, 29. November 2018 00:22
> >>>> To: Baesken, Matthias <matthias.baesken at sap.com>; awt-
> >>>> dev at openjdk.java.net
> >>>> Subject: Re: <AWT Dev> RFR: [XS] 8214380: AwtDragSource function
> >>>> LoadCache misses a ReleaseLongArrayElements in special case
> >>>>
> >>>> Hi, Matthias.
> >>>>
> >>>> Do we need the null check in the fix, if "yes" then probably
> >>>> the same check should be added before this line as well?
> >>>>     465     env->ReleaseLongArrayElements(formats, saveFormats, 0);
> >>>>
> >>>> On 28/11/2018 00:33, Baesken, Matthias wrote:
> >>>>> Hello, please review  this small fix.
> >>>>>
> >>>>> It adds a missing ReleaseLongArrayElements  to
> >>>>>
> >>>>> void AwtDragSource::LoadCache(jlongArray formats)
> >>>>>
> >>>>> in an early special   "pseudo return"  (leave function via throw)  case.
> >>>>>
> >>>>> Webrev/bug :
> >>>>>
> >>>>> http://cr.openjdk.java.net/~mbaesken/webrevs/8214380.0/
> >>>>>
> >>>>> https://bugs.openjdk.java.net/browse/JDK-8214380
> >>>>>
> >>>>> Thanks, Matthias
> >>>>>
> >>>>
> >>>>
> >>>> --
> >>>> Best regards, Sergey.
>
>
> --
> Best regards, Sergey.
>


More information about the awt-dev mailing list