RFR(xs): 8145114: const-correctness for ucontext_t* reading functions

David Holmes david.holmes at oracle.com
Mon Dec 14 03:18:04 UTC 2015


On 11/12/2015 11:28 PM, Thomas Stüfe wrote:
> Hi David,
>
> On Fri, Dec 11, 2015 at 2:11 PM, David Holmes <david.holmes at oracle.com
> <mailto:david.holmes at oracle.com>> wrote:
>
>     On 11/12/2015 10:58 PM, Thomas Stüfe wrote:
>
>         Hi David,
>
>         that was an oversight. see new webrev:
>
>         http://cr.openjdk.java.net/~stuefe/webrevs/8145114-const-correctness-ucontext/webrev.01/webrev/
>
>         and the delta to webrev 00:
>
>         http://cr.openjdk.java.net/~stuefe/webrevs/8145114-const-correctness-ucontext/webrev.00-01/
>
>
>     That looks fine but ... I'm looking at other uses of ucontext_t and
>     wondering if they are missing const?
>
>     JavaThread::pd_get_top_frame ?
>
>     ./os/linux/vm/osThread_linux.hpp:  ucontext_t* _ucontext;
>     ./os/linux/vm/osThread_linux.hpp:  ucontext_t* ucontext() const    {
>     return _ucontext; }
>     ./os/linux/vm/osThread_linux.hpp:  void set_ucontext(ucontext_t*
>     ptr)    { _ucontext = ptr;  }
>
>     etc
>
>
> You are probably right, but I needed to draw the line at some point. I
> would like to submit the patch as it is (originally I just wanted to fix
> os::Aix::ucontext_get_pc()).

Okay I'll push what is there.

Thanks,
David

> Thanks, Thomas
>
>
>     Thanks,
>     David
>
>         Thanks, Thomas
>
>         On Fri, Dec 11, 2015 at 11:21 AM, David Holmes
>         <david.holmes at oracle.com <mailto:david.holmes at oracle.com>
>         <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>>> wrote:
>
>              Hi Thomas,
>
>              In:
>
>              ExtendedPC os::fetch_frame_from_context(const void* ucVoid,
>                                   intptr_t** ret_sp, intptr_t** ret_fp) {
>                 ExtendedPC  epc;
>                 ucontext_t* uc = (ucontext_t*)ucVoid;
>
>
>              is there some reason these ucontext_t's were not made const?
>
>              Thanks,
>              David
>
>              On 11/12/2015 7:57 PM, Thomas Stüfe wrote:
>
>                  Hi David,
>
>                  On Fri, Dec 11, 2015 at 10:35 AM, David Holmes
>                  <david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com> <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>>
>                  <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>
>
>                  <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>>>> wrote:
>
>                       Hi Thomas,
>
>                       This seems okay. To be honest I'm not sure of the
>                  usefulness but it
>                       certainly isn't harmful :)
>
>                       I'll prepare similar changes to our internal
>         platforms and
>                  run it
>                       all through JPRT.
>
>                       Thanks,
>                       David
>
>
>                       On 11/12/2015 5:16 PM, Thomas Stüfe wrote:
>
>                           Hi all,
>
>                           please review this large-but-trivial change:
>
>                           Bug:
>         https://bugs.openjdk.java.net/browse/JDK-8145114
>                           webrev:
>         http://cr.openjdk.java.net/~stuefe/webrevs/8145114-const-correctness-ucontext/webrev.00/webrev/index.html
>
>                           Even though many files are involved, the
>         changes are very
>                           trivial. The
>                           change takes care of declaring ucontext_t
>         pointers as
>                  const for
>                           all utility
>                           functions which do not change the context
>         (which are
>                  most of them).
>
>                           This fix was motivated by me wasting time in
>         an error
>                  situation
>                           on AIX
>                           where I accidentally changed the register
>         values in the
>                  context
>                           before
>                           printing them to the hs-err file.
>
>                           And, like pulling a thread from a ball of
>         yarn, the
>                  change got
>                           bigger and
>                           bigger... like it is once one starts to fix const
>                  issues. But
>                           the fixes in
>                           this case involve the bottom functions and
>         should not
>                  force any
>                           new casts
>                           upon anyone.
>
>                           I did build the change on the following platforms:
>                           AIX
>                           Linux x64 (with and without ZERO)
>                           Linux ppc
>                           OSX
>                           Solaris Sparc and x64
>
>                           and all did build successfully.
>
>                           Kind Regards, Thomas
>
>
>
>


More information about the hotspot-runtime-dev mailing list