Fix how reference index is written in format 35c and 3rc

This commit is contained in:
Ben Gruver 2012-12-28 20:10:43 -08:00
parent 257fa2dfca
commit b2ae115dd5

View File

@ -479,7 +479,7 @@ public class CodeItemPool {
public void writeFormat35c(@Nonnull DexWriter writer, @Nonnull Instruction35c instruction) throws IOException { public void writeFormat35c(@Nonnull DexWriter writer, @Nonnull Instruction35c instruction) throws IOException {
writer.write(instruction.getOpcode().value); writer.write(instruction.getOpcode().value);
writer.write(packNibbles(instruction.getRegisterG(), instruction.getRegisterCount())); writer.write(packNibbles(instruction.getRegisterG(), instruction.getRegisterCount()));
writer.write(getReferenceIndex(instruction)); writer.writeUshort(getReferenceIndex(instruction));
writer.write(packNibbles(instruction.getRegisterC(), instruction.getRegisterD())); writer.write(packNibbles(instruction.getRegisterC(), instruction.getRegisterD()));
writer.write(packNibbles(instruction.getRegisterE(), instruction.getRegisterF())); writer.write(packNibbles(instruction.getRegisterE(), instruction.getRegisterF()));
} }
@ -487,7 +487,7 @@ public class CodeItemPool {
public void writeFormat3rc(@Nonnull DexWriter writer, @Nonnull Instruction3rc instruction) throws IOException { public void writeFormat3rc(@Nonnull DexWriter writer, @Nonnull Instruction3rc instruction) throws IOException {
writer.write(instruction.getOpcode().value); writer.write(instruction.getOpcode().value);
writer.write(instruction.getRegisterCount()); writer.write(instruction.getRegisterCount());
writer.write(getReferenceIndex(instruction)); writer.writeUshort(getReferenceIndex(instruction));
writer.writeUshort(instruction.getStartRegister()); writer.writeUshort(instruction.getStartRegister());
} }