On Thu, 11 Mar 2021 11:02:43 GMT, Aleksey Shipilev <[email protected]> wrote:
> SonarCloud reports the following problem in MethodComparator::methods_EMCP:
> "Address of stack memory associated with local variable 's_new' is still
> referred to by the global variable '_s_new' upon returning to the caller.
> This will be a dangling reference"
>
> Code inspection reveals the assignment to static variables is only needed to
> pass them to helper methods. So, while this is not a detectable bug (yet), it
> is still cleaner not to expose stack variables in globals.
>
> Additional testing:
> - [x] Linux x86_64 fastdebug `tier1`
> - [x] Linux x86_64 fastdebug, `vmTestbase_nsk_jvmti`
This is much cleaner! Thank you, and thank you SonarCloud.
src/hotspot/share/prims/methodComparator.cpp line 262:
> 260: }
> 261:
> 262: bool MethodComparator::pool_constants_same(int cpi_old, int cpi_new,
> ConstantPool* old_cp, ConstantPool* new_cp) {
Can these be const?
src/hotspot/share/prims/methodComparator.cpp line 67:
> 65: bool MethodComparator::args_same(Bytecodes::Code c_old, Bytecodes::Code
> c_new,
> 66: BytecodeStream* s_old, BytecodeStream*
> s_new,
> 67: ConstantPool* old_cp, ConstantPool*
> new_cp) {
Can these be const pointers too?
-------------
Marked as reviewed by coleenp (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/2937