public void write(@Nonnull SparseSwitchPayload instruction) { try { writer.writeUbyte(0); writer.writeUbyte(instruction.getOpcode().value >> 8); List<? extends SwitchElement> elements = instruction.getSwitchElements(); writer.writeUshort(elements.size()); for (SwitchElement element: elements) { writer.writeInt(element.getKey()); } for (SwitchElement element: elements) { writer.writeInt(element.getOffset()); } } catch (IOException ex) { throw new RuntimeException(ex); } }
public void write(@Nonnull SparseSwitchPayload instruction) { try { writer.writeUbyte(0); writer.writeUbyte(getOpcodeValue(instruction.getOpcode()) >> 8); List<? extends SwitchElement> elements = Ordering.from(switchElementComparator).immutableSortedCopy( instruction.getSwitchElements()); writer.writeUshort(elements.size()); for (SwitchElement element: elements) { writer.writeInt(element.getKey()); } for (SwitchElement element: elements) { writer.writeInt(element.getOffset()); } } catch (IOException ex) { throw new RuntimeException(ex); } }
private void annotateSparseSwitchPayload(@Nonnull AnnotatedBytes out, @Nonnull SparseSwitchPayload instruction) { List<? extends SwitchElement> elements = instruction.getSwitchElements(); out.annotate(2, instruction.getOpcode().name); out.indent(); out.annotate(2, "size = %d", elements.size()); if (elements.size() > 0) { out.annotate(0, "keys:"); out.indent(); for (int i=0; i<elements.size(); i++) { out.annotate(4, "key[%d] = %d", i, elements.get(i).getKey()); } out.deindent(); out.annotate(0, "targets:"); out.indent(); for (int i=0; i<elements.size(); i++) { out.annotate(4, "target[%d] = %d", i, elements.get(i).getOffset()); } out.deindent(); } out.deindent(); }
public void write(@Nonnull SparseSwitchPayload instruction) { try { writer.writeUbyte(0); writer.writeUbyte(getOpcodeValue(instruction.getOpcode()) >> 8); List<? extends SwitchElement> elements = Ordering.from(switchElementComparator).immutableSortedCopy( instruction.getSwitchElements()); writer.writeUshort(elements.size()); for (SwitchElement element: elements) { writer.writeInt(element.getKey()); } for (SwitchElement element: elements) { writer.writeInt(element.getOffset()); } } catch (IOException ex) { throw new RuntimeException(ex); } }
private void annotateSparseSwitchPayload(@Nonnull AnnotatedBytes out, @Nonnull SparseSwitchPayload instruction) { List<? extends SwitchElement> elements = instruction.getSwitchElements(); out.annotate(2, instruction.getOpcode().name); out.indent(); out.annotate(2, "size = %d", elements.size()); if (elements.size() > 0) { out.annotate(0, "keys:"); out.indent(); for (int i=0; i<elements.size(); i++) { out.annotate(4, "key[%d] = %d", i, elements.get(i).getKey()); } out.deindent(); out.annotate(0, "targets:"); out.indent(); for (int i=0; i<elements.size(); i++) { out.annotate(4, "target[%d] = %d", i, elements.get(i).getOffset()); } out.deindent(); } out.deindent(); }
private void annotateSparseSwitchPayload(@Nonnull AnnotatedBytes out, @Nonnull SparseSwitchPayload instruction) { List<? extends SwitchElement> elements = instruction.getSwitchElements(); out.annotate(2, instruction.getOpcode().name); out.indent(); out.annotate(2, "size = %d", elements.size()); if (elements.size() > 0) { out.annotate(0, "keys:"); out.indent(); for (int i=0; i<elements.size(); i++) { out.annotate(4, "key[%d] = %d", i, elements.get(i).getKey()); } out.deindent(); out.annotate(0, "targets:"); out.indent(); for (int i=0; i<elements.size(); i++) { out.annotate(4, "target[%d] = %d", i, elements.get(i).getOffset()); } out.deindent(); } out.deindent(); }