summaryrefslogtreecommitdiffstats
path: root/runtime/mirror/class_loader.h
Commit message (Collapse)AuthorAgeFilesLines
* ObjPtr<>-ify StackTraceElement and ClassLoader.Vladimir Marko2019-04-011-3/+1
| | | | | | | Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 31113334 Change-Id: I457eeda55bbfb905dd2de0abd68451ab42ef9c1f
* ART: Move to using locks.h instead of mutex.hAndreas Gampe2018-12-061-1/+1
| | | | | | | | When only annotating lock requirements, use locks.h. Bug: 119869270 Test: mmma art Change-Id: I1608b03254712feff0072ebad012c3af0cc3dda4
* ART: Clean up verify and read barrier flags.Vladimir Marko2018-09-171-1/+2
| | | | | | | | | | | | | | | | | | | | Remove read barrier option from Class::IsArrayClass() and related functions. Comparison with null does not need the read barrier and the primitive type should be the same when read from the from-space version of a class as when read from the to-space version. Propagate the verify flags to a few more functions and simplify Class::IsClassClass(). Remove pointer size check from Class::EmbeddedVTableOffset() in preparation for patching the boot image in place before the Runtime and Thread are fully initialized. Test: m test-art-host-gtest Test: testrunner.py --host --gcstress Bug: 77856493 Change-Id: I8b7a6165fa8e25efd37778e0e6ea049fc2147b24
* ART: Include cleanupAndreas Gampe2017-07-241-1/+1
| | | | | | | | | | | | | | | | | | | Let clang-format reorder the header includes. Derived with: * .clang-format: BasedOnStyle: Google IncludeIsMainRegex: '(_test|-inl)?$' * Steps: find . -name '*.cc' -o -name '*.h' | xargs sed -i.bak -e 's/^#include/ #include/' ; git commit -a -m 'ART: Include cleanup' git-clang-format -style=file HEAD^ manual inspection git commit -a --amend Test: mmma art Change-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02
* ART: More header cleanupsAndreas Gampe2017-06-051-0/+3
| | | | | | | | Clean up some more includes. Move some -inls from object-inl to object-refvisitor-inl. Fix up transitives. Test: m test-art-host Change-Id: I0e3e268d95a1c71b0a80fc963d13d191a97b2283
* ART: More header cleanup - runtime.hAndreas Gampe2017-05-301-0/+1
| | | | | | | | Remove unnecessary runtime.h includes. Refactor other headers (move to forward declarations) to make this possible. Test: mmma art Change-Id: I297f0ad444ba92169edd16d8c7cbe95bb6dbb800
* Move most mirror:: args to ObjPtrMathieu Chartier2016-10-171-1/+1
| | | | | | | | | Fixed possible moving GC bugs in ClinitImageUpdate class. Bug: 31113334 Test: test-art-host Change-Id: I0bf6578553d58b944aaa17665f1350bdf5ed15ec
* ART: SHARED_REQUIRES to REQUIRES_SHAREDAndreas Gampe2016-08-301-6/+6
| | | | | | | | | This coincides with the actual attribute name and upstream usage. Preparation for deferring to libbase. Test: m Test: m test-art-host Change-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518
* Revert "Revert "Load app images""Mathieu Chartier2016-01-251-1/+4
| | | | | | | | This reverts commit 1bc977cf2f8199311a97f2ba9431a184540e3e9c. Bug: 22858531 Change-Id: Ide00bf3a73a02cba3bb364177204ad1b13f70295
* Revert "Load app images"Nicolas Geoffray2016-01-231-4/+1
| | | | | | | | | | Fails when a method is duplicated (see test 097-duplicate-method) Bug: 22858531 This reverts commit f7fd970244f143b1abb956e29794c446e4d57f46. Change-Id: Ib30ae5be00cc568e799290be6b3c8f29cbbe4c20
* Load app imagesMathieu Chartier2016-01-221-1/+4
| | | | | | | | | | | | | | | | | | | Support in-place patching of the app image based on boot image location and app oat location. Only loads for art run test so far since we do not automatically generate app images for app installs. N5 maps launch time (~200 runs): Before: 930ms After: 878.18ms After + image class table: 864.57ms TODO: Oatdump support. Store class loaders as class roots in image. Bug: 22858531 Change-Id: I9cbc645645e62ea2ed1ad8e139e91af7d88514c1
* Revert "lambda: Add support for invoke-interface for boxed innate lambdas"Nicolas Geoffray2015-11-241-17/+0
| | | | | | | | | | | 955-lambda is flaky Bug: 24618608 Bug: 25107649 This reverts commit 457e874459ae638145cab6d572e34d48480e39d2. Change-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7
* lambda: Add support for invoke-interface for boxed innate lambdasIgor Murashkin2015-11-201-0/+17
| | | | | | | | | | | | | | Lambda closures created with the 'create-lambda' instruction (termed "innate lambdas") can be turned into an object with 'box-lambda'. This CL enables support for those kinds of lambdas to work with 'invoke-interface' by generating a proxy class for the lambda. Note: MIPS32/64 support not included. Bug: 24618608 Bug: 25107649 Change-Id: Ic8f1bb66ebeaed4097e758a50becf1cff6ccaefb
* Revert "Revert "Add one LinearAlloc per ClassLoader""Mathieu Chartier2015-09-221-0/+14
| | | | | | | | | Issue was fixed by: https://android-review.googlesource.com/#/c/171945/ Bug: 22720414 This reverts commit 7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0.
* Revert "Add one LinearAlloc per ClassLoader"Nicolas Geoffray2015-09-221-14/+0
| | | | | | | | | | Times out on 32bit target/host for 132-daemon-locks-shutdown test. Bug: 22720414 This reverts commit 356412e2b7ba3fde164bc08a44fee0ddc19c54e1. Change-Id: I5ab3a09e88a5ad8c306a27d2606ecbecc80b9326
* Add one LinearAlloc per ClassLoaderMathieu Chartier2015-09-211-0/+14
| | | | | | | | | Also added freeing linear alloc and class table when the corresponding class loader is no longer reachable. Bug: 22720414 Change-Id: Icb32c3a4c865f240e147bc87ed080a6b1d8a5795
* Always visit object class from VisitReferencesMathieu Chartier2015-08-181-2/+4
| | | | | | | | | | We don't want to unload classes which have instances. Slight increase in CMS GC time from ~6.5s to ~7.3s on EvaluateAndApplyChanges. Bug: 22720414 Change-Id: I467ff9c9d55163d2a90b999aef3bdd7b3f648bac
* Visit class roots from ClassLoader::VisitReferencesMathieu Chartier2015-08-121-0/+8
| | | | | | | | | This causes the classes of a class loader to get marked when that class loader gets marked instead of during class root visiting. Bug: 22720414 Change-Id: If53f042aff1d9f7bf94ecbe6886601edda029b7d
* Add class table field to class loaderMathieu Chartier2015-08-071-0/+12
| | | | | | | | | Fixes bug with the class table where the comparator would cause read barriers and break the map strict ordering properties. Bug: 22957957 Change-Id: I8dbc042db6e22e2172ab4ec58ddf1db0345dcaaa
* Move to newer clang annotationsMathieu Chartier2015-07-221-1/+1
| | | | | | | | | | | | | | | Also enable -Wthread-safety-negative. Changes: Switch to capabilities and negative capabilities. Future work: Use capabilities to implement uninterruptible annotations to work with AssertNoThreadSuspension. Bug: 20072211 Change-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33
* Header file clean up.Ian Rogers2014-10-081-1/+1
| | | | | | | | | | Remove runtime.h from object.h. Move TypeStaticIf to its own header file to avoid bringing utils.h into allocator.h. Move Array::DataOffset into -inl.h as it now has a utils.h dependency. Fix include issues arising from this. Change-Id: I4605b1aa4ff5f8dc15706a0132e15df03c7c8ba0
* Add fast path for FindClass using the type dex file.Mathieu Chartier2014-09-081-0/+3
| | | | | | | | | | | | | | | | | If we are using the PathClassLoader with a BootClassLoader parent, we can handle the common case in the FindClass function without needing to go back to java code. Around 10% speedup measured of maps launch, could be noise due to large variation of app launch times. Eliminates defineClassNative from being anywhere near the top of sampling profiles. Bug: 17397179 Bug: 16828525 (cherry picked from commit 8a39e7fe02e9a81853dc7a75cb50d9ece07a9b37) Change-Id: I1f31de76c1b1a53e32173b1e61a59b0e2f267c98
* Improve performance of invokevirtual/invokeinterface with embedded imt/vtableMingyao Yang2014-07-111-0/+6
| | | | | | | | | Add an embedded version of imt/vtable into class object. Both tables start at fixed offset within class object so method/entry point can be loaded directly from class object for invokeinterface/invokevirtual. Bug: 8142917 Change-Id: I4240d58cfbe9250107c95c0708c036854c455968
* Force inlining on trivial accessors.Ian Rogers2014-04-291-3/+0
| | | | | | | | | Make volatility for GetFieldObject a template parameter. Move some trivial mirror::String routines to a -inl.h. Bug: 14285442 Change-Id: Ie23b11d4f18cb15a62c3bbb42837a8aaf6b68f92
* Object model changes to support 64bit.Ian Rogers2014-02-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | Modify mirror objects so that references between them use an ObjectReference value type rather than an Object* so that functionality to compress larger references can be captured in the ObjectRefererence implementation. ObjectReferences are 32bit and all other aspects of object layout remain as they are currently. Expand fields in objects holding pointers so they can hold 64bit pointers. Its expected the size of these will come down by improving where we hold compiler meta-data. Stub out x86_64 architecture specific runtime implementation. Modify OutputStream so that reads and writes are of unsigned quantities. Make the use of portable or quick code more explicit. Templatize AtomicInteger to support more than just int32_t as a type. Add missing, and fix issues relating to, missing annotalysis information on the mutator lock. Refactor and share implementations for array copy between System and uses elsewhere in the runtime. Fix numerous 64bit build issues. Change-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822
* Fix multiple inclusion guards to match new pathnamesBrian Carlstrom2013-07-171-3/+3
| | | | Change-Id: Id7735be1d75bc315733b1773fba45c1deb8ace43
* Create separate Android.mk for main build targetsBrian Carlstrom2013-07-121-0/+46
The runtime, compiler, dex2oat, and oatdump now are in seperate trees to prevent dependency creep. They can now be individually built without rebuilding the rest of the art projects. dalvikvm and jdwpspy were already this way. Builds in the art directory should behave as before, building everything including tests. Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81