8336032: Enforce immutability of Lists used by ClassFile API

Reviewed-by: asotona
This commit is contained in:
Chen Liang 2024-07-30 17:41:38 +00:00
parent a91f9ba849
commit 6154a2129b
11 changed files with 29 additions and 13 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -25,6 +25,7 @@
package java.lang.classfile;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
@ -83,6 +84,6 @@ public sealed interface AttributedElement extends ClassFileElement
list.add(t);
}
}
return list;
return Collections.unmodifiableList(list);
}
}

View file

@ -76,7 +76,7 @@ public sealed interface ClassSignature
Signature.ClassTypeSig superclassSignature,
Signature.ClassTypeSig... superinterfaceSignatures) {
return new SignaturesImpl.ClassSignatureImpl(
requireNonNull(typeParameters),
List.copyOf(requireNonNull(typeParameters)),
requireNonNull(superclassSignature),
List.of(superinterfaceSignatures));
}

View file

@ -25,6 +25,7 @@
package java.lang.classfile;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Spliterator;
@ -90,7 +91,7 @@ public sealed interface CompoundElement<E extends ClassFileElement>
list.add(e);
}
});
return list;
return Collections.unmodifiableList(list);
}
}