On Thu, 13 Jul 2023 03:25:38 GMT, Daohan Qu <d...@openjdk.org> wrote:
>> This patch should fix the wrong CP index for `invokedynamic` instruction >> generated by SA's `ClassWriter`. The buggy code in >> `sun.jvm.hotspot.tools.jcore.ByteCodeRewriter` should have been up-to-date >> with the following code snippet in `hotspot`: >> >> https://github.com/openjdk/jdk/blob/753bd563ecca6bb5ff9b5ebc0957bc1854dce78d/src/hotspot/share/interpreter/rewriter.cpp#L291-L294 >> >> The comments above seem to be obsolete since the following change made in >> [JDK-8301995](https://bugs.openjdk.org/browse/JDK-8301995). So I also remove >> them. >> >> >> + // Should do nothing since we are not patching this bytecode >> int cache_index = ConstantPool::decode_invokedynamic_index( >> Bytes::get_native_u4(p)); >> // We will reverse the bytecode rewriting _after_ adjusting them. >> // Adjust the cache index by offset to the invokedynamic entries in the >> // cpCache plus the delta if the invokedynamic bytecodes were adjusted. >> - int adjustment = cp_cache_delta() + _first_iteration_cp_cache_limit; >> - int cp_index = invokedynamic_cp_cache_entry_pool_index(cache_index - >> adjustment); >> + int cp_index = >> _initialized_indy_entries.at(cache_index).constant_pool_index(); >> assert(_pool->tag_at(cp_index).is_invoke_dynamic(), "wrong index"); >> >> >> This fix is straightforward and thank @asotona for finding this bug! >> >> ### Test Results of release build on Linux x64 >> * `jtreg:test/hotspot/jtreg/serviceability` and `jtreg:test/jdk/sun/tools/`: >> PASS >> * `tier1`: PASS >> * `tier2` and `tier3`: PASS (Failures of >> `sun/security/lib/cacerts/VerifyCACerts.java` and >> `sun/security/pkcs11/KeyStore/CertChainRemoval.java` seem to be unrelated to >> this patch) > > Daohan Qu has updated the pull request incrementally with one additional > commit since the last revision: > > Use Assert instead of throwing exceptions Thank @liach, @matias9927, and @plummercj very much for your reviews! ------------- PR Comment: https://git.openjdk.org/jdk/pull/14852#issuecomment-1635182114