[jdk8u-dev] RFR: 6899049: G1: Clean up code in ptrQueue.[ch]pp and ptrQueue.inline.hpp [v2]

Sun Jianye jianyesun at openjdk.org
Tue Sep 19 17:24:20 UTC 2023


> Hi all,
> 
> This pull request contains a backport of commit [b256989eb34a32c8f03be448c0645baeb5192a01](https://github.com/openjdk/jdk11u-dev/commit/b256989eb34a32c8f03be448c0645baeb5192a01) from the [openjdk/jdk11u-dev](https://github.com/openjdk/jdk11u-dev) repository.
> 
> As reported by issue :  https://bugs.openjdk.org/browse/JDK-8316278 .  We found  the indexing method of PtrQueue's buf  is not  correct  when  converting an integer of type size_t to type int, then calling the method PtrQueue::byte_index_to_index . 
> The key problem is this way of using: 
> 
> size_t i=0;    _buf[byte_index_to_index((int)i)] = NULL;  
> 
> The variable i of size_t type  cannot be converted directly to an int type . Other than that, the return value of the function byte_index_to_index is the index of the array _buf, and it should be non-negative. So it  should be a type of size_t. 
> Currently we have found 2 issues related to this problem,  https://bugs.openjdk.org/browse/JDK-8308169 and  https://bugs.openjdk.org/browse/JDK-8303961.  They are all triggered by a special  size number of buf, like '-XX:G1UpdateBufferSize=512M'  or  '-XX:G1SATBBufferSize=500m'
> We also added a test case.
> Please review this PR. Thanks.

Sun Jianye has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision:

  8316278: Fix the indexing method of PtrQueue's buf when a large integer value overflow

-------------

Changes:
  - all: https://git.openjdk.org/jdk8u-dev/pull/374/files
  - new: https://git.openjdk.org/jdk8u-dev/pull/374/files/5f71f84e..584e5ee1

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk8u-dev&pr=374&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk8u-dev&pr=374&range=00-01

  Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk8u-dev/pull/374.diff
  Fetch: git fetch https://git.openjdk.org/jdk8u-dev.git pull/374/head:pull/374

PR: https://git.openjdk.org/jdk8u-dev/pull/374


More information about the jdk8u-dev mailing list