diff --git a/BytecodeViewer 2.5.2.jar b/BytecodeViewer 2.5.2.jar index b114d670f..2883c18b5 100644 Binary files a/BytecodeViewer 2.5.2.jar and b/BytecodeViewer 2.5.2.jar differ diff --git a/README.txt b/README.txt index f6f0652d9..c8a17f9e4 100644 --- a/README.txt +++ b/README.txt @@ -235,5 +235,5 @@ Changelog: --- 2.5.1 ---: 01/06/2015 - Silenced the error connecting to update server for offline mode. 01/06/2015 - Fixed a search function with Android APKs. ---- 2.5.1 ---: -01/06/2015 - Fixed another issue with LDC searching for Android APKs.01/06/2015 - Fixed another issue with LDC searching for Android APKs. \ No newline at end of file +--- 2.5.2 ---: +01/06/2015 - Completely fixed the search function with Android APKs. \ No newline at end of file diff --git a/src/the/bytecode/club/bytecodeviewer/searching/FieldCallSearch.java b/src/the/bytecode/club/bytecodeviewer/searching/FieldCallSearch.java index 96d3d6620..0721395d2 100644 --- a/src/the/bytecode/club/bytecodeviewer/searching/FieldCallSearch.java +++ b/src/the/bytecode/club/bytecodeviewer/searching/FieldCallSearch.java @@ -89,6 +89,8 @@ public void search(final ClassNode node, final SearchResultNotifier srn, String desc2 = method.desc; try { desc2 = Type.getType(method.desc).toString(); + if(desc2 == null || desc2.equals("null")) + desc2 = method.desc; } catch(java.lang.ArrayIndexOutOfBoundsException e) { } @@ -113,6 +115,8 @@ public void search(final ClassNode node, final SearchResultNotifier srn, String desc2 = method.desc; try { desc2 = Type.getType(method.desc).toString(); + if(desc2 == null || desc2.equals("null")) + desc2 = method.desc; } catch(java.lang.ArrayIndexOutOfBoundsException e) { } diff --git a/src/the/bytecode/club/bytecodeviewer/searching/LDCSearch.java b/src/the/bytecode/club/bytecodeviewer/searching/LDCSearch.java index f4fb8c943..a7fac9703 100644 --- a/src/the/bytecode/club/bytecodeviewer/searching/LDCSearch.java +++ b/src/the/bytecode/club/bytecodeviewer/searching/LDCSearch.java @@ -63,6 +63,8 @@ public void search(final ClassNode node, final SearchResultNotifier srn, String desc2 = method.desc; try { desc2 = Type.getType(method.desc).toString(); + if(desc2 == null || desc2.equals("null")) + desc2 = method.desc; } catch(java.lang.ArrayIndexOutOfBoundsException e) { } @@ -80,8 +82,16 @@ public void search(final ClassNode node, final SearchResultNotifier srn, final Iterator fields = node.fields.iterator(); while (methods.hasNext()) { final FieldNode field = fields.next(); + String desc2 = field.desc; + try { + desc2 = Type.getType(field.desc).toString(); + if(desc2 == null || desc2.equals("null")) + desc2 = field.desc; + } catch(java.lang.ArrayIndexOutOfBoundsException e) { + + } if (field.value instanceof String) { - srn.notifyOfResult(node.name + "." + field.name + field.desc + srn.notifyOfResult(node.name + "." + field.name + desc2 + " -> \"" + field.value + "\" > field"); } } diff --git a/src/the/bytecode/club/bytecodeviewer/searching/MethodCallSearch.java b/src/the/bytecode/club/bytecodeviewer/searching/MethodCallSearch.java index 034d745e6..d061afcce 100644 --- a/src/the/bytecode/club/bytecodeviewer/searching/MethodCallSearch.java +++ b/src/the/bytecode/club/bytecodeviewer/searching/MethodCallSearch.java @@ -89,6 +89,8 @@ public void search(final ClassNode node, final SearchResultNotifier srn, String desc2 = method.desc; try { desc2 = Type.getType(method.desc).toString(); + if(desc2 == null || desc2.equals("null")) + desc2 = method.desc; } catch(java.lang.ArrayIndexOutOfBoundsException e) { } @@ -112,6 +114,8 @@ public void search(final ClassNode node, final SearchResultNotifier srn, String desc2 = method.desc; try { desc2 = Type.getType(method.desc).toString(); + if(desc2 == null || desc2.equals("null")) + desc2 = method.desc; } catch(java.lang.ArrayIndexOutOfBoundsException e) { } diff --git a/src/the/bytecode/club/bytecodeviewer/searching/RegexSearch.java b/src/the/bytecode/club/bytecodeviewer/searching/RegexSearch.java index 518c8ca9a..b67fdfc83 100644 --- a/src/the/bytecode/club/bytecodeviewer/searching/RegexSearch.java +++ b/src/the/bytecode/club/bytecodeviewer/searching/RegexSearch.java @@ -58,6 +58,8 @@ public void search(final ClassNode node, final SearchResultNotifier srn, String desc2 = method.desc; try { desc2 = Type.getType(method.desc).toString(); + if(desc2 == null || desc2.equals("null")) + desc2 = method.desc; } catch(java.lang.ArrayIndexOutOfBoundsException e) { }