diff --git a/bindings/java/Test.java b/bindings/java/Test.java index b1950eccd..768ac74e2 100644 --- a/bindings/java/Test.java +++ b/bindings/java/Test.java @@ -170,6 +170,9 @@ public class Test { all_insn[i].mnemonic, all_insn[i].opStr)); } System.out.printf("0x%x:\n\n", all_insn[all_insn.length-1].address + all_insn[all_insn.length-1].size); + + // Close when done + cs.close(); } } } diff --git a/bindings/java/TestArm.java b/bindings/java/TestArm.java index dc53d5090..5be7028e5 100644 --- a/bindings/java/TestArm.java +++ b/bindings/java/TestArm.java @@ -131,6 +131,9 @@ public class TestArm { System.out.println(); } System.out.printf("0x%x:\n\n", (all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size)); + + // Close when done + cs.close(); } } diff --git a/bindings/java/TestArm64.java b/bindings/java/TestArm64.java index be9eb8728..acc72f540 100644 --- a/bindings/java/TestArm64.java +++ b/bindings/java/TestArm64.java @@ -117,6 +117,9 @@ public class TestArm64 { } System.out.printf("0x%x: \n\n", all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size); + + // Close when done + cs.close(); } } diff --git a/bindings/java/TestMips.java b/bindings/java/TestMips.java index bb7625815..9df832640 100644 --- a/bindings/java/TestMips.java +++ b/bindings/java/TestMips.java @@ -82,6 +82,9 @@ public class TestMips { } System.out.printf("0x%x:\n\n", all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size); + + // Close when done + cs.close(); } } diff --git a/bindings/java/TestPpc.java b/bindings/java/TestPpc.java index 2bec2dcee..88ae3f29d 100644 --- a/bindings/java/TestPpc.java +++ b/bindings/java/TestPpc.java @@ -87,6 +87,9 @@ public class TestPpc { System.out.println(); } System.out.printf("0x%x:\n\n", (all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size)); + + // Close when done + cs.close(); } } diff --git a/bindings/java/TestSparc.java b/bindings/java/TestSparc.java index 059f55721..8b5300082 100644 --- a/bindings/java/TestSparc.java +++ b/bindings/java/TestSparc.java @@ -88,6 +88,9 @@ public class TestSparc { System.out.println(); } System.out.printf("0x%x:\n\n", (all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size)); + + // Close when done + cs.close(); } } diff --git a/bindings/java/TestSystemz.java b/bindings/java/TestSystemz.java index ccadc680c..209c3e735 100644 --- a/bindings/java/TestSystemz.java +++ b/bindings/java/TestSystemz.java @@ -87,6 +87,9 @@ public class TestSystemz { System.out.println(); } System.out.printf("0x%x:\n\n", (all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size)); + + // Close when done + cs.close(); } } diff --git a/bindings/java/TestX86.java b/bindings/java/TestX86.java index 15ff81961..d9480ef93 100644 --- a/bindings/java/TestX86.java +++ b/bindings/java/TestX86.java @@ -163,6 +163,9 @@ public class TestX86 { } System.out.printf("0x%x:\n\n", all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size); + + // Close when done + cs.close(); } } diff --git a/bindings/java/TestXcore.java b/bindings/java/TestXcore.java index e736bb20b..b5b53c1f6 100644 --- a/bindings/java/TestXcore.java +++ b/bindings/java/TestXcore.java @@ -80,6 +80,9 @@ public class TestXcore { System.out.println(); } System.out.printf("0x%x:\n\n", (all_ins[all_ins.length-1].address + all_ins[all_ins.length-1].size)); + + // Close when done + cs.close(); } } diff --git a/bindings/java/capstone/Capstone.java b/bindings/java/capstone/Capstone.java index 26b5f434e..8493143c2 100644 --- a/bindings/java/capstone/Capstone.java +++ b/bindings/java/capstone/Capstone.java @@ -419,7 +419,13 @@ public class Capstone { // destructor automatically caled at destroyed time. protected void finalize() { - cs.cs_close(ns.handleRef); + // FIXME: crashed on Ubuntu 14.04 64bit, OpenJDK java 1.6.0_33 + // cs.cs_close(ns.handleRef); + } + + // destructor automatically caled at destroyed time. + public int close() { + return cs.cs_close(ns.handleRef); } // disassemble until either no more code, or encounter broken insn.