diff options
author | Deepanshu Gupta <deepanshu@google.com> | 2014-05-13 16:31:59 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-05-13 16:31:59 +0000 |
commit | 5594616c4f4513dc97b08d6cabb6fd7127dde131 (patch) | |
tree | dc083559200ed506e13c56a41400952d6924ff1e /tools | |
parent | 45693e50ecdae9b456e4974dd91758f9e25df2b4 (diff) | |
parent | 9602fc1c00e5e5cdf26cdc3fe22022ffcd115361 (diff) | |
download | frameworks_base-5594616c4f4513dc97b08d6cabb6fd7127dde131.zip frameworks_base-5594616c4f4513dc97b08d6cabb6fd7127dde131.tar.gz frameworks_base-5594616c4f4513dc97b08d6cabb6fd7127dde131.tar.bz2 |
am 9602fc1c: am 87665388: Fix visitFieldInsn in layoutlib_create. [DO NOT MERGE]
* commit '9602fc1c00e5e5cdf26cdc3fe22022ffcd115361':
Fix visitFieldInsn in layoutlib_create. [DO NOT MERGE]
Diffstat (limited to 'tools')
5 files changed, 34 insertions, 6 deletions
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AsmAnalyzer.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AsmAnalyzer.java index 1572a40..e96d736 100644 --- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AsmAnalyzer.java +++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AsmAnalyzer.java @@ -595,8 +595,8 @@ public class AsmAnalyzer { // field instruction @Override public void visitFieldInsn(int opcode, String owner, String name, String desc) { - // name is the field's name. - considerName(name); + // owner is the class that declares the field. + considerName(owner); // desc is the field's descriptor (see Type). considerDesc(desc); } diff --git a/tools/layoutlib/create/tests/com/android/tools/layoutlib/create/AsmAnalyzerTest.java b/tools/layoutlib/create/tests/com/android/tools/layoutlib/create/AsmAnalyzerTest.java index 005fc9d..7770dec 100644 --- a/tools/layoutlib/create/tests/com/android/tools/layoutlib/create/AsmAnalyzerTest.java +++ b/tools/layoutlib/create/tests/com/android/tools/layoutlib/create/AsmAnalyzerTest.java @@ -76,6 +76,7 @@ public class AsmAnalyzerTest { "mock_android.dummy.InnerTest$MyStaticInnerClass", "mock_android.dummy.InnerTest$NotStaticInner1", "mock_android.dummy.InnerTest$NotStaticInner2", + "mock_android.util.EmptyArray", "mock_android.view.View", "mock_android.view.ViewGroup", "mock_android.view.ViewGroup$LayoutParams", @@ -192,15 +193,16 @@ public class AsmAnalyzerTest { TreeMap<String, ClassReader> in_deps = new TreeMap<String, ClassReader>(); TreeMap<String, ClassReader> out_deps = new TreeMap<String, ClassReader>(); - ClassReader cr = mAa.findClass("mock_android.widget.TableLayout", zipClasses, keep); + ClassReader cr = mAa.findClass("mock_android.widget.LinearLayout", zipClasses, keep); DependencyVisitor visitor = mAa.getVisitor(zipClasses, keep, new_keep, in_deps, out_deps); // get first level dependencies cr.accept(visitor, 0 /* flags */); assertArrayEquals(new String[] { + "mock_android.util.EmptyArray", "mock_android.view.ViewGroup", - "mock_android.widget.TableLayout$LayoutParams", + "mock_android.widget.LinearLayout$LayoutParams", }, out_deps.keySet().toArray()); @@ -230,7 +232,7 @@ public class AsmAnalyzerTest { assertArrayEquals(new String[] { }, out_deps.keySet().toArray()); assertArrayEquals(new String[] { - "mock_android.widget.TableLayout", + "mock_android.widget.LinearLayout", }, keep.keySet().toArray()); } } diff --git a/tools/layoutlib/create/tests/data/mock_android.jar b/tools/layoutlib/create/tests/data/mock_android.jar Binary files differindex 60d8efb..1cac0bb 100644 --- a/tools/layoutlib/create/tests/data/mock_android.jar +++ b/tools/layoutlib/create/tests/data/mock_android.jar diff --git a/tools/layoutlib/create/tests/mock_data/mock_android/util/EmptyArray.java b/tools/layoutlib/create/tests/mock_data/mock_android/util/EmptyArray.java new file mode 100644 index 0000000..aaeebf6 --- /dev/null +++ b/tools/layoutlib/create/tests/mock_data/mock_android/util/EmptyArray.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php + * + * 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. + */ + +package mock_android.util; + +import java.lang.JavaClass; + +public class EmptyArray { + + public static final Object[] OBJECT = new Object[0]; +} diff --git a/tools/layoutlib/create/tests/mock_data/mock_android/widget/LinearLayout.java b/tools/layoutlib/create/tests/mock_data/mock_android/widget/LinearLayout.java index 3870a63..af56c4b 100644 --- a/tools/layoutlib/create/tests/mock_data/mock_android/widget/LinearLayout.java +++ b/tools/layoutlib/create/tests/mock_data/mock_android/widget/LinearLayout.java @@ -16,11 +16,13 @@ package mock_android.widget; +import mock_android.util.EmptyArray; import mock_android.view.ViewGroup; public class LinearLayout extends ViewGroup { - public class LayoutParams extends mock_android.view.ViewGroup.LayoutParams { + Object[] mObjects = EmptyArray.OBJECT; + public class LayoutParams extends MarginLayoutParams { } |