Mercurial > hg > openjdk > jdk8u > hotspot
changeset 9445:85f20f6ec580
8264816: Weak handles leak causes GC to take longer
Reviewed-by: zgu, shade
author | ddong |
---|---|
date | Wed, 07 Apr 2021 15:36:03 +0800 |
parents | 52ef318dba48 |
children | f8c527c9467f |
files | src/share/vm/prims/methodHandles.cpp |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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;