From 472db922fabfb8942f15d39ebd58125189bc8600 Mon Sep 17 00:00:00 2001 From: Shaojin Wen Date: Fri, 11 Oct 2024 02:17:37 +0000 Subject: [PATCH] 8341900: Optimize DirectCodeBuilder writeBody Reviewed-by: liach --- .../classfile/impl/DirectCodeBuilder.java | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java index 6f2a9cc125a..b3c106c461d 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java @@ -373,24 +373,19 @@ public final class DirectCodeBuilder dcb.methodInfo.methodTypeSymbol().displayDescriptor())); } + boolean codeMatch = dcb.original != null && codeAndExceptionsMatch(codeLength); var context = dcb.context; - if (dcb.original != null && codeAndExceptionsMatch(codeLength)) { - if (context.stackMapsWhenRequired()) { + if (context.stackMapsWhenRequired()) { + if (codeMatch) { dcb.attributes.withAttribute(dcb.original.findAttribute(Attributes.stackMapTable()).orElse(null)); writeCounters(true, buf); - } else if (context.generateStackMaps()) { - generateStackMaps(buf); - } else if (context.dropStackMaps()) { - writeCounters(true, buf); - } - } else { - if (context.stackMapsWhenRequired()) { + } else { tryGenerateStackMaps(false, buf); - } else if (context.generateStackMaps()) { - generateStackMaps(buf); - } else if (context.dropStackMaps()) { - writeCounters(false, buf); } + } else if (context.generateStackMaps()) { + generateStackMaps(buf); + } else if (context.dropStackMaps()) { + writeCounters(codeMatch, buf); } buf.writeInt(codeLength);