summaryrefslogtreecommitdiffstats
path: root/runtime/object_callbacks.h
Commit message (Collapse)AuthorAgeFilesLines
* Replace NULL with nullptrMathieu Chartier2015-04-221-2/+3
| | | | | | | Also fixed some lines that were too long, and a few other minor details. Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
* Print more info in MarkSweep::VerifyRootMathieu Chartier2015-01-151-24/+0
| | | | | | | | | | | | | | | | | | | | | | | Refactored old root callback to use a new class called RootInfo. RootInfo contains all the relevant info related to the root associated with the callback. The MarkSweep::VerifyRoot function now uses this info to print the StackVisitor's described location if the GC root is of the type kRootJavaFrame. Some other cleanup. Example output: E/art (12167): Tried to mark 0x123 not contained by any spaces E/art (12167): Attempting see if it's a bad root E/art (12167): Found invalid root: 0x123 with type RootJavaFrame E/art (12167): Location=Visiting method 'void java.lang.Runtime.gc()' at dex PC 0xffffffff (native PC 0x0) vreg=0 (cherry picked from commit 12f7423a2bb4bfab76700d84eb6d4338d211983a) Bug: 18588862 Change-Id: Ic5a2781f704e931265ffb3621c2eab4b2e25f60f
* Disable adding main and non moving spaces to immune region in GSSMathieu Chartier2014-07-161-5/+5
| | | | | | | | | | | | | | | | | | Disabled adding the main and non moving space to the immune region. This will enable us to recycle bump pointer spaces for malloc space -> malloc space compaction as well as collector transitions. Also added logic for falling back to the non moving space, we may copy objects there. Refactored mod union table logic into MarkReachableObjects. No measurable performance benefit or regression. Bug: 14059466 Bug: 16291259 Change-Id: If663d9fdbde943b988173b7f6ac844e5f78a0327
* Improve performance of invokevirtual/invokeinterface with embedded imt/vtableMingyao Yang2014-07-111-4/+4
| | | | | | | | | 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
* Change reference processing to use heap references.Mathieu Chartier2014-06-161-0/+5
| | | | | | | Removes several SetReferents for updating moved referents. Cleaned up other aspects of the code. Change-Id: Ibcb4d713fadea617efee7e936352ddf77ff4c370
* Improve heap verification for invalid roots.Mathieu Chartier2014-05-201-0/+3
| | | | | | | | | | | The new root verification prints the root type and owner thread id as well as the type of the object. Also a bit of work for planned multi-threaded verification. Bug: 14289301 Change-Id: Ia73c517dc11ec6dd82f3d945604ee3836b3db536
* Improve GSS reference processing.Hiroshi Yamauchi2014-04-281-0/+3
| | | | | | | | | Support the case where the reference object is in the free list space and the referent object is in the bump pointer space at a bump pointer space collection. Bug: 11650816 Change-Id: If98b08edc9e37351c74ee07cb3f2d30c2b4d0056
* Improve invalid root dumping.Mathieu Chartier2014-04-041-1/+1
| | | | | | The invalid root dumping now attempts to print the root type. Change-Id: Ie821296d569f34909ba6e2705f5c347cd2143a3a
* Refactor object reference visiting logic.Mathieu Chartier2014-03-241-0/+4
| | | | | | | Refactored the reference visiting logic to be in mirror::Object instead of MarkSweep. Change-Id: I773249478dc463d83b465e85c2402320488577c0
* Change ProcessReferences to not use RecursiveMarkObject.Mathieu Chartier2014-02-201-0/+1
| | | | | | | | | | | | | | | | | | Calling ProcessMarkStack in RecursiveMarkObject caused a lot of overhead due to timing logger splits. Changed the logic to be the same as prior to the reference queue refactoring which involves calling process mark stack after preserving soft references and enqueueing finalizer references. FinalizingGC longest pause is reduced by around 1/2 down to ~300ms. Benchmark score ~400000 -> ~600000. Also changed the timing logger splits in the GC to have (Paused) if the split is a paused part of the GC. Bug: 12129382 Change-Id: I7476d4f23670b19d70738e2fd48e37ec2f57e9f4
* Change root visitor to use Object**.Mathieu Chartier2014-02-181-2/+2
| | | | | | | Simplifies code and improves the performance of root visiting since we usually don't need to check to see if the object moved. Change-Id: Iba998f5a15ae1fa1b53ca5226dd2168a411196cf
* Add root types and thread id to root visiting.Mathieu Chartier2014-02-111-0/+66
Enables us to pass the root type and thread id to hprof. Bug: 12680863 Change-Id: I6a0f1f9e3aa8f9b4033d695818ae7ca3460d67cb