# HG changeset patch # User ddong # Date 1617780963 -28800 # Node ID 85f20f6ec580e719f2854821a95d6866627ce1a3 # Parent 52ef318dba4807b256a4801fcaa1821e7988bfed 8264816: Weak handles leak causes GC to take longer Reviewed-by: zgu, shade diff -r 52ef318dba48 -r 85f20f6ec580 src/share/vm/prims/methodHandles.cpp --- a/src/share/vm/prims/methodHandles.cpp Mon Jun 17 14:31:49 2019 -0700 +++ b/src/share/vm/prims/methodHandles.cpp Wed Apr 07 15:36:03 2021 +0800 @@ -972,6 +972,13 @@ return mname; } } + + if (new_index < len) { + assert(JNIHandles::resolve(this->at(new_index)) == NULL, "sanity"); + // destroy the old handle + JNIHandles::destroy_weak_global(this->at(new_index)); + } + // Not found, push the new one, or reuse empty slot this->at_put_grow(new_index, mem_name_wref); return new_mem_name;