Skip to content

Commit 38ef497

Browse files
committed
Mark many classes as final
* This fixes this-escape warnings from Java 21. * It can also lead to save some footprint on JVM and faster analysis on SVM.
1 parent e8683b1 commit 38ef497

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+62
-59
lines changed

src/main/java/org/truffleruby/RubyContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
import com.oracle.truffle.api.source.Source;
9898
import sun.misc.SignalHandler;
9999

100-
public class RubyContext {
100+
public final class RubyContext {
101101

102102
private final RubyLanguage language;
103103
@CompilationFinal private TruffleLanguage.Env env;

src/main/java/org/truffleruby/cext/ValueWrapperManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import com.oracle.truffle.api.library.ExportMessage;
3939

4040
@SuppressFBWarnings("VO")
41-
public class ValueWrapperManager {
41+
public final class ValueWrapperManager {
4242

4343
static final long UNSET_HANDLE = -2L;
4444

@@ -207,7 +207,7 @@ public synchronized void addFreeBlock(long blockBase) {
207207
}
208208
}
209209

210-
public static class HandleBlock {
210+
public static final class HandleBlock {
211211

212212
private final long base;
213213
private final ValueWrapperWeakReference[] wrappers;

src/main/java/org/truffleruby/core/CoreLibrary.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
* code, it should be done at the top of the Ruby class.)
100100
* </ul>
101101
*/
102-
public class CoreLibrary {
102+
public final class CoreLibrary {
103103

104104
public static final SourceSection UNAVAILABLE_SOURCE_SECTION = Source
105105
.newBuilder(TruffleRuby.LANGUAGE_ID, "", "(unavailable)")

src/main/java/org/truffleruby/core/DataObjectFinalizationService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@
3333

3434
/** C-ext data finalizers are implemented with phantom references and reference queues, and are run in a dedicated Ruby
3535
* thread. */
36-
public class DataObjectFinalizationService extends ReferenceProcessingService<DataObjectFinalizerReference, Object> {
36+
public final class DataObjectFinalizationService
37+
extends
38+
ReferenceProcessingService<DataObjectFinalizerReference, Object> {
3739

3840
// We need a base node here, it should extend ruby base root node and implement internal root node.
3941
public static class DataObjectFinalizerRootNode extends RubyBaseRootNode implements InternalRootNode {

src/main/java/org/truffleruby/core/FinalizationService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
2222

2323
/** Finalizers are implemented with phantom references and reference queues, and are run in a dedicated Ruby thread. */
24-
public class FinalizationService extends ReferenceProcessingService<FinalizerReference, Object> {
24+
public final class FinalizationService extends ReferenceProcessingService<FinalizerReference, Object> {
2525

2626
static class Finalizer {
2727

src/main/java/org/truffleruby/core/MarkingService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
*
3434
* Marker references only keep a week reference to their owning object to ensure they don't themselves stop the object
3535
* from being garbage collected. */
36-
public class MarkingService {
36+
public final class MarkingService {
3737

3838
public static interface MarkerAction {
3939
public abstract void mark(Object owner);

src/main/java/org/truffleruby/core/ReferenceProcessingService.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,17 +68,17 @@ public ReferenceProcessingService<R, T> service() {
6868
}
6969
}
7070

71-
public static class ReferenceProcessor {
72-
protected final ReferenceQueue<Object> processingQueue = new ReferenceQueue<>();
71+
public static final class ReferenceProcessor {
72+
final ReferenceQueue<Object> processingQueue = new ReferenceQueue<>();
7373

74-
protected RubyThread processingThread;
75-
protected final RubyContext context;
74+
private RubyThread processingThread;
75+
private final RubyContext context;
7676

7777
public ReferenceProcessor(RubyContext context) {
7878
this.context = context;
7979
}
8080

81-
protected void processReferenceQueue(ReferenceProcessingService<?, ?> service) {
81+
void processReferenceQueue(ReferenceProcessingService<?, ?> service) {
8282
if (processOnMainThread()) {
8383
drainReferenceQueues();
8484
} else {
@@ -102,7 +102,7 @@ public boolean processOnMainThread() {
102102
private static final String THREAD_NAME = "Ruby-reference-processor";
103103

104104
@TruffleBoundary
105-
protected void createProcessingThread(ReferenceProcessingService<?, ?> service) {
105+
private void createProcessingThread(ReferenceProcessingService<?, ?> service) {
106106
final ThreadManager threadManager = context.getThreadManager();
107107
final RubyLanguage language = context.getLanguageSlow();
108108
RubyThread newThread;
@@ -126,7 +126,7 @@ protected void createProcessingThread(ReferenceProcessingService<?, ?> service)
126126
}
127127

128128
@TruffleBoundary
129-
protected final void drainReferenceQueues() {
129+
void drainReferenceQueues() {
130130
final RubyLanguage language = context.getLanguageSlow();
131131
while (true) {
132132
@SuppressWarnings("unchecked")

src/main/java/org/truffleruby/core/encoding/EncodingManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
/** Always use {@link Encoding#getIndex()} for encoding indices. Never use
4646
* {@link org.jcodings.EncodingDB.Entry#getIndex()}. */
47-
public class EncodingManager {
47+
public final class EncodingManager {
4848

4949
private RubyEncoding[] ENCODING_LIST_BY_ENCODING_INDEX = new RubyEncoding[INITIAL_NUMBER_OF_ENCODINGS];
5050
private final Map<String, RubyEncoding> LOOKUP = new ConcurrentHashMap<>();

src/main/java/org/truffleruby/core/exception/CoreExceptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
import org.truffleruby.language.library.RubyStringLibrary;
5151
import org.truffleruby.language.objects.LogicalClassNode;
5252

53-
public class CoreExceptions {
53+
public final class CoreExceptions {
5454

5555
private final RubyLanguage language;
5656
private final RubyContext context;

src/main/java/org/truffleruby/core/fiber/FiberManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
import org.truffleruby.language.objects.shared.SharedObjects;
4646

4747
/** Helps managing Ruby {@code Fiber} objects. Only one per {@link RubyContext}. */
48-
public class FiberManager {
48+
public final class FiberManager {
4949

5050
public static final String NAME_PREFIX = "Ruby Fiber";
5151
public static final Object[] SAFEPOINT_ARGS = new Object[]{ FiberSafepointMessage.class };

0 commit comments

Comments
 (0)