-
Bug
-
Resolution: Fixed
-
P4
-
24, 25
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8350520 | 24.0.2 | Vladimir Kozlov | P4 | Resolved | Fixed | b01 |
While working on JDK-8349088 I realized that `CodeBlob::is_buffer_blob()` is incorrectly used in few places because BufferBlob is not "leaf" class. All other `is_*()` methods are fine because they correspond to "leaf" subclasses.
The method is mostly used for prints and statistic. Like in `CodeBlob::dump_for_addr()` and `CodeCache::print_internals()`.
The only problematic place is in `CodeBlobCollector::do_blob()` where `if (cb->is_buffer_blob() && strcmp(cb->name(), "vtable chunks") == 0)` should be replaces with `(cb->is_vtable_blob())`.
That code works anyway because `CodeBlobCollector::do_vtable_stub()` is called first and `CodeBlobCollector::do_blob()` skips blobs which are already recorded.
The method is mostly used for prints and statistic. Like in `CodeBlob::dump_for_addr()` and `CodeCache::print_internals()`.
The only problematic place is in `CodeBlobCollector::do_blob()` where `if (cb->is_buffer_blob() && strcmp(cb->name(), "vtable chunks") == 0)` should be replaces with `(cb->is_vtable_blob())`.
That code works anyway because `CodeBlobCollector::do_vtable_stub()` is called first and `CodeBlobCollector::do_blob()` skips blobs which are already recorded.
- backported by
-
JDK-8350520 Incorrect use of CodeBlob::is_buffer_blob() in few places
-
- Resolved
-
- caused by
-
JDK-8329332 Remove CompiledMethod and CodeBlobLayout classes
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk24u/a5f39c16
-
Commit(master) openjdk/jdk/0b50e479
-
Review(master) openjdk/jdk24u/87
-
Review(master) openjdk/jdk/23607
(1 links to)