Skip to content

Commit

Permalink
return empty instead null
Browse files Browse the repository at this point in the history
  • Loading branch information
kevemueller committed Nov 14, 2015
2 parents 4a098bb + 4a098bb commit 2ef8ef7
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions bindings/java/capstone/Capstone.java
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,8 @@ protected class NativeStruct {
private NativeLongByReference handleRef;
}

private static final CsInsn[] EMPTY_INSN = new CsInsn[0];

protected NativeStruct ns; // for memory retention
private CS cs;
public int arch;
Expand Down Expand Up @@ -434,7 +436,7 @@ public int close() {
*
* @param code The source machine code bytes.
* @param address The address of the first machine code byte.
* @return the array of successfully disassembled instructions, null if no instruction could be disassembled.
* @return the array of successfully disassembled instructions, empty if no instruction could be disassembled.
*/
public CsInsn[] disasm(byte[] code, long address) {
return disasm(code, address, 0);
Expand All @@ -447,15 +449,15 @@ public CsInsn[] disasm(byte[] code, long address) {
* @param code The source machine code bytes.
* @param address The address of the first machine code byte.
* @param count The maximum number of instructions to disassemble, 0 for no maximum.
* @return the array of successfully disassembled instructions, null if no instruction could be disassembled.
* @return the array of successfully disassembled instructions, empty if no instruction could be disassembled.
*/
public CsInsn[] disasm(byte[] code, long address, long count) {
PointerByReference insnRef = new PointerByReference();

NativeLong c = cs.cs_disasm(ns.csh, code, new NativeLong(code.length), address, new NativeLong(count), insnRef);

if (0 == c.intValue()) {
return null;
return EMPTY_INSN;
}

Pointer p = insnRef.getValue();
Expand Down

0 comments on commit 2ef8ef7

Please sign in to comment.