summaryrefslogtreecommitdiffstats
path: root/runtime/handle_scope-inl.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix HandleScope with wrong thread errorMathieu Chartier2015-01-091-0/+1
| | | | | | | | | | | | | Possibly fixes +art F 5127 6995 art/runtime/handle_scope-inl.h:43] Check failed: top_handle_scope == this (top_handle_scope=0x2b449293c770, this=0x2b4492d6a0a8) Seen in tests. A possible cause was that the thread dumping stacks was running checkpoints on a suspended thread but putting a HandleScope on that thread instead of itself. This isn't safe if the suspended thread is doing HandleScope stuff in a non runnable state. Change-Id: Icdaadabca5aff8d380d5cc9570b9e899fe790a62
* Add VerifyObject to StackHandleScope::SetReferenceMathieu Chartier2015-01-081-0/+66
| | | | | | | | Helps catch GC bugs. Also moved some of the HandleScope logic to the inl file. Bug: 13054004 Change-Id: I81b9dd717092b6a467fcd28b4df0089ec075dd44
* ART: Replace COMPILE_ASSERT with static_assert (runtime)Andreas Gampe2014-11-031-1/+1
| | | | | | Replace all occurrences of COMPILE_ASSERT in the runtime tree. Change-Id: I01e420899c760094fb342cc6cb9e692dd670a0b2
* Optimize method linkingMathieu Chartier2014-10-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added more inlining, removed imt array allocation and replaced it with a handle scope. Removed some un-necessary handle scopes. Added logic to base interface method tables from the superclass so that we dont need to reconstruct for every interface (large win). Facebook launch Dalvik KK MR2: TotalTime: 3165 TotalTime: 3652 TotalTime: 3143 TotalTime: 3298 TotalTime: 3212 TotalTime: 3211 Facebook launch TOT before: WaitTime: 3702 WaitTime: 3616 WaitTime: 3616 WaitTime: 3687 WaitTime: 3742 WaitTime: 3767 After optimizations: WaitTime: 2903 WaitTime: 2953 WaitTime: 2918 WaitTime: 2940 WaitTime: 2879 WaitTime: 2792 LinkInterfaceMethods no longer one of the hottest methods, new list: 4.73% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle<art::mirror::Class>) 3.07% art::DexFile::FindClassDef(char const*) const 2.94% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int) 2.90% art::DexFile::FindStringId(char const*) const Bug: 18054905 Bug: 16828525 (cherry picked from commit 1fb463e42cf1d67595cff66d19c0f99e3046f4c4) Change-Id: I27cc70178fd3655fbe5a3178887fcba189d21321
* Work around ICE bugs with MIPS GCC and O1.Ian Rogers2014-10-101-2/+3
| | | | | | | | | Also, work around GCC warning bugs where array accesses with explicit bounds checks are flagged as being out-of-bounds. Significantly, clean-up the HandleScope so the array accesses don't appear out-of-bounds at compile time. Change-Id: I5d66567559cc1f97cd0aa02c0df8575ebadbfe3d
* Remove object_utils.h.Ian Rogers2014-07-161-1/+1
| | | | | | | | | Break into object_lock, field_helper and method_helper. Clean up header files following this. Also tidy some of the Handle code in response to compiler errors when resolving the changes in this CL. Change-Id: I73e63015a0f02a754d0866bfaf58208aebcaa295
* Fix compiler warnings.Mathieu Chartier2014-06-041-2/+1
| | | | | | | | Added GetReference, GetHandle to StackHandleScope to prevent the compiler from optimizing away these loads/stores from inline functions. Change-Id: I4db02dd3194665d844292e74e3a7d7c80e730e06
* Address comments from HandleScope change.Mathieu Chartier2014-05-141-2/+2
| | | | | | | For: https://android-review.googlesource.com/#/c/93793 Change-Id: I020d22a1508bf4f1770e6806d70e4fbb9a0fa0ab
* Add Handle/HandleScope and delete SirtRef.Mathieu Chartier2014-05-131-0/+47
Delete SirtRef and replaced it with Handle. Handles are value types which wrap around StackReference*. Renamed StackIndirectReferenceTable to HandleScope. Added a scoped handle wrapper which wraps around an Object** and restores it in its destructor. Renamed Handle::get -> Get. Bug: 8473721 Change-Id: Idbfebd4f35af629f0f43931b7c5184b334822c7a