86ea497b965fe86d084e109e6d2d1ff560e8f4bf |
|
14-Jul-2015 |
Jeff Hao <jeffhao@google.com> |
Make isAssignableFrom not cast iftable entries to class. The cast is unnecessary, and this change speeds up isAssignableFrom by about 5%. Bug: 22409569 Change-Id: I212f0302e007f1bbb6189d6e419db4d0d048b7ed
|
e9fbfba8affa05b7ed129da51f789985a1d379d0 |
|
03-May-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move mirror::ArtMethod to native Bug: 19264997 (cherry picked from commit c8595cdc1bd25e5ae6c889ed9b3ab14eca68e72b) Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d
|
2abeaa62bbba16960e3d824745b77705478f8450 |
|
25-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move Class.newInstance to native Also add benchmark for Class.newInstance. Bug: 20269715 Change-Id: Icd52155ce79a978a4d869855bfdfd7735abd8187
|
31ae6d22605a0967d722f935bc3a8b868ada4917 |
|
21-Apr-2015 |
Brian Carlstrom <bdc@google.com> |
Fix Class.forName(..., ..., null) to pass 068-classloader's testClassForName This caused fallout elsewhere requiring - Package fix to pass 005-annotations - ObjectInputStream fix to pass 093-serialization Change-Id: I6bc470e20fa177e8a3debe55c90a84eef7ef518e
|
826b803b4da92986bfbe7fc2618c326ccb50c971 |
|
17-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move functionality from ArtMethod into Method Bug: 19264997 Change-Id: Ife79c469fdb09f30e3aefcfc3e0ce5ed32303fce
|
df22ac586a1eab0cfaddd2c62f3b71ed74838b21 |
|
21-Apr-2015 |
Andreas Gampe <agampe@google.com> |
Libcore: Remove getClassLoaderImpl This is an unnecessary method. Change-Id: I4457ff8491628208312d0ba8b2fa4230a597c5de
|
d5178dc78b33c1d97af57b9ab047aa69717bc039 |
|
21-Apr-2015 |
Brian Carlstrom <bdc@google.com> |
Document behavior of Class.forName with a null ClassLoader Change-Id: I65cdec4c0ad15fd4b9ecdf3ef076bb0ac02d9ccc
|
239a39fa24e3fc5b173a80de63a10f489539bb9e |
|
01-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Remove ArtField ArtFields are now handled in native. Java portion of this change: https://android-review.googlesource.com/#/c/145032/ Bug: 19264997 Change-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c
|
3f58d2cbf86775ac97bddc1a8a0a9658b498d282 |
|
09-Apr-2015 |
Vladimir Marko <vmarko@google.com> |
Avoid using dex cache array pointers in libart. In preparation for making dex cache arrays native, avoid using them in Java code. This causes a performance regression for our reflection benchmarks. Class_getDeclaredMethod and Class_getMethod take an up to 30% hit, measured using the Quick compiler. We accept this hit at this stage and we will tune the performance after we're done with the larger effort. Companion art/ change: https://android-review.googlesource.com/146068 Bug: 20134538 Change-Id: Ibbef3b50043a1311cd40723ed42e1f1c609b8fc1
|
eb183cdeab97f7fb25ae804319c1f5a46353dc4f |
|
24-Mar-2015 |
Mathieu Chartier <mathieuc@google.com> |
Make ArtField have no functionality Pre-requisite to making them non java objects. Some other changes to speed up reflection. TODO: Another CL for ArtMethod. Bug: 19264997 Change-Id: I17ca0cf4b9ba853e59f4a6eff3a05d9d90cf23f9
|
3d38e8203d344acc9acd63c377b6a53683e1df67 |
|
25-Nov-2014 |
Mathieu Chartier <mathieuc@google.com> |
Move dexCacheStrings from ArtMethod to ArtClass Saves ram. Bug: 17643507 (cherry picked from commit b9a5206b91a656c091e7055ff70e4eed2c76b8b1) Change-Id: Ic446a8466eb877ddf680e1d312ae94df028f9e73
|
b9a5206b91a656c091e7055ff70e4eed2c76b8b1 |
|
25-Nov-2014 |
Mathieu Chartier <mathieuc@google.com> |
Move dexCacheStrings from ArtMethod to ArtClass Saves ram. Bug: 17643507 Change-Id: Iabfb224db0de47ceff3806c491ce33b772af6fbe
|
5346a96c353933579db184a8433fc0cc1e076950 |
|
13-Nov-2014 |
Narayan Kamath <narayan@google.com> |
Binary search through ArtFields to match by name. Commit bfa3ed0ad988e1da13626ddbaf6dcae0c58ea79e in art preserves the original field order for ArtFields, and they will therefore be sorted by name. For classes with large numbers of static and instance fields, a binary search is obviously much faster. Before: Scenario{vm=app_process, trial=0, benchmark=GetInstanceField} 275460.26 ns; σ=19.75 ns @ 3 trials Scenario{vm=app_process, trial=0, benchmark=GetStaticField} 661690.26 ns; σ=6340.84 ns @ 5 trials After: Scenario{vm=app_process, trial=0, benchmark=GetInstanceField} 3502.96 ns; σ=32.15 ns @ 3 trials Scenario{vm=app_process, trial=0, benchmark=GetStaticField} 6579.58 ns; σ=40.49 ns @ 3 trials bug: 18211592 (cherry picked from commit 8d471d854e0b66d079014519b562e673f8762995) Change-Id: I098192a217f858dcbb6f60472b5ad1c0d72906ee
|
8d471d854e0b66d079014519b562e673f8762995 |
|
13-Nov-2014 |
Narayan Kamath <narayan@google.com> |
Binary search through ArtFields to match by name. Commit bfa3ed0ad988e1da13626ddbaf6dcae0c58ea79e in art preserves the original field order for ArtFields, and they will therefore be sorted by name. For classes with large numbers of static and instance fields, a binary search is obviously much faster. Before: Scenario{vm=app_process, trial=0, benchmark=GetInstanceField} 275460.26 ns; σ=19.75 ns @ 3 trials Scenario{vm=app_process, trial=0, benchmark=GetStaticField} 661690.26 ns; σ=6340.84 ns @ 5 trials After: Scenario{vm=app_process, trial=0, benchmark=GetInstanceField} 3502.96 ns; σ=32.15 ns @ 3 trials Scenario{vm=app_process, trial=0, benchmark=GetStaticField} 6579.58 ns; σ=40.49 ns @ 3 trials bug: 18211592 Change-Id: I8f979de62ffe37d1c7d5c721717d2f3501e7c9e6
|
9ba050b3b5e9dff1006f683131a1204c2fa4d3a4 |
|
08-Nov-2014 |
Mathieu Chartier <mathieuc@google.com> |
Delete unused imtable field Bug: 17643507 (cherry picked from commit c46775d1a134eb1bf55557e33d34c732c0520660) Change-Id: I9cddc73cbf4b79ad4d50c6d413bea7ec3e62e4b3
|
c46775d1a134eb1bf55557e33d34c732c0520660 |
|
08-Nov-2014 |
Mathieu Chartier <mathieuc@google.com> |
Delete unused imtable field Bug: 17643507 Change-Id: Ic96554136f141440c3fbb2c03e80ae876a6162de
|
4bde7d71a45ca7d79b53d0770dc8cd6cd5469a76 |
|
16-Oct-2014 |
Alan Viverette <alanv@google.com> |
Make unchecked getDeclaredFields/Methods methods public-hidden These are used by ViewDebug to obtain the declared fields and methods and then perform type resolution checks on a per-field and per-method basis. Also updates documentation and naming so that the newly exposed methods are less likely to be used incorrectly within the framework. BUG: 17375269 (cherry picked from commit 206773d0a85a03b70a5a5cd6bf5e6f2a2a2326d4) Change-Id: Ia656d6e8a00ebcb0b729e68aa8a2c1959b9e260b
|
206773d0a85a03b70a5a5cd6bf5e6f2a2a2326d4 |
|
16-Oct-2014 |
Alan Viverette <alanv@google.com> |
Make unchecked getDeclaredFields/Methods methods public-hidden These are used by ViewDebug to obtain the declared fields and methods and then perform type resolution checks on a per-field and per-method basis. Also updates documentation and naming so that the newly exposed methods are less likely to be used incorrectly within the framework. BUG: 17375269 Change-Id: I2f3d4f0ffe3a59e0466e7f7e401c1e5d170d36df
|
c519ec27ba900d5422c5a0d40388fb6620981564 |
|
25-Sep-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
Update Class.primitiveType field uses. This goes with the array allocation path optimization CL 108967. Bug: 9986565 Change-Id: I96de4725d4517d84af34ad05792fce8aa322f57a
|
9fa4a8df90b59d44218decb2d028671588559377 |
|
10-Sep-2014 |
Mingyao Yang <mingyao@google.com> |
Remove referenceStaticOffsets from Class.java since it's not needed anymore. Bug: 16236588 Change-Id: Icebdf0febee72a5dbbebc1906b069d52bf756e80
|
793b9ef91876cb7bea31ddf74f110ac45302f1dd |
|
23-Apr-2014 |
Jeff Hao <jeffhao@google.com> |
Fix Class.newInstance to not wrap its exceptions. Unlike Constructor.newInstance, Class.newInstance should not wrap exceptions it throws. Bug: https://code.google.com/p/android/issues/detail?id=68620 Change-Id: I3b89e8417d770b1908fea585062e62d5de292331
|
96e2e4faf806aa22ca205354c16b04288d51ddbf |
|
01-Apr-2014 |
Jeff Hao <jeffhao@google.com> |
Fix reflection access checks for app compatibility in libcore. Libcore side of this change. Corresponding art change here: https://android-review.googlesource.com/#/c/89620/ Change-Id: I00610421438155fc60d6780b06581b874419ca2b
|
0a21bb40b8ade2e932ef7608bc861f183bfe594d |
|
26-Mar-2014 |
Jeff Hao <jeffhao@google.com> |
Add access checks to Method and Field reflection. Libcore side of this change. Has a corresponding art change. Bug: 13620925 Change-Id: I68f726af5f2b5a79c9ffd6f2c76a0b3f2600ca9d
|
3b8c8cba4defe9049aca66d505e509395e5485f5 |
|
21-Nov-2013 |
Narayan Kamath <narayan@google.com> |
Fix the art version of getGenericSuperclass. art version of: https://android-review.googlesource.com/#/c/70325 bug: 10918616 Change-Id: Id4e221137410027757a5353476d78290f73d7ad8 (cherry picked from commit 34ab628b61321c17b5c1406656e7b352ab0a76a2)
|
96caa8ec10a5d64d804a9ed3897c9a34c8626239 |
|
21-Oct-2013 |
Brian Carlstrom <bdc@google.com> |
Fix Class.getEnclosingClass for anonymous classes declared in <clinit> methods (cherry picked from commit b9be313bdc257089534f738ff8e1e5ad4de3d25e) Bug: 11245138 Related bug: https://code.google.com/p/android/issues/detail?id=61003 Change-Id: I5cc1db6ca6628b845409d7a6ea864da5f625fdc3
|
59351c4e69b0e917d1f60e7ae32e76615150690c |
|
29-Oct-2013 |
Jeff Hao <jeffhao@google.com> |
Libcore support for Interface Method Tables (IMT). (cherry picked from commit 500f98f9696baad7ba16bd5ad65e8caa475ebfe7) Change-Id: I0d611ba7b24f2a990a4a2958939b0f6d739d3c14
|
4583b2cee94e9582a6c7a1d715f4896073d03bad |
|
13-Oct-2013 |
Brian Carlstrom <bdc@google.com> |
Fix Class.getDeclaringClass bug for ART Bug: https://code.google.com/p/android/issues/detail?id=61003 Change-Id: Ia2cc774a9239ecd64f8039b2ca9e27593126e2cf
|
a6e22fc9b70ebe39abd716ce37450bda935c0fb8 |
|
19-Sep-2013 |
Ian Rogers <irogers@google.com> |
Avoid computing class def indices. Bug: 10244719 Also tidy AnnotationAccess. (cherry-picked from 8b2c0b9abc3f520495f4387ea040132ba85cae69) Change-Id: I6ec8fd4e36b428d7e16e01d98b7bebc143fac8c3 Conflicts: libdvm/src/main/java/java/lang/Class.java
|
98430d0d75f4cfd40614b77debeb3c8d0abf40df |
|
15-Sep-2013 |
Ian Rogers <irogers@google.com> |
Fix getGenericInterfaces for the no annotation case. Bug: 10244719 (cherry-picked from 43111aab512b1a7c7c8095a7135a7ae2754ea5bd) Change-Id: I758d32e9cffcabf771e6f5f86ffa2666c8e1cb02 Conflicts: libdvm/src/main/java/java/lang/Class.java
|
d4ec55c4e1acc3c3df937facbd367aff6618536c |
|
07-Sep-2013 |
Ian Rogers <irogers@google.com> |
Lazier annotation signature parsing. Bug: 10244719. Also, make wider use of empty arrays. Also, use named inner classes to aid profiling. Remove caching as the empty result will be fast. Porting the ART changes to DVM, to avoid the caching, results in bringing in a bunch of other ART clean-up. TODO, avoid modified-UTF8 to String conversions by Dex. Change-Id: I051b6e34b5a4e7a7f1383461a799755947a5ba36 Conflicts: libdvm/src/main/java/java/lang/Class.java
|
71dc4f7d4829335f7aba5414b43d16cd316ba22f |
|
31-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Refactor ART java.lang.reflect implementation Bug: 10014286. (cherry picked from commit 1222a700a25956b0e3634731160017f0d3aa0585) Change-Id: Ic5672489f6c028d47e6c2a499d6a2bbdd5cc4e4c
|
d3e311496e0b08acd959c3ffa31d9930a71bae19 |
|
24-Jul-2013 |
Ian Rogers <irogers@google.com> |
Improve the performance of reflective operations. Common dex index lookups require a number of different types to be constructed, implement short-cuts that avoid the intermediate data types. Refactor reflective operations to use dex methods that don't require temporary objects. Note: this change adds an empty short array to Dex, this code can't appear in libcore.util as Dex doesn't always come with libcore.util. Bug: 9968234 (cherry picked from commit 381db8de0ac5df124c7f482bf4be9d5756bf3ca4) Change-Id: I9122a3f01b4f41b07a84aff768193c092e29698c
|
6a51140fd83dc16867ca38a4ca2e47cbbf090dfd |
|
20-Jul-2013 |
Ian Rogers <irogers@google.com> |
Restructure Class.getDeclaredMethodInternal. Prefer virtual over direct methods when searching for a specific method. For direct methods, check they are method rather than constructors early (cheap test) and cast to Method as check-cast ellision can remove. Motivation, android.widget.RemoteViews is using Class.getMethod and showing as hot in the calendar launcher widget. Change-Id: Id12fe9549c8f6626fd1abf0494d81aee32e0bc7a
|
78728ebce868f5949739e6e204e3e0fbf0356f8d |
|
15-Jun-2013 |
Elliott Hughes <enh@google.com> |
Fix Class.getModifiers for arrays of inner classes. Bug: https://code.google.com/p/android/issues/detail?id=56267 (cherry picked from commit 8aa5892195543e80b1c4eb10d8764268927cc1be) Change-Id: I3be5433b04607e5f41e7c68f03cfabc166b56d54
|
2cf03dc15c40b92634ff606694af5a6e9aa4db09 |
|
22-May-2013 |
Brian Carlstrom <bdc@google.com> |
Adding libart support to libcore Change-Id: I86febf08eacf42bb4b2f06dbd51c5b2d5b25c9fb
|