diff options
Diffstat (limited to 'test/097-duplicate-method/src')
-rw-r--r-- | test/097-duplicate-method/src/Main.java | 28 | ||||
-rw-r--r-- | test/097-duplicate-method/src/Test.j | 29 | ||||
-rw-r--r-- | test/097-duplicate-method/src/Test.java | 24 |
3 files changed, 81 insertions, 0 deletions
diff --git a/test/097-duplicate-method/src/Main.java b/test/097-duplicate-method/src/Main.java new file mode 100644 index 0000000000..bb3d36ad5b --- /dev/null +++ b/test/097-duplicate-method/src/Main.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Certain class files generated by smali can have encoded methods with an + * identical method_idx. In these cases, the behavior should be to only use the + * first one, and to ignore all following duplicates. + */ +public class Main { + public static void main(String args[]) { + if (Test.run() != null) { + System.out.println("Success!"); + } + } +} diff --git a/test/097-duplicate-method/src/Test.j b/test/097-duplicate-method/src/Test.j new file mode 100644 index 0000000000..f96a9a3062 --- /dev/null +++ b/test/097-duplicate-method/src/Test.j @@ -0,0 +1,29 @@ +; Copyright (C) 2012 The Android Open Source Project +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. + +.class Test +.super java/lang/Object + +.method public static run()Ljava/lang/Object; + .limit stack 2 + new java/lang/Object + dup + invokespecial java/lang/Object/<init>()V + areturn +.end method + +.method public static run()Ljava/lang/Object; + aconst_null + areturn +.end method diff --git a/test/097-duplicate-method/src/Test.java b/test/097-duplicate-method/src/Test.java new file mode 100644 index 0000000000..7dd61e6928 --- /dev/null +++ b/test/097-duplicate-method/src/Test.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * This class and method will be overwritten by smali to return non-null. + */ +public class Test { + public static Object run() { + return null; + } +} |