< prev index next >

src/java.base/share/classes/jdk/internal/classfile/impl/AbstractAttributeMapper.java

Print this page

293         private LineNumberTableMapper() {
294             super(NAME_LINE_NUMBER_TABLE, AttributeStability.LABELS, true);
295         }
296 
297         @Override
298         public LineNumberTableAttribute readAttribute(AttributedElement e, ClassReader cf, int p) {
299             return new BoundAttribute.BoundLineNumberTableAttribute(cf, this, p);
300         }
301 
302         @Override
303         protected void writeBody(BufWriter buf, LineNumberTableAttribute attr) {
304             List<LineNumberInfo> lines = attr.lineNumbers();
305             buf.writeU2(lines.size());
306             for (LineNumberInfo line : lines) {
307                 buf.writeU2(line.startPc());
308                 buf.writeU2(line.lineNumber());
309             }
310         }
311     }
312 


















313     public static final class LocalVariableTableMapper extends AbstractAttributeMapper<LocalVariableTableAttribute> {
314         public static final LocalVariableTableMapper INSTANCE = new LocalVariableTableMapper();
315 
316         private LocalVariableTableMapper() {
317             super(NAME_LOCAL_VARIABLE_TABLE, AttributeStability.LABELS, true);
318         }
319 
320         @Override
321         public LocalVariableTableAttribute readAttribute(AttributedElement e, ClassReader cf, int p) {
322             return new BoundAttribute.BoundLocalVariableTableAttribute(e, cf, this, p);
323         }
324 
325         @Override
326         protected void writeBody(BufWriter buf, LocalVariableTableAttribute attr) {
327             List<LocalVariableInfo> infos = attr.localVariables();
328             buf.writeU2(infos.size());
329             for (LocalVariableInfo info : infos) {
330                 buf.writeU2(info.startPc());
331                 buf.writeU2(info.length());
332                 buf.writeIndex(info.name());

293         private LineNumberTableMapper() {
294             super(NAME_LINE_NUMBER_TABLE, AttributeStability.LABELS, true);
295         }
296 
297         @Override
298         public LineNumberTableAttribute readAttribute(AttributedElement e, ClassReader cf, int p) {
299             return new BoundAttribute.BoundLineNumberTableAttribute(cf, this, p);
300         }
301 
302         @Override
303         protected void writeBody(BufWriter buf, LineNumberTableAttribute attr) {
304             List<LineNumberInfo> lines = attr.lineNumbers();
305             buf.writeU2(lines.size());
306             for (LineNumberInfo line : lines) {
307                 buf.writeU2(line.startPc());
308                 buf.writeU2(line.lineNumber());
309             }
310         }
311     }
312 
313     public static final class LoadableDescriptorsMapper extends AbstractAttributeMapper<LoadableDescriptorsAttribute> {
314         public static final LoadableDescriptorsMapper INSTANCE = new LoadableDescriptorsMapper();
315 
316         private LoadableDescriptorsMapper() {
317             super(NAME_LOADABLE_DESCRIPTORS, AttributeStability.CP_REFS);
318         }
319 
320         @Override
321         public LoadableDescriptorsAttribute readAttribute(AttributedElement e, ClassReader cf, int p) {
322             return new BoundAttribute.BoundLoadableDescriptorsAttribute(cf, this, p);
323         }
324 
325         @Override
326         protected void writeBody(BufWriter buf, LoadableDescriptorsAttribute attr) {
327             Util.writeListIndices(buf, attr.loadableDescriptors());
328         }
329     }
330 
331     public static final class LocalVariableTableMapper extends AbstractAttributeMapper<LocalVariableTableAttribute> {
332         public static final LocalVariableTableMapper INSTANCE = new LocalVariableTableMapper();
333 
334         private LocalVariableTableMapper() {
335             super(NAME_LOCAL_VARIABLE_TABLE, AttributeStability.LABELS, true);
336         }
337 
338         @Override
339         public LocalVariableTableAttribute readAttribute(AttributedElement e, ClassReader cf, int p) {
340             return new BoundAttribute.BoundLocalVariableTableAttribute(e, cf, this, p);
341         }
342 
343         @Override
344         protected void writeBody(BufWriter buf, LocalVariableTableAttribute attr) {
345             List<LocalVariableInfo> infos = attr.localVariables();
346             buf.writeU2(infos.size());
347             for (LocalVariableInfo info : infos) {
348                 buf.writeU2(info.startPc());
349                 buf.writeU2(info.length());
350                 buf.writeIndex(info.name());
< prev index next >