diff options
author | chibash <chiba@javassist.org> | 2018-09-02 22:56:45 +0900 |
---|---|---|
committer | chibash <chiba@javassist.org> | 2018-09-02 22:56:45 +0900 |
commit | c52b9c7100412288eecf2ed098c63a0ba1643000 (patch) | |
tree | 0fa3a3e32fb327059f269bd6d6271957bcf70142 /src/main/javassist/bytecode | |
parent | 808dfb862f2967534e9250060b895eb0c8762cb9 (diff) | |
download | javassist-c52b9c7100412288eecf2ed098c63a0ba1643000.tar.gz javassist-c52b9c7100412288eecf2ed098c63a0ba1643000.zip |
modifies NestHostAttribute and NestMembersAttribute and adds test code
Diffstat (limited to 'src/main/javassist/bytecode')
-rw-r--r-- | src/main/javassist/bytecode/NestHostAttribute.java | 26 | ||||
-rw-r--r-- | src/main/javassist/bytecode/NestMembersAttribute.java | 37 |
2 files changed, 63 insertions, 0 deletions
diff --git a/src/main/javassist/bytecode/NestHostAttribute.java b/src/main/javassist/bytecode/NestHostAttribute.java index ae9f1e5d..5a52336d 100644 --- a/src/main/javassist/bytecode/NestHostAttribute.java +++ b/src/main/javassist/bytecode/NestHostAttribute.java @@ -1,3 +1,19 @@ +/* + * Javassist, a Java-bytecode translator toolkit. + * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved. + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. Alternatively, the contents of this file may be used under + * the terms of the GNU Lesser General Public License Version 2.1 or later, + * or the Apache License Version 2.0. + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + */ + package javassist.bytecode; import java.io.DataInputStream; @@ -6,6 +22,7 @@ import java.util.Map; /** * <code>NestHost_attribute</code>. + * It was introduced by JEP-181. See JVMS 4.7.28 for the specification. */ public class NestHostAttribute extends AttributeInfo { /** @@ -36,4 +53,13 @@ public class NestHostAttribute extends AttributeInfo { int newHostIndex = getConstPool().copy(hostIndex, newCp, classnames); return new NestHostAttribute(newCp, newHostIndex); } + + /** + * Returns <code>host_class_index</code>. The constant pool entry + * at this entry is a <code>CONSTANT_Class_info</code> structure. + * @return the value of <code>host_class_index</code>. + */ + public int hostClassIndex() { + return ByteArray.readU16bit(info, 0); + } } diff --git a/src/main/javassist/bytecode/NestMembersAttribute.java b/src/main/javassist/bytecode/NestMembersAttribute.java index 679dc28c..6a3023b4 100644 --- a/src/main/javassist/bytecode/NestMembersAttribute.java +++ b/src/main/javassist/bytecode/NestMembersAttribute.java @@ -1,3 +1,19 @@ +/* + * Javassist, a Java-bytecode translator toolkit. + * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved. + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. Alternatively, the contents of this file may be used under + * the terms of the GNU Lesser General Public License Version 2.1 or later, + * or the Apache License Version 2.0. + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + */ + package javassist.bytecode; import java.io.DataInputStream; @@ -6,6 +22,7 @@ import java.util.Map; /** * <code>NestMembers_attribute</code>. + * It was introduced by JEP-181. See JVMS 4.7.29 for the specification. */ public class NestMembersAttribute extends AttributeInfo { /** @@ -46,4 +63,24 @@ public class NestMembersAttribute extends AttributeInfo { return new NestMembersAttribute(newCp, dest); } + + /** + * Returns <code>number_of_classes</code>. + * @return the number of the classes recorded in this attribute. + */ + public int numberOfClasses() { + return ByteArray.readU16bit(info, 0); + } + + /** Returns <code>classes[index]</code>. + * + * @param index the index into <code>classes</code>. + * @return the value at the given index in the <code>classes</code> array. + * It is an index into the constant pool. + * The constant pool entry at the returned index is a + * <code>CONSTANT_Class_info</code> structure. + */ + public int memberClass(int index) { + return ByteArray.readU16bit(info, index * 2 + 2); + } } |