[11u] RFR 8259710: Inlining trace leaks memory
Roland Westrelin
rwestrel at redhat.com
Fri Mar 12 10:41:05 UTC 2021
Original bug:
https://bugs.openjdk.java.net/browse/JDK-8259710
https://github.com/openjdk/jdk/commit/ca20c63c
The patch doesn't apply cleanly. Failed hunk is below but patch is
otherwise largely unchanged.
11u webrev:
https://cr.openjdk.java.net/~roland/8259710.11u/webrev.00/
Testing: x86_64 build, executing non trivial app with -XX:+PrintInlining
Roland.
--- compile.cpp
+++ compile.cpp
@@ -4209,32 +4204,32 @@ void Compile::print_inlining_commit() {
assert(print_inlining() || print_intrinsics(), "PrintInlining off?");
// Transfer the message from _print_inlining_stream to the current
// _print_inlining_list buffer and clear _print_inlining_stream.
- _print_inlining_list->at(_print_inlining_idx).ss()->write(_print_inlining_stream->base(), _print_inlining_stream->size());
+ _print_inlining_list->at(_print_inlining_idx)->ss()->write(_print_inlining_stream->base(), _print_inlining_stream->size());
print_inlining_reset();
}
void Compile::print_inlining_push() {
// Add new buffer to the _print_inlining_list at current position
_print_inlining_idx++;
- _print_inlining_list->insert_before(_print_inlining_idx, PrintInliningBuffer());
+ _print_inlining_list->insert_before(_print_inlining_idx, new PrintInliningBuffer());
}
-Compile::PrintInliningBuffer& Compile::print_inlining_current() {
+Compile::PrintInliningBuffer* Compile::print_inlining_current() {
return _print_inlining_list->at(_print_inlining_idx);
}
void Compile::print_inlining_update(CallGenerator* cg) {
if (print_inlining() || print_intrinsics()) {
if (cg->is_late_inline()) {
- if (print_inlining_current().cg() != cg &&
- (print_inlining_current().cg() != NULL ||
- print_inlining_current().ss()->size() != 0)) {
+ if (print_inlining_current()->cg() != cg &&
+ (print_inlining_current()->cg() != NULL ||
+ print_inlining_current()->ss()->size() != 0)) {
print_inlining_push();
}
print_inlining_commit();
- print_inlining_current().set_cg(cg);
+ print_inlining_current()->set_cg(cg);
} else {
- if (print_inlining_current().cg() != NULL) {
+ if (print_inlining_current()->cg() != NULL) {
print_inlining_push();
}
print_inlining_commit();
More information about the jdk-updates-dev
mailing list