From c7d306c65c5ed26839b323f3dfc7e5b68e5adaa1 Mon Sep 17 00:00:00 2001 From: Adam Sotona Date: Thu, 14 Sep 2023 18:27:12 +0000 Subject: [PATCH] 8315541: Classfile API TypeAnnotation.TargetInfo factory methods accept null labels Reviewed-by: briangoetz --- .../jdk/internal/classfile/impl/TargetInfoImpl.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java index 57c4fb4bf3e..e219e4e560d 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java @@ -29,6 +29,7 @@ import java.util.Objects; import jdk.internal.classfile.Label; import jdk.internal.classfile.TypeAnnotation.*; import static jdk.internal.classfile.Classfile.*; +import static java.util.Objects.requireNonNull; public final class TargetInfoImpl { @@ -104,6 +105,11 @@ public final class TargetInfoImpl { public record LocalVarTargetInfoImpl(Label startLabel, Label endLabel, int index) implements LocalVarTargetInfo { + + public LocalVarTargetInfoImpl { + requireNonNull(startLabel); + requireNonNull(endLabel); + } } public record CatchTargetImpl(int exceptionTableIndex) implements CatchTarget { @@ -117,7 +123,7 @@ public final class TargetInfoImpl { public OffsetTargetImpl(TargetType targetType, Label target) { this.targetType = checkValid(targetType, TAT_INSTANCEOF, TAT_METHOD_REFERENCE); - this.target = target; + this.target = requireNonNull(target); } } @@ -126,7 +132,7 @@ public final class TargetInfoImpl { public TypeArgumentTargetImpl(TargetType targetType, Label target, int typeArgumentIndex) { this.targetType = checkValid(targetType, TAT_CAST, TAT_METHOD_REFERENCE_TYPE_ARGUMENT); - this.target = target; + this.target = requireNonNull(target); this.typeArgumentIndex = typeArgumentIndex; } }