)]}'
{
  "log": [
    {
      "commit": "7b078e8c04f3e1451dbdd18543c8b9692b5b067e",
      "tree": "414229c6b87eb20ea24c40780752da5a3999a49a",
      "parents": [
        "f79ba17defbd9342e44ab9f3de0807054673d3c9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 10 14:44:24 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 12 14:57:53 2014 -0700"
      },
      "message": "Compile time performance improvements focusing on interpret-only.\n\nReduce virtual method dispatch in the method verifier and make more code\ninline-able.\nAdd a StringPiece with const char* equality operator to avoid redundant\nStringPieces and strlens.\nRemove back link from register line to verifier and pass as argument to reduce\nsize of RegisterLine.\nRemove instruction length from instruction flags and compute from the\ninstruction, again to reduce size.\nAdd suspend checks to resolve and verify to allow for more easy monitor\ninflation and reduce contention on Locks::thread_list_suspend_thread_lock_.\nChange ThrowEarlierClassFailure to throw pre-allocated exception.\nAvoid calls to Thread::Current() by passing self.\nTemplate specialize IsValidClassName.\nMake ANR reporting with SIGQUIT run using checkpoints rather than suspending\nall threads. This makes the stack/lock analysis less lock error prone.\nExtra Barrier assertions and condition variable time out is now returned as a\nboolean both from Barrier and ConditionVariable::Wait.\n\n2 threaded host x86-64 interpret-only numbers from 341 samples:\nBefore change: Avg 176.137ms 99% CI 3.468ms to 1060.770ms\nAfter change: Avg 139.163% 99% CI 3.027ms to 838.257ms\nReduction in average compile time after change is 20.9%.\nSlow-down without change is 26.5%.\n\nBug: 17471626 - Fix bug where RegTypeCache::JavaLangObject/String/Class/Throwable\ncould return unresolved type when class loading is disabled.\nBug: 17398101\n\nChange-Id: Id59ce3cc520701c6ecf612f7152498107bc40684\n"
    },
    {
      "commit": "3946844c34ad965515f677084b07d663d70ad1b8",
      "tree": "0d85bfba2ff69c34a2897351d1e50a1464509305",
      "parents": [
        "e2c23739c6395a83b30ece38f8a2e9e1bf7cf3ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 02 15:17:15 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 08 12:15:07 2014 +0100"
      },
      "message": "Runtime support for the new stack maps for the opt compiler.\n\nNow most of the methods supported by the compiler can be optimized,\ninstead of using the baseline.\n\nChange-Id: I80ab36a34913fa4e7dd576c7bf55af63594dc1fa\n"
    },
    {
      "commit": "c0542af3e2170143ba40d89136e284997e16bf64",
      "tree": "a61e3b9cd297a4c52a0c0488a502cb77c47f0690",
      "parents": [
        "d3c9358544bbab15093614c5c2b6a9de86e11f7b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 03 16:16:56 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 03 17:15:54 2014 -0700"
      },
      "message": "Remove abuse of mirror::Object* to reference special values.\n\nRemove kInvalidIndirectRefObject, kClearedJniWeakGlobal and\nObjectRegistry::kInvalidObject. Handle error conditions by passing in or\nreturning an error value.\nGetObjectRefType is simplified to be faster and not return invalid references\nthat are not expected according to the spec. Adjust check JNI and\njni_internal_test appropriately.\nFix cases in the debugger/JDWP of out arguments being passed by reference.\nBug: 17376993\n\nChange-Id: I3ce8a28c01827e163f4dc288449959464da788b1\n"
    },
    {
      "commit": "839cc30467d51414e8185eee6101e19f5ab20871",
      "tree": "dc6ff18729eb3180140bb1cd71e17b8ab9c443b7",
      "parents": [
        "83c115930b403db2b6b38d9dcb4828e31feb792f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 10:24:44 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 10:27:43 2014 -0700"
      },
      "message": "Move the glibc unlimited stack hack into GetThreadStack.\n\nOptional cleanup that was previously a TODO.\n\nBug: 17111575\nChange-Id: I7c20dbf1fdbcaf4604d7b55552930c10e166539d\n"
    },
    {
      "commit": "6d3fc5615612e500a00aba0a0d331436fae8d996",
      "tree": "5a6426ee19d6398dbc38175b53a71a0b1fb7fad0",
      "parents": [
        "dbc0ca70bcee22561c2f0ab7129a7721369e9aea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 27 11:47:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 09:56:32 2014 -0700"
      },
      "message": "Actually ask the pthread implementation for the stack guard size.\n\n(cherry-pick 307091dc306c34ce9e4ee6cc3b467807b3a3bd12.)\n\nBug: 17111575\nChange-Id: I23919b1e8aeff627a65daf57f1109bec60b196cc\n"
    },
    {
      "commit": "8ce6b9040747054b444a7fa706503cd257801936",
      "tree": "04712170addb252d307ef9015abfc9bfc2b73581",
      "parents": [
        "a0a0da29e7d4d5c1bd471c49f1a4b6ec98fb767a"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Aug 26 11:07:58 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Aug 27 12:47:44 2014 -0700"
      },
      "message": "Handle nested signals\n\nThis allows for signals to be raised inside the ART signal handler.\nThis can occur when the JavaStackTraceHandler attempts to generate\na stack trace and something goes wrong.\n\nIt also fixes an issue where the fault manager was not being\ncorrectly shut down inside the signal chaining code.  In this\ncase the signal handler was not restored to the original.\n\nBug: 17006816\nBug: 17133266\n\n(cherry picked from commit fabe91e0d558936ac26b98d2b4ee1af08f58831d)\n\nChange-Id: I10730ef52d5d8d34610a5293253b3be6caf4829e\n"
    },
    {
      "commit": "8e219ae27624116b6d23e858fb21e93342f81d66",
      "tree": "a685be4079ff6c506630b720eb50226d16848005",
      "parents": [
        "0b05ec674139c2b2e0914b0bb0e1898f93a9c852"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 19 14:29:46 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 26 15:28:07 2014 -0700"
      },
      "message": "Reduce interpret-only compile time.\n\nBefore:\n39.04user 5.18system 0:29.24elapsed 151%CPU (0avgtext+0avgdata 164176maxresident)k\n38.87user 5.16system 0:29.14elapsed 151%CPU (0avgtext+0avgdata 164144maxresident)k\n\nAfter:\n36.26user 3.25system 0:27.00elapsed 146%CPU (0avgtext+0avgdata 162592maxresident)k\n36.25user 3.28system 0:26.28elapsed 150%CPU (0avgtext+0avgdata 162688maxresident)k\n\nDisabled implicit stack protection for the compiler, this reduces page faults.\n\nAdded support for not timing every method compilation and verification. NanoTime is\nslow and adds ~2 seconds of real time. This is currently enabled since people want\nto know which methods are slow to compile.\n\nBug: 16853450\n\nChange-Id: I349ffb3f36db8c437137387aa6914dc17d743f09\n"
    },
    {
      "commit": "0b05ec674139c2b2e0914b0bb0e1898f93a9c852",
      "tree": "6194445d3ff4a6e629612b25a0a09c93b94e4955",
      "parents": [
        "3b6711faf7b0b10eaa6c48ba854160bcecd00166",
        "d9efea646485fe996c967f4680a3fc4cdc40b251"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 26 17:55:56 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 26 17:55:56 2014 +0000"
      },
      "message": "Merge \"ART: Improve error message on oat writer failure\""
    },
    {
      "commit": "d9efea646485fe996c967f4680a3fc4cdc40b251",
      "tree": "3fd198f4c7a21e34d1130d5bcda20d892fb21b07",
      "parents": [
        "e18aa4316eb9a15cd6b1051f27a1ce49967c170e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 21 22:56:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 26 10:54:56 2014 -0700"
      },
      "message": "ART: Improve error message on oat writer failure\n\nTry to log the pending exception to help resolve issues.\n\nBug: 16406811\nChange-Id: I035ae9e59a5ee02b9e90c35c0644ec088d3c7d12\n"
    },
    {
      "commit": "37f05ef45e0393de812d51261dc293240c17294d",
      "tree": "7c7793862efa52e1deb42babbdcb652c245ab941",
      "parents": [
        "e25826e28ea65d9c1aa23f84788a091c677b20c7"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Wed Jul 16 18:38:08 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Mon Aug 25 11:16:53 2014 -0700"
      },
      "message": "Reduced memory usage of primitive fields smaller than 4-bytes\n\nReduced memory used by byte and boolean fields from 4 bytes down to a\nsingle byte and shorts and chars down to two bytes. Fields are now\narranged as Reference followed by decreasing component sizes, with\nfields shuffled forward as needed.\n\nBug: 8135266\nChange-Id: I65eaf31ed27e5bd5ba0c7d4606454b720b074752\n"
    },
    {
      "commit": "216cf23663789b06508f65f6dc0a72f181c9c03a",
      "tree": "50d22e90c580654957d616208cdafdb53f9e5b18",
      "parents": [
        "10dac8ee833a297ad0ffc5877305f2d132259478"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Aug 18 15:49:51 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Aug 19 19:00:43 2014 -0700"
      },
      "message": "Workaround problem reading main stack on intel devices.\n\nThis works around a problem where ART can\u0027t read the lowest page\nof the main stack.  The workaround is to add 4K to the stack\nstart address on the main stack on Intel.\n\nPlease see https://b2.corp.google.com/issues/17111575 for\nunderlying cause.\n\nCherry picked from d970bac690baa6f735b0cd187440546869088a0f\n\nBug: 17031544\nChange-Id: Ifc3216e10160bb1eec9d989fd57b10345bc89537\n"
    },
    {
      "commit": "b090a18e4292dc339a3b2668bf6dc855928dee3a",
      "tree": "fa12ca73ca33f48e2d2a1539db830a63996f8161",
      "parents": [
        "75dd98835859ca98c9f98339da8b64640d09a175"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Aug 14 17:02:48 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Aug 19 09:30:39 2014 -0700"
      },
      "message": "Merge stack usage reduction for overflow checks\n\nCherry pick from: b038ba66a166fb264ca121632f447712e0973b5b\n\nChange-Id: I19999e72ff731d4fc73d91b9ff767de5858c15ee\n"
    },
    {
      "commit": "3ea69c0abce1b81b3c45033867d49b00e6d6b709",
      "tree": "0bad76473a1c146a9ddc2d9fcaec32c945365d4d",
      "parents": [
        "506a79fd8a698911b5a82575eed59b9320ae97cd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 18 15:38:34 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 18 15:39:27 2014 -0700"
      },
      "message": "AttachCurrentThread should only warn on missing thread name if CheckJNI is enabled.\n\nBug: 17108693\nChange-Id: I346cc090e091605c552e5954d7ea1ca4874cea5f\n"
    },
    {
      "commit": "956a5228276693a7317ae6b41bfe7a7f0f3cbe6b",
      "tree": "4fb359d422d2d7af04f1b9dc9b8b5d6f268b138b",
      "parents": [
        "078f4ea927b3259d698ca3dd542a096943e2cccd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Aug 16 13:41:10 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 18 09:40:40 2014 -0700"
      },
      "message": "ART: Do not recursively abort when visiting locks in a bad state\n\nThis avoids a nested abort in VisitLocks.\n\nBug: 17080621, 16382675\n\n(cherry picked from commit 760172c3ccd6e75f6f1a89d8006934e8ffb1303e)\n\nChange-Id: Id604976ac9dcac0e319fb25cab4d2cbc98d7ee24\n"
    },
    {
      "commit": "7b1bf42dbc765524d54d45a70cb7eb1cccf0c617",
      "tree": "bb545f5a5586e6e249c9dbf892292c9bb463c108",
      "parents": [
        "e8bf3df2bcc61c12a7e66b4995a083f9ed3939e0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 13 19:54:09 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 13 19:54:09 2014 -0700"
      },
      "message": "ART: Fix mac build\n\nis_main_thread is unused in the case of a mac.\n\nChange-Id: Ib0658b622f261e09dbe1c7592fa802a484ba7f94\n"
    },
    {
      "commit": "648d7112609dd19c38131b3e71c37bcbbd19d11e",
      "tree": "54062831327c660acb309e877e8d8df9ba0c2d5d",
      "parents": [
        "99c251bbd225dd97d0deece29559a430b12a0b66"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Jul 25 16:15:27 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Aug 13 09:01:41 2014 -0700"
      },
      "message": "Reduce stack usage for overflow checks\n\nThis reduces the stack space reserved for overflow checks to 12K, split\ninto an 8K gap and a 4K protected region.  GC needs over 8K when running\nin a stack overflow situation.\n\nAlso prevents signal runaway by detecting a signal inside code that\nresulted from a signal handler invokation.  And adds a max signal count to\nthe SignalTest to prevent it running forever.\n\nAlso reduces the number of iterations for the InterfaceTest as this was\ntaking (almost) forever with the --trace option on run-test.\n\nBug: 15435566\n\nChange-Id: Id4fd46f22d52d42a9eb431ca07948673e8fda694\n"
    },
    {
      "commit": "68d8b42ddec39ec0174162d90d4abaa004d1983e",
      "tree": "0bb6ccf3b996bb8363c10d07aa39cde221980602",
      "parents": [
        "9c522c2cbbf50dc687728747b37ad59985750b65"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 17 11:09:10 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 08 08:29:53 2014 -0700"
      },
      "message": "Wire up check JNI force copy mode.\n\nIncrease check JNI checks.\nBreak apart jni_internal.h in to jni_env_ext.h and java_vm_ext.h.\nFix the abuse of ScopedObjectAccess/annotalysis by ScopedCheck in the case\nof VM routines.\nMake class loader override and shared library class loader JNI global\nreferences rather than mirror pointers.\nClean-ups to native bridge.\n\nChange-Id: If7c6110b5aade7a402bfb67534af86a7b2cdeb55\n"
    },
    {
      "commit": "6ec8ebd178ed39aa09e4c7fad194900114c4121a",
      "tree": "d618cd60098c59e6955ee19cb877b41aa7247753",
      "parents": [
        "9c81c0cb0dc8c8d8ae5dca3d2d82b0eec7af589f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 25 13:36:56 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 25 13:36:56 2014 -0700"
      },
      "message": "ART: Clean up API after change 102631\n\nThis adds an abort_on_error parameter to GetCurrentMethod, which is\nby default true. This restores all previous behavior, except for\nmonitor installation, where it follows 101639.\n\nBug: 16556938\nChange-Id: I9a12b9a21ccb9f558c86236bb58d15ff2fafaec0\n"
    },
    {
      "commit": "f9df5c1639a9418fcdf70476556a4c30b210701e",
      "tree": "67b810cb82e972f304c32e9592d0b7c41af9e599",
      "parents": [
        "b7563b641059bcff82eb4624edb806a7ce7f39c0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 25 03:07:06 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 25 03:26:54 2014 -0700"
      },
      "message": "ART: Fix wrong CHECK in GetCurrentLocationForThrow\n\nUnder certain circumstances kDexNoIndex is actually an encoded\ndex pc. Change the setup of CurrentMethodVisitor to account for that.\n\nBug: 16556938\nChange-Id: I4671f8c71c76f3e17e02db10f6da8ecc8331c87d\n"
    },
    {
      "commit": "307f650806e55ea54e7562a25a20b4b79f65271b",
      "tree": "05ffbff171c504c8e1c20d854ab5c5c33a67f82c",
      "parents": [
        "195bb33e08f262bde1e4367f14690f8328653ab6",
        "4a8c3fa4bd8d95fac5671ab778dd00b6dc3ec0e4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 25 09:23:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 23 17:53:27 2014 +0000"
      },
      "message": "Merge \"ART: Relax CurrentMethodVisitor requirements on GetDexPC\""
    },
    {
      "commit": "4a8c3fa4bd8d95fac5671ab778dd00b6dc3ec0e4",
      "tree": "b601d3d5dabfe16571f5fe10667cb9e09cf8a329",
      "parents": [
        "81457a3cd8fca14396b5785a4e4c8070c259b07a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 16 22:20:31 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 25 09:22:34 2014 +0000"
      },
      "message": "ART: Relax CurrentMethodVisitor requirements on GetDexPC\n\nIn case we want to dump a Java stack after an unhandled fault, in\ncase we hold a thinlocked monitor, that monitor might get inflated.\nThat can cause an abort as we may not have enough/correct information\nfor the state at the bottom-most call.\n\nRelax GetDexPc in the CurrentMethodVisitor to not abort when it cannot\nfind a dex pc. Instead, let the caller handle such a case. This CL\nallows the locking_dex_pc_ in Monitor to be DexFile::kDexNoIndex,\nwhich avoids the above abort.\n\nBug: 16352802, 16556938\nChange-Id: I3adf89b2d8f018a0c3e3abdd26e542f46ee59eef"
    },
    {
      "commit": "9d9fec65366ea4996b17141c97ff94416239b63e",
      "tree": "aab1773c63806c77f165822178d424486dfc8ef9",
      "parents": [
        "7ff831f63111de69c71bc8c5cb1042d698b72070",
        "7ea6f79bbddd69d5db86a8656a31aaaf64ae2582"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 22 06:51:47 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 21 15:45:44 2014 +0000"
      },
      "message": "Merge \"ART: Throw StackOverflowError in native code\""
    },
    {
      "commit": "7ea6f79bbddd69d5db86a8656a31aaaf64ae2582",
      "tree": "c64f89b15ca71e87317f6dd405ef4a5560b73e01",
      "parents": [
        "e72ff8022968b23efedc56c0afdc1d24e8a928c2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 14 16:21:44 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 21 23:36:31 2014 -0700"
      },
      "message": "ART: Throw StackOverflowError in native code\n\nInitialize stack-overflow errors in native code to be able to reduce\nthe preserved area size of the stack.\n\nIncludes a refactoring away from constexpr in instruction_set.h to allow\nfor easy changing of the values.\n\nChange-Id: I117cc8485f43da5f0a470f0f5e5b3dc3b5a06246\n"
    },
    {
      "commit": "c114b5fbc91e6d19ef430d9bc3468386ca61b324",
      "tree": "209973deaf02fdcccabc6e2c52a6db5df512aed9",
      "parents": [
        "a6d4bc19b0f68286862ce315377aaeb1e26a726b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 21 08:55:01 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 21 08:55:01 2014 -0700"
      },
      "message": "Fix erroneous behaviors with OOME present.\n\nBug: 16454510\nChange-Id: I757088a7b82ff73f58aba8d357080028b56442e6\n"
    },
    {
      "commit": "9791bb427fd812c1268edab6fb3ac7b82ad9fb93",
      "tree": "9467ee834502643a3b8b2261f0242a5f58ad61f9",
      "parents": [
        "ebe8f799c5053f85adffee23cb46851efebbfd92",
        "d9cb8ae2ed78f957a773af61759432d7a7bf78af"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 16 23:28:05 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 16 16:25:15 2014 +0000"
      },
      "message": "Merge \"Fix art test failures for Mips.\""
    },
    {
      "commit": "69dfe51b684dd9d510dbcb63295fe180f998efde",
      "tree": "daa2522650ca03417e4518dc8aef989ec53a6065",
      "parents": [
        "479f131d4bd3829dd512312020808b05f5a591f1"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Jul 11 17:11:58 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 16 14:58:27 2014 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Add implicit null and stack checks for x86\"\"\"\"\n\nThis reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1.\n\nBug: 16256184\nChange-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73\n"
    },
    {
      "commit": "d9cb8ae2ed78f957a773af61759432d7a7bf78af",
      "tree": "884d76d6e47193f704a7c7cb27c9a6c1ed2b49f3",
      "parents": [
        "ebaca192314e21d26b97646fa962e468ff07b893"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas@mips.com",
        "time": "Wed Jul 09 14:28:35 2014 -0700"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas@mips.com",
        "time": "Tue Jul 15 18:39:57 2014 -0700"
      },
      "message": "Fix art test failures for Mips.\n\nThis patch fixes the following art test failures for Mips:\n003-omnibus-opcodes\n030-bad-finalizer\n041-narrowing\n059-finalizer-throw\n\nChange-Id: I4e0e9ff75f949c92059dd6b8d579450dc15f4467\nSigned-off-by: Douglas Leung \u003cdouglas@mips.com\u003e\n"
    },
    {
      "commit": "22d5e735f403c57525fe868304c7123f0ce66399",
      "tree": "2458684efa56f0b800dd75a9dedd0449f76f581f",
      "parents": [
        "fbde4dd1cb6db729e3f3ee5bdae0cdd824d73054"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 22:23:51 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 16 06:13:46 2014 -0700"
      },
      "message": "Remove object_utils.h.\n\nBreak into object_lock, field_helper and method_helper.\nClean up header files following this.\nAlso tidy some of the Handle code in response to compiler errors when resolving\nthe changes in this CL.\n\nChange-Id: I73e63015a0f02a754d0866bfaf58208aebcaa295\n"
    },
    {
      "commit": "e63db27db913f1a88e2095a1ee8239b2bb9124e8",
      "tree": "893dee6783bca6717259321a6e4ba029c9c123e2",
      "parents": [
        "07b8441303ea82fca3cb85d71ecf8752d73cedd7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 15:36:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 17:07:49 2014 -0700"
      },
      "message": "Break apart header files.\n\nCreate libart-gtest for common runtime and compiler gtest routines.\nRename CompilerCallbacksImpl that is quick compiler specific.\nRename trace clock source constants to not use the overloaded profiler term.\n\nChange-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933\n"
    },
    {
      "commit": "0025a86411145eb7cd4971f9234fc21c7b4aced1",
      "tree": "933b8b96ea970c23a7b3ce313c7c6d46f807dadd",
      "parents": [
        "7fb36ded9cd5b1d254b63b3091f35c1e6471b90e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 11 08:26:40 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 11 08:26:40 2014 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Add implicit null and stack checks for x86\"\"\"\n\nBroke the build.\n\nThis reverts commit 7fb36ded9cd5b1d254b63b3091f35c1e6471b90e.\n\nChange-Id: I9df0e7446ff0913a0e1276a558b2ccf6c8f4c949\n"
    },
    {
      "commit": "7fb36ded9cd5b1d254b63b3091f35c1e6471b90e",
      "tree": "eb1e3b96efd67cc6b84a6f7e35522f33973ca8db",
      "parents": [
        "93279da4a8475d187a0a2e75d50c88def5b4b8a5"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 02:05:10 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 21:24:47 2014 +0000"
      },
      "message": "Revert \"Revert \"Add implicit null and stack checks for x86\"\"\n\nFixes x86_64 cross compile issue.  Removes command line options\nand property to set implicit checks - this is hard coded now.\n\nThis reverts commit 3d14eb620716e92c21c4d2c2d11a95be53319791.\n\nChange-Id: I5404473b5aaf1a9c68b7181f5952cb174d93a90d\n"
    },
    {
      "commit": "8c1b5f71a8005743756206120624121d7678381f",
      "tree": "8cc8f170ac94ca2018d2e6e3e24eeeb3ee7f97f3",
      "parents": [
        "070dfc4cebb9772a646382be9751d8f4c6b7d69a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 09 22:02:36 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 09 23:46:42 2014 -0700"
      },
      "message": "Missed use of android_atomic and thread state_.\n\nMove to using art::Atomic, add necessary FetchAnd... operations to art::Atomic.\n\nChange-Id: I32f1cdc4e0a2037b73f459bf4bb4d544f357f41b\n"
    },
    {
      "commit": "b8e087e0dfd619df90cbb56534478a60bc859ebf",
      "tree": "f6f4e896935b02c68a40ae1410edb08f7296cad9",
      "parents": [
        "43b6fe0270477cd47f8dd8b064d006961a44be54"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 09 21:12:06 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 09 21:24:04 2014 -0700"
      },
      "message": "Move thread state to art::Atomic.\n\nLeaves the CAS operations as relaxed although art::Atomic treats relaxed CAS\nas a strong CAS when not compiling with clang.\n\nChange-Id: I6d37c22173540d166b624385e52e4ad05e592adc\n"
    },
    {
      "commit": "3d14eb620716e92c21c4d2c2d11a95be53319791",
      "tree": "aadce4d6bb70e549b74b537c6f75617cf533576a",
      "parents": [
        "34e826ccc80dc1cf7c4c045de6b7f8360d504ccf"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 01:54:57 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 01:54:57 2014 +0000"
      },
      "message": "Revert \"Add implicit null and stack checks for x86\"\n\nIt breaks cross compilation with x86_64.\n\nThis reverts commit 34e826ccc80dc1cf7c4c045de6b7f8360d504ccf.\n\nChange-Id: I34ba07821fc0a022fda33a7ae21850957bbec5e7\n"
    },
    {
      "commit": "34e826ccc80dc1cf7c4c045de6b7f8360d504ccf",
      "tree": "76901cff2cddd6d30cb7a4e83ad4e0c9bb673fe1",
      "parents": [
        "c21dc06adc8c8447561208a3fb72ccf6d0443613"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu May 29 08:20:04 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 09 16:19:59 2014 -0700"
      },
      "message": "Add implicit null and stack checks for x86\n\nThis adds compiler and runtime changes for x86\nimplicit checks.  32 bit only.\n\nBoth host and target are supported.\nBy default, on the host, the implicit checks are null pointer and\nstack overflow.  Suspend is implemented but not switched on.\n\nChange-Id: I88a609e98d6bf32f283eaa4e6ec8bbf8dc1df78a\n"
    },
    {
      "commit": "a9d8c4ce62fff49580fa70d3fcb3aee45344d8ca",
      "tree": "763c504dcac3f1b68ed5b8a148643fb3030bfaef",
      "parents": [
        "0da09a026fb6c612e659dc782312987b4515f472"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 07 21:38:36 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 07 21:51:56 2014 -0700"
      },
      "message": "BaseMutex::IsExclusiveHeld should only be called on self.\n\nFix issue in Thread::DumpState of lock dumping calling IsExclusiveHeld on a\nthread that isn\u0027t self causing intermittent crashes of ThreadStress oat test.\n\nBug: 15446488\nChange-Id: I86924397a4e21ce10a95ea2a737d7bfbcb8ffe28\n"
    },
    {
      "commit": "86797a791d692f81def5c1b5f0918992c49ed122",
      "tree": "09cb46c5aa56e39a6399e3f3620dc2047948b872",
      "parents": [
        "29978887552542e3b7e7792070dad06392377648"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Thu Jun 19 16:17:56 2014 +0100"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 30 14:00:23 2014 -0700"
      },
      "message": "AArch64: Add memcmp16() for Arm64; ensure xSELF not clobbered\n\nThis patch modifies memcmp() to memcmp16(). Please note that this\nimplementation of memcmp16() is based on the bionic\u0027s memcmp().\n\nHowever, to reflect a recent specification change, the file has been\nmodified to respect the new String.compareTo() behavior.\n\nA test for memcmp16() has been added. The string_compareto test in\nstub_test has been changed to invoke __memcmp16 in assembly stubs.\n\nAdd artIsAssignableFromCode to the list of native downcalls to\nstore and reload x18. Remove CheckSuspendFromCode, as it is unused.\n\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\nChange-Id: Ie0b5425ecfb62906d29a5d02e84c7e07ffb34a11\n"
    },
    {
      "commit": "eef2e54113ba10cd76ddc368b928a2864401700e",
      "tree": "ede11956791865e30fe45fbf24eb87e8c1212ba5",
      "parents": [
        "b9d11f7e2f60bdebfd2ece34e01ecc789921837d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 24 22:48:01 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 24 22:48:01 2014 -0700"
      },
      "message": "Weaken condition to dump a thread\u0027s stack in a debug build.\n\nIf the current thread isn\u0027t suspended its also ok to dump the stack.\nBug: 14229281\n\nChange-Id: I2810ea79bc4330bb6e9616436d74076b5997c20b\n"
    },
    {
      "commit": "8d16f203d40ab4018986baa018e52185ad05dae6",
      "tree": "a70a734448245abc4138eddea84d14e7dfbb286d",
      "parents": [
        "2d2d6bb1ff8692efdddf104dabfb4a2d39877ff6",
        "ea2e1bd713ca8295ba4fcd01e77a3ce532ea61e4"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jun 20 19:30:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 20 02:09:57 2014 +0000"
      },
      "message": "Merge \"Add more read barriers for JNI roots.\""
    },
    {
      "commit": "ea2e1bd713ca8295ba4fcd01e77a3ce532ea61e4",
      "tree": "d41be4b08041c5a2b1af626d8cdf6b69280723d5",
      "parents": [
        "241fd1192dfc0f7322660343179f9fc0591ed9ff"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jun 18 13:47:35 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jun 20 11:23:58 2014 -0700"
      },
      "message": "Add more read barriers for JNI roots.\n\nTo make it possible to concurrently scan the JNI global roots (that\nis, the roots visited by JavaVMExt::VisitRoots()), add read barriers\nto the indirect reference table and the reference table.\n\nAlso, add read barriers to the jmethodID/jfieldID decode routines\n(ScopedObjectAccessAlreadyRunnable::DecodeField/DecodeMethod) so that\nwe can concurrently handle (encoded) fields and methods.\n\nBug: 12687968\nChange-Id: I3df4e4e622a572ff0ea8d44b2dc70a4d6b3ba058\n"
    },
    {
      "commit": "7cd26f355ba83be75b72ed628ed5ee84a3245c4f",
      "tree": "94152cdd06143bec8c5491dba354cb78214b48c3",
      "parents": [
        "0c29909cbde112bc9c04da4ce81421e1a0b39f36"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 18 17:01:15 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 18 17:11:51 2014 -0700"
      },
      "message": "ART: Target-dependent stack overflow, less check elision\n\nRefactor the separate stack overflow reserved sizes from thread.h\ninto instruction_set.h and make sure they\u0027re used in the compiler.\n\nRefactor the decision on when to elide stack overflow checks:\nespecially with large interpreter stack frames, it is not a good\nidea to elide checks when the frame size is even close to the\nreserved size. Currently enforce checks when the frame size is\n\u003e\u003d 2KB, but make sure that frame sizes 1KB and below will elide\nthe checks (number from experience).\n\nBug: 15728765\nChange-Id: I016bfd3d8218170cbccbd123ed5e2203db167c06\n"
    },
    {
      "commit": "9ae7672073c588f6fc85052260533b7839775ee3",
      "tree": "ef2a59c0f7b9d2feed893fd39215604fff05a852",
      "parents": [
        "3283ade469f515f89d70cf47b6ac6fe1814147f2",
        "c5f17732d8144491c642776b6b48c85dfadf4b52"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 11 17:29:23 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 10 22:15:14 2014 +0000"
      },
      "message": "Merge \"Remove deprecated WITH_HOST_DALVIK.\""
    },
    {
      "commit": "c5f17732d8144491c642776b6b48c85dfadf4b52",
      "tree": "811daa488ae5ee5dfd9b3b73bd210bc1506e5ca1",
      "parents": [
        "08654d40cdd256f6a6c8619bf06d04d4c819714a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 05 20:48:42 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 10 23:19:29 2014 -0700"
      },
      "message": "Remove deprecated WITH_HOST_DALVIK.\n\nBug: 13751317\nFix the Mac build:\n - disable x86 selector removal that causes OS/X 10.9 kernel panics,\n - madvise don\u0027t need does zero memory on the Mac, factor into MemMap\n   routine,\n - switch to the elf.h in elfutils to avoid Linux kernel dependencies,\n - we can\u0027t rely on exclusive_owner_ being available from other pthread\n   libraries so maintain our own when futexes aren\u0027t available (we\n   can\u0027t rely on the OS/X 10.8 hack any more),\n - fix symbol naming in assembly code,\n - work around C library differences,\n - disable backtrace in DumpNativeStack to avoid a broken libbacktrace\n   dependency,\n - disable main thread signal handling logic,\n - align the stack in stub_test,\n - use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables.\n\nNot all host tests are passing on the Mac with this change. dex2oat\nworks as does running HelloWorld.\nChange-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3\n"
    },
    {
      "commit": "9f1020305292a21fd14a402b189c765a125226ab",
      "tree": "6b730cbe56ded370d1b4293629826ad2c7b06f7f",
      "parents": [
        "bc72903b909f5147b8cb207f3e5d02a8ef85e4e7"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri May 23 08:59:42 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Jun 11 14:29:00 2014 +0200"
      },
      "message": "Fix exception reporting from interpreter\n\nTo comply with JDWP exception report rules, we must report an exception at the\nlocation of the throw (or the first instruction encountered after a native\ncall). To do this, we use the CatchLocationFinder visitor to look for a catch\nhandler until we reach a native frame or the top frame.\n\nBecause interpreter handles pending exception on a method-by-method basis, we\nneed a flag to remember we already reported the exception and avoid reporting\nit multiple times when unwinding methods. The drawback is we need to maintain\nthe state of this flag. We clear it when the exception is cleared. In the case\nwe temporarily clear the exception (when finding a catch handler for instance),\nwe restore the flag to its previous value at the same time we restore the\npending exception.\n\nBump oat version to force recompilation because we modify Thread offsets.\n\nBug: 14402770\nChange-Id: Ic059c58f80b2023b118038301f8f0a24f1e18241\n"
    },
    {
      "commit": "4d0589c90971e19c25894414ae7da579269e1fe2",
      "tree": "0bb8a8bea051cfee85e26719eaf4045da9fb2132",
      "parents": [
        "69d57a89595c7c0fba7b7f7b7c6b431a92137215"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 10 16:10:56 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 10 16:21:33 2014 -0700"
      },
      "message": "ART: Move __memcmp16 from Bionic to ART\n\nHandle __memcmp16 / MemCmp16 in ART. Import assembly implementations\nfor arm and mips from Bionic. Use a generic C version for all other\nplatforms.\n\nRemoves the memcmp16 quick entrypoint, as it is never used. Bump\nthe oat version and update thread.cc and checks to reflect the\nstructural change.\n\nChange-Id: I54a5a1da2a0a43ef271c8aeda0bf2276b8b11ac6\n"
    },
    {
      "commit": "bfd9a4378eacaf2dc2bbe05ad48c5164fc93c9fe",
      "tree": "3d3f667c8232a9c1bb6fe9daea0d364f9ae01d8c",
      "parents": [
        "2e1ca953c7fb165da36cc26ea74d3045d7e272c8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 21 17:43:44 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 09 12:46:32 2014 -0700"
      },
      "message": "Change MethodHelper to use a Handle.\n\nAdded ConstHandle to help prevent errors where you modify the value\nstored in the handle of the caller. Also fixed compaction bugs\nrelated to not knowing MethodHelper::GetReturnType can resolve types.\nThis bug was present in interpreter RETURN_OBJECT.\n\nBug: 13077697\n\nChange-Id: I71f964d4d810ab4debda1a09bc968af8f3c874a3\n"
    },
    {
      "commit": "9db911eb76976fc1c73c8e563beb3620f1cadf99",
      "tree": "0d9fa7344f7d356fedbbfeeff3cd8eb289e0435f",
      "parents": [
        "4eef72bdf5fd83e7361fb11feaf5a40121ede03f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 04 11:23:58 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 04 12:03:48 2014 -0700"
      },
      "message": "Print mutexes held in Thread::Dump.\n\nShould help finding and fixing thread suspend timeout issues.\n\nBug: 15328839\nChange-Id: I30a10529cec0716c7571a0318e9f66be54734fd8\n"
    },
    {
      "commit": "2a0d4ec9532a89abe722e5babdfbb846ffaad721",
      "tree": "1ec8b9aaf86ad227e9f1cbbed52cb3bf86ee0973",
      "parents": [
        "fa5fda3ca52678b6fa739aad46e5c6ea08ae301e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 02 22:05:22 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 04 10:54:12 2014 -0700"
      },
      "message": "ART: Fix forbidden thread state change in interpreter\n\nWhile loading a type for assignability, it might happen that it\u0027s\nnot available yet locally and must be resolved. Formerly, we\ndisallowed a state change to ensure no GC taking place while a new\nshadow frame has not been pushed on the stack yet.\n\nAs a fix, allow a \"shadow frame under construction\" in the thread,\nwhich is visited during GC.\n\nChange-Id: I973487a46b0e9e21fd6d49099d713b58f06d3b45\n"
    },
    {
      "commit": "5cf98196d488437acd1e989c08a554ef697fded1",
      "tree": "dd44bc0120562169b701e80dbec413a179862beb",
      "parents": [
        "b7f02280f7f56ae94fe7f01e161be0b725b6e4a9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 29 21:31:50 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 30 12:46:10 2014 -0700"
      },
      "message": "Don\u0027t report down-calls as unhandled exceptions.\n\nBug: 15310540\nAlso, narrow scope of catch/deoptimize stack visitors that are specific to\nquick exception delivery.\n\nChange-Id: Ib13a006ce1347acb93a36b0186550d4c3ec2034b\n"
    },
    {
      "commit": "cf4035a4c41ccfcc3e89a0cee25f5218a11b0705",
      "tree": "323d9e98e6129c67e464a3e6857ee02593a2f2c2",
      "parents": [
        "29b53d3d715b1ec19349e8cbf7c5e4ff529bd5fe"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 28 22:43:01 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 29 20:50:49 2014 -0700"
      },
      "message": "ART: Use StackReference in Quick Stack Frame\n\nThe method reference at the bottom of a quick frame is a stack\nreference and not a native pointer. This is important for 64b\narchitectures, where the notions do not coincide.\n\nChange key methods to have StackReference\u003cmirror::ArtMethod\u003e*\nparameter instead of mirror::ArtMethod**. Make changes to\ninvoke stubs for 64b archs, change the frame setup for JNI code\n(both generic JNI and compilers), tie up loose ends.\n\nTested on x86 and x86-64 with host tests. On x86-64, tests succeed\nwith jni compiler activated. x86-64 QCG was not tested.\n\nTested on ARM32 with device tests.\n\nFix ARM64 not saving x19 (used for wSUSPEND) on upcalls.\n\nTested on ARM64 in interpreter-only + generic-jni mode.\n\nFix ARM64 JNI Compiler to work with the CL.\n\nTested on ARM64 in interpreter-only + jni compiler.\n\nChange-Id: I77931a0cbadd04d163b3eb8d6f6a6f8740578f13\n"
    },
    {
      "commit": "196851b634a5bfdd8ab3fb59a320e550b21b0f4d",
      "tree": "f9fca2858b6213163d358c2eb2b2f88aa88a027b",
      "parents": [
        "ea0b6e284cab12eed88eebf6aa19e6292af57389"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu May 29 12:16:04 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu May 29 12:37:49 2014 -0700"
      },
      "message": "Add read barriers for the weak roots in the JNI weak globals.\n\nBug: 12687968\nChange-Id: Ic265a0e162e8cc9edc4ab7fa34f8afd5ce968d08\n"
    },
    {
      "commit": "055c29fd0f752328981f1b7ccadb1862eecedd40",
      "tree": "4eda9505576549f94e5810a4a45d8356395cf400",
      "parents": [
        "ab5b370e44629332e73ffd66bfe8b8a924236c5c"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue May 27 13:59:04 2014 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue May 27 13:59:04 2014 -0700"
      },
      "message": "Art compiler: remove unnecessary sqrt call\n\nFor reasons lost in the mists of time, the Dalvik JIT tested\nthe results of an inlined sqrt for NaN on Arm targets, and then\ncalled an out-of-line routine to recompute if true.  The Quick\ncompiler inherited this behavior.  It is not necessary, and the CL\npurges it (along with the out-of-line sqrt entrypoint).\n\nChange-Id: I8c8fa6feacf9b7c3b9e190dfc6f728932fd948c6\n"
    },
    {
      "commit": "4c1c510bea6f20f4d8b09e15547cd2967ad51c88",
      "tree": "f3d15233294e46db0f43e83997e71a8bb990745e",
      "parents": [
        "fdfe733d8fad10fb8370f468fbd5905416f338fa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 14 16:51:16 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 20 14:48:56 2014 +0100"
      },
      "message": "Improve stack walk performance.\n\nMove a few functions from art_method.cc to art_method-inl.h\nand introduce new overloads that take already known partial\nresults; do not rely on the compiler to magically merge the\nidentical but non-trivial paths. The partial results are\nDCHECKed to be correct.\n\nChange-Id: I342c3001bbff08a2bbbb9a7b62ae67188ad8cffc\n"
    },
    {
      "commit": "607fa7b07233a7233ebe21bba8f3e7c1925ae0f2",
      "tree": "a04f1074331ac82ad077044e3f373312f61e5901",
      "parents": [
        "1dc387152a84193937bd1f88e9e10fff6449d695",
        "700a402244a1a423da4f3ba8032459f4b65fa18f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue May 20 05:29:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 20 05:29:04 2014 +0000"
      },
      "message": "Merge \"Now we have a proper C++ library, use std::unique_ptr.\""
    },
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "2b7c4d196c8abe32f4ca633534917da9de53c359",
      "tree": "f14dc45f53d5681a5c0e57b8a8cc6b35eee6e896",
      "parents": [
        "84e524207b23d58a1b1e5f4443000ccac97c4184"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 19 10:52:16 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 19 15:19:28 2014 -0700"
      },
      "message": "Don\u0027t get and restore thread state for ScopedFastNativeObjectAccess.\n\nBefore we would ensure that we were runnable for fast native object\naccess. However, these are done when you are already runnable.\n\nChange-Id: Ia4c6e4c83d146fe2a988b37b3133ca46b0f0fa42\n"
    },
    {
      "commit": "229dd50d041917970045595e022ed98862b7d464",
      "tree": "4c6d0b2dc5f6dea79a0f3e3789df30c00b1e13c5",
      "parents": [
        "de1129a26e0474ea8bb9112938ebb867163969fd",
        "92d1a666534aa98b173bb33dc5dba86b2d48aedb"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Sat May 17 00:08:37 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat May 17 00:08:37 2014 +0000"
      },
      "message": "Merge \"Visit methods in stack frames during root visits.\""
    },
    {
      "commit": "92d1a666534aa98b173bb33dc5dba86b2d48aedb",
      "tree": "864887bc5e1220152998874d3be861b31a49b0fa",
      "parents": [
        "3b2bcbf9daf39f4cece7fde1186f3fa494000ed9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu May 15 21:43:59 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 16 13:37:45 2014 -0700"
      },
      "message": "Visit methods in stack frames during root visits.\n\nThis is necessary for a Baker-style read barrier to-space invariant to\nhold. That is, an object either needs to be marked/forwarded as root\nor it must be accessed only through a read barrier by mutators. Since\nstack frames have direct pointers to methods that a mutator can access\nwithout a read barrier, stack frame methods have to be visited as\nroot, which makes sense as stack frames are thread roots. This is the\ncase even if methods do not move as they have to be marked \u0027gray\u0027 for\nthe objects pointed to by them, which can move, to be recursively\nmarked/forwarded.\n\nThis also puts us in the right direction toward moving methods (and\nfields) in the future.\n\nBug: 12687968\nChange-Id: Id32b913c021a140073deea9149a8782e8f308303\n"
    },
    {
      "commit": "db2633ce0358c704f97130a94b582602cb01d14a",
      "tree": "ab941b728fe4343eb9872abc85755640bf059800",
      "parents": [
        "f59c6dda4928cfb05d32a56fd161e3f86a9ca560"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 16 09:59:29 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 16 10:36:37 2014 -0700"
      },
      "message": "Change ObjectLock to take Handle instead of Handle pointer.\n\nChange-Id: I9abdcdc5c9c9174634336b9250ab24c6aee434ec\n"
    },
    {
      "commit": "eb8167a4f4d27fce0530f6724ab8032610cd146b",
      "tree": "bcfeaf13ad78f2dd68466bbd0e20c71944f7e854",
      "parents": [
        "6fb66a2bc4e1c0b7931101153e58714991237af7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 07 15:43:14 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 13 14:45:54 2014 -0700"
      },
      "message": "Add Handle/HandleScope and delete SirtRef.\n\nDelete SirtRef and replaced it with Handle. Handles are value types\nwhich wrap around StackReference*.\n\nRenamed StackIndirectReferenceTable to HandleScope.\n\nAdded a scoped handle wrapper which wraps around an Object** and\nrestores it in its destructor.\n\nRenamed Handle::get -\u003e Get.\n\nBug: 8473721\n\nChange-Id: Idbfebd4f35af629f0f43931b7c5184b334822c7a\n"
    },
    {
      "commit": "7624d25dad2d1ba25969ae704fccf68649103ae5",
      "tree": "de72194b76a4e23e0b15ec4085447ae7e4425815",
      "parents": [
        "e1910f1d802dff79bba5ef61e1c4fd0b95f6e5b0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 02 14:40:15 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 13 11:43:22 2014 +0100"
      },
      "message": "Move quick frame info to OatQuickMethodHeader.\n\nRename OatMethodHeader to OatQuickMethodHeader, move frame\ninfo from OatMethodOffsets to OatQuickMethodHeader. Retrieve\nthe info from other places for non-quick methods (portable\ncompiled bytecode or jni stub, generic jni, runtime,\nabstract and proxy).\n\nThis change has a libcore/ companion CL\n  \"Remove ArtMethod\u0027s quick fields for frame size and spills.\"\n  https://android-review.googlesource.com/94164\n\nBug: 11767815\nChange-Id: I0e31a7875d76732e1ec479c86b9b5ca01203507f\n"
    },
    {
      "commit": "f92a45609352fb1dc3460a07d83284b353270221",
      "tree": "0f740b02b473726d02fe92813f229ae5d29e5c4a",
      "parents": [
        "ad1a8377a2cf97c9043c6158e4d080105f5e0d61",
        "c56057e40938c587a74984651a510e320a8cb4fd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 09 23:47:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 09 23:47:08 2014 +0000"
      },
      "message": "Merge \"Add lockless SynchronizedGet for indirect reference table.\""
    },
    {
      "commit": "c56057e40938c587a74984651a510e320a8cb4fd",
      "tree": "6595bb7aa27ecf91dc9121d25722b40dec803ee6",
      "parents": [
        "0b8027003514c4fa6a850e5087076e991daaf4c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 04 13:18:58 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 05 15:46:09 2014 -0700"
      },
      "message": "Add lockless SynchronizedGet for indirect reference table.\n\nUsed for decoding global references without holding locks.\n\nResults on JniCallback:\nBefore: 615ms (3 samples).\nAfter: 585ms (3 samples).\n\nChange-Id: Ifcac8d0359cf658d87f695c6eb869d148af002e5\n"
    },
    {
      "commit": "5cd33753b96d92c03e3cb10cb802e68fb6ef2f21",
      "tree": "b2217cb48e1f1db1aae7a92f8d5dbac5f2d95603",
      "parents": [
        "8ea5baa10b04e9dbd0f0cf14b0358fe8b956bb2e"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Apr 15 15:57:58 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon May 05 12:44:15 2014 -0700"
      },
      "message": "Handle implicit stack overflow without affecting stack walks\n\nThis changes the way in which implicit stack overflows are handled\nto satisfy concerns about changes to the stack walk code.\n\nInstead of creating a gap in the stack and checking for it in\nthe stack walker, use the ManagedStack infrastructure to concoct\nan invisible gap that will never be seen by a stack walk.\n\nAlso, this uses madvise to tell the kernel that the main stack\u0027s\nprotected region will probably never be accessed, and instead\nof using memset to map the pages in, use memcpy to read from\nthem.  This will save 32K on the main stack.\n\nAlso adds a \u0027signals\u0027 verbosity level as per a review request.\n\nBug: 14066862\nChange-Id: I5257305feeaea241d11e6aa6f021d2a81da20b81\n"
    },
    {
      "commit": "c45b8b582be5c98941ca3869fcdc9a08d520da41",
      "tree": "c84c980418c224dd317f2962fcfbd18d9785c3b0",
      "parents": [
        "eafef7db77cfbe6bc05d9b07221c198bc8ceaa8a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat May 03 01:39:59 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat May 03 22:52:59 2014 -0700"
      },
      "message": "Create stack traces in unstarted runtimes.\n\nUse to diagnose failed initialization in dex2oat of boot (-verbose:compiler).\nFix identity hashCode, ArtMethod.getMethodName, IntegralToString.convertInt and\nuse of Void when called from a unstarted runtime.\n\nChange-Id: I2d536174b59e2e5f19519f93fc6b5916652fb6cd\n"
    },
    {
      "commit": "0651d41e41341fb2e9ef3ee41dc1f1bfc832dbbb",
      "tree": "ad060fe7f37f4958d15d15d868e0cf6fb074d2cb",
      "parents": [
        "adcfc69aa94cc1d406ef78e194b1ac36e389ad95"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 29 14:37:57 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 30 15:23:36 2014 -0700"
      },
      "message": "Add thread unsafe allocation methods to spaces.\n\nUsed by SS/GSS collectors since these run with mutators suspended and\nonly allocate from a single thread. Added AllocThreadUnsafe to\nBumpPointerSpace and RosAllocSpace. Added AllocThreadUnsafe which uses\ncurrent runs as thread local runs for a thread unsafe allocation.\nAdded code to revoke current runs which are the same idx as thread\nlocal runs.\n\nChanged:\nThe number of thread local runs in each thread is now the the number\nof thread local runs in RosAlloc instead of the number of size\nbrackets.\n\nTotal GC time / time on EvaluateAndApplyChanges.\nTLAB SS:\nBefore: 36.7s / 7254\nAfter: 16.1s / 4837\n\nTLAB GSS:\nBefore: 6.9s / 3973\nAfter: 5.7s / 3778\n\nBug: 8981901\n\nChange-Id: Id1d264ade3799f431bf7ebbdcca6146aefbeb632\n"
    },
    {
      "commit": "b0fa5dc7769c1e054032f39de0a3f6d6dd06f8cf",
      "tree": "839d13ebfa7170967dd9b4abd434b7abda53da99",
      "parents": [
        "948740c1938860df055ddc801f20fd1707331e38"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 28 16:47:08 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 29 14:36:28 2014 -0700"
      },
      "message": "Force inlining on trivial accessors.\n\nMake volatility for GetFieldObject a template parameter.\nMove some trivial mirror::String routines to a -inl.h.\n\nBug: 14285442\n\nChange-Id: Ie23b11d4f18cb15a62c3bbb42837a8aaf6b68f92\n"
    },
    {
      "commit": "deeb21bbe114193477755074a1e31595abafd5c2",
      "tree": "631e3ec8591392057b4bf831e28487b39f8e0d20",
      "parents": [
        "cb905718826da268d8d8e09296806256f202c9f4",
        "714f175bd66d03225927a84f3d5dbc923c5a3e7e"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 29 07:25:00 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 29 07:25:00 2014 +0000"
      },
      "message": "Merge \"Visit deoptimized shadow frames as roots\""
    },
    {
      "commit": "714f175bd66d03225927a84f3d5dbc923c5a3e7e",
      "tree": "093c8564827484af598bd116c7560b1893910e3d",
      "parents": [
        "d55e9b1a9f45c19cd7b376a8839ce37f86c66a64"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Apr 28 15:03:08 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 29 09:04:18 2014 +0200"
      },
      "message": "Visit deoptimized shadow frames as roots\n\nDuring deoptimization, we create shadow frames but do not attach them to the\nstack until we transition to interpreter mode. If a GC happens before that,\nthese shadow frames are not visited by GC so they may contain stale references.\n\nThis CL addresses this issue by visiting the shadow frames \"under contruction\"\nin Thread::VisitRoots so we correctly update all references they hold.\n\nTo make them visible, we now save the top shadow frame (the first one created)\nin the field Thread::tls_ptr_sized_values::deoptimization_shadow_frame. This\nfield will then be cleared when transitioning to interpreter mode.\n\nBug: 14324885\nChange-Id: Ib213ddc80f19cfcdfcec6f20acaa7f1a0e9ce2c1\n"
    },
    {
      "commit": "73d1e17b3afc7d5e56184f90bf819dc64956448a",
      "tree": "6fee546dcebc0c8979a62be7e75c337f79b2ac2e",
      "parents": [
        "e8256e7773a230337c3d137cbf0365f737820405"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 11 17:53:48 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 25 14:08:49 2014 -0700"
      },
      "message": "Enable reading page map without lock in RosAlloc::BulkFree\n\nEnabling this flag greatly reduces how much time was spent in the GC.\nIt was not done previously since it was regressing MemAllocTest. With\nthese RosAlloc changes, the benchmark score no longer regresses after\nwe enable the flag.\n\nChanged Run::AllocSlot to only have one mode of allocation. The new\nmode is finding the first free bit in the bitmap. This was\npreviously the slow path but is now the fast path. Some optimizations\nwhich enabled this include always having the alloc bitmap bits which\ncorrespond to invalid slots be set to 1. This prevents us from needing\na bound check since we will never end up allocating there.\n\nChanged revoking thread local buffer to point to an invalid run. The\ninvalid run is just a run which always has all the allocation bits set\nto 1. When a thread attempts to do a thread local allocation from here\nit will always fail and go slow path. This eliminates the need for a\nnull check for revoked runs.\n\nChanged zeroing of memory to happen during free, AllocPages should\nalways return zeroed memory. Added prefetching which happens when we\nallocate a run.\n\nSome refactoring to reduce duplicated code.\n\nErgonomics changes: Changed kStickyGcThroughputAdjustment to 1.0,\nthis helps reduce GC time.\n\nMeasurements (3 samples per benchmark):\nBefore: MemAllocTest scores: 3463, 3445, 3431\nEvaluateAndApplyChanges score | total GC time\nIter 1: 3485, 23.602436s\nIter 2: 3434, 22.499882s\nIter 3: 3483, 23.253274s\n\nAfter: MemAllocTest scores: 3495, 3417, 3409\nEvaluateAndApplyChanges score | total GC time:\nIter 1: 3375, 17.463462s\nIter 2: 3358, 16.185188s\nIter 3: 3367, 15.822312s\n\nBug: 8788501\nBug: 11790317\nBug: 9986565\nChange-Id: Ifd273a054824028dabed27c07c081dde1816f93c\n"
    },
    {
      "commit": "fd3077e4b9ebadd281777310d26e64443858f653",
      "tree": "c63911af29580ab8c0fc8dd29171e626871449aa",
      "parents": [
        "a08ec9b372d4f5e918b3d68499fbd1731180cd98"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 23 10:32:43 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 25 10:36:05 2014 +0200"
      },
      "message": "Refactor exception handling for deoptimization\n\nThis CL refactors the exception handling (on the quick side) by isolating the\nsearch of catch handler and the preparation of deoptimization.\n\nWe rename the CatchFinder class to QuickExceptionHandler so it\u0027s less specific\nto catch handler search.\n\nFinding catch handler happens in QuickExceptionHandler::FindCatch. Since the\nCatchBlockStackVisitor resolves exception types, it may cause thread suspension\nand breaks the assertion current thread can\u0027t be suspended. Therefore, we place\nthe exception in a SirtRef (while it is detached from the current thread) and\nremove the thread suspension assertion.\n\nDeoptimization now happens in QuickExceptionHandler::DeoptimizeStack. It uses\nthe new DeoptimizeStackVisitor class to create shadow frames.\n\nWe also add the Thread::GetDeoptimizationException method to get the definition\nof the fake exception in only one place.\n\nChange-Id: I01b19fa72af64329b5c3b6c7f0c3339d2d724978\n"
    },
    {
      "commit": "4af159bfcc66c6e90a2aee4a2035a996a399e7ed",
      "tree": "9bc7f4ac4f6ce93be0e9f2bc8db6ccdb9d972c36",
      "parents": [
        "d299898a55f41ccf78b865e153ae91321229353b",
        "987560fee798e48fb725c44b796d8ca7a5872ad6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 23:03:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 22 23:03:01 2014 +0000"
      },
      "message": "Merge \"Remove support for app JNI workarounds.\""
    },
    {
      "commit": "987560fee798e48fb725c44b796d8ca7a5872ad6",
      "tree": "d61f35a129847f3f5fbed1436649e75acd940b3f",
      "parents": [
        "44b0053fdb7ad8a30138d29f714172a7dc69efb8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 11:42:59 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 14:52:19 2014 -0700"
      },
      "message": "Remove support for app JNI workarounds.\n\nChange-Id: I4396df7e93fcace4b5b19c2c387e5c30089182a6\n"
    },
    {
      "commit": "a2cee18799d7e61adb037a4219adb23fef7d022b",
      "tree": "214a6d6d4682196aa0e2ebcb5a0cc7bcf3eec2d3",
      "parents": [
        "ed0bc0bbf26f6751f31213d24ccdac49766e93ff"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 16 19:13:59 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 18 15:32:15 2014 -0700"
      },
      "message": "Modify unwind to comply with stack parser tools.\n\nBug: 14081592\n\nChange-Id: I6906b2575c74d64f1c3ba7602779b3a789de1c69\n"
    },
    {
      "commit": "4d7f61d44a732cfbc8573e5d93364983fd746888",
      "tree": "0ad34f9316227531696c01ba9b25a2175a5c5f65",
      "parents": [
        "425640d6fac3432a44e236a002e8401a7cd59c5c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 17 14:43:39 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 17 15:56:47 2014 -0700"
      },
      "message": "Use non volatile lock words in semispace collector.\n\nGSS FormulaEvaluationActions.EvaluateAndApplyChanges:\nBefore GC time: 9.1s\nAfter GC time: 7.98s\n\nFixed timing logger errors.\n\nChange-Id: I4193c6ccbbbe7a7220dfaabbf3472a5dcebae616\n"
    },
    {
      "commit": "63e8a68c9a2cdbbe9bfd8d200610119dd359ee59",
      "tree": "144c911b7d8da5b0047a5ce3f340de73cdc8b56d",
      "parents": [
        "a3eaf66b968270b938a2795fe55e778c55f1c24b"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Wed Apr 16 18:26:09 2014 +0700"
      },
      "committer": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Wed Apr 16 18:26:09 2014 +0700"
      },
      "message": "Fix thread join hangs\n\nCurrent implementation notifies only one of joining threads on thread exit.\nThis causes the other joining threads to hang.\n\nThis patch notifies all joining threads: just call NotifyAll() instead of Notify().\n\nChange-Id: If75f101d3d3d876f1aa7dcf537e56a37cc347803\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\n"
    },
    {
      "commit": "c7a966dbba6902618ff0959d604c05d7570df8c8",
      "tree": "9c29dc008ad24e97ba26d5734fc7db4a41f7ca52",
      "parents": [
        "22839a631bb3591a1c0037c388d51a4f18b5fb5e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 10 18:06:32 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 10 18:07:46 2014 -0700"
      },
      "message": "Prevent deadlocks in Runtime::Abort.\n\nIf we have the threads suspended, attempting to use a\nScopedObjectAccess causes a deadlock. We now specifically avoid this\nto prevent deadlocks.\n\nBug: 13747880\nChange-Id: I45fd3fff917da98b22970e5351a9e25b143a4eed\n"
    },
    {
      "commit": "43d8bb870fadd4775a8513a1df955cdf66ad4b92",
      "tree": "81aa7f1a154d7c318cbd9e2f17bdffa6f3d81404",
      "parents": [
        "a7b2826fa469c626ff2c3ff26fd848c28bccc092"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 03 09:57:36 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 03 10:30:44 2014 -0700"
      },
      "message": "Add monitor_enter_object as root.\n\nThe monitor enter object was not a root, this caused issues with\ncompactions since the object could move and then verify object would\nfail.\n\nBug: 13769139\nChange-Id: Ia732376fb9d1de8bf137ef9894cb2bb3241d8bb2\n"
    },
    {
      "commit": "2966e13d504a72d55c62bf864e183ec80703c699",
      "tree": "ce13371288e4a08e8b627eeafd18a5b9746ecec4",
      "parents": [
        "161f71ab4449047157ad3d967a3ed4f7c6e17249"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 02 08:34:36 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 02 08:36:46 2014 -0700"
      },
      "message": "Avoid debug check violation in thread registration.\n\nBug: 13757855\nChange-Id: Ied83a7fc43e2b9a89a8b99aa4f74069ef8a369b1\n"
    },
    {
      "commit": "1246d689dc3150bbee6c5e5628747a94fba5081e",
      "tree": "24fb2b8271cdc524855f52bbc94361dbf5f8c2f0",
      "parents": [
        "f689b93e904e062d83a7ae7e8cacce0b52af3323",
        "ee1d79a603c77c0667b27c075a983579d5c51f7e"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 02 07:45:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 02 07:45:52 2014 +0000"
      },
      "message": "Merge \"Cleanup transaction support\""
    },
    {
      "commit": "ee1d79a603c77c0667b27c075a983579d5c51f7e",
      "tree": "7b23516402105319ab4736cd179a1de9101eeb46",
      "parents": [
        "78bd9b2198f0ccc48036c1517b2d9a9023157dfb"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Feb 21 15:46:30 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 02 09:21:12 2014 +0200"
      },
      "message": "Cleanup transaction support\n\nUpdates Thread::CreateInternalStackTrace to support both transactional and\nnon-transactional modes using template.\n\nGeneralizes non-transactional mode for invariant fields (which are set only\nonce).\n\nRemoves ArrayLog::VisitRoots as we never create Array logs of ObjectArray. As\nObjectArray elements are set using Object::SetFieldObject, they are already\nrecorded in the object logs: the object is the array itself and the offset\ncorresponds to the element index in this array. And also checks we never log\nObjectArray in array logs.\n\nFixes location of thrown exception when calling native method during class\ninitialization.\n\nChange-Id: Idbc368d3b8292b85ff40bc8a7c559e085477bf89\n"
    },
    {
      "commit": "d803bc7ce255be6c16eaf6a8a58a742515e9da9f",
      "tree": "9d996494ae037ba99bb149927adfe961be68926b",
      "parents": [
        "8ce67ac16abcd25b376be622cbd20a34aec4a59d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 01 15:33:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 01 15:33:03 2014 -0700"
      },
      "message": "Fix ThreadStress, unify ANR lock descriptions.\n\nBug: 13323656\nChange-Id: I902825a847af9aa570ed79701409298e3532bebf\n"
    },
    {
      "commit": "c751fdcc9491c1b60c3db517fbc41bb98e92441f",
      "tree": "a59258cf4b9c46e928e547216554149635e6d4f2",
      "parents": [
        "e0309ad355e778fe692beb8968bf8aa7edbd3302"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 30 15:25:44 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 01 10:58:22 2014 -0700"
      },
      "message": "Add handler for printing java stack traces for compiled code SIGSEGV.\n\nAdded a new FaultHandler which attempts to print a java stack trace\nwhen a SIGSEGV occurse in generated code. This should help debugging\ncompiler and GC related heap corruption.\n\nBug: 13725693\nBug: 12934910\n\nChange-Id: Id54d83ea180c222eb86d449c61926e83f0b026ad\n"
    },
    {
      "commit": "dd7624d2b9e599d57762d12031b10b89defc9807",
      "tree": "c972296737f992a84b1552561f823991d28403f0",
      "parents": [
        "8464a64a50190c06e95015a932eda9511fa6473d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 14 17:43:00 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 01 08:24:16 2014 -0700"
      },
      "message": "Allow mixing of thread offsets between 32 and 64bit architectures.\n\nBegin a more full implementation x86-64 REX prefixes.\nDoesn\u0027t implement 64bit thread offset support for the JNI compiler.\n\nChange-Id: If9af2f08a1833c21ddb4b4077f9b03add1a05147\n"
    },
    {
      "commit": "f943914730db8ad2ff03d49a2cacd31885d08fd7",
      "tree": "885a781e5f8bd852e2c1615108ae7b17576a6567",
      "parents": [
        "cfd5acf281b0c509f86b13d73c6a8dfa3ea9922c"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Mar 27 15:10:22 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Mar 31 18:04:08 2014 -0700"
      },
      "message": "Implement implicit stack overflow checks\n\nThis also fixes some failing run tests due to missing\nnull pointer markers.\n\nThe implementation of the implicit stack overflow checks introduces\nthe ability to have a gap in the stack that is skipped during\nstack walk backs.  This gap is protected against read/write and\nis used to trigger a SIGSEGV at function entry if the stack\nwill overflow.\n\nChange-Id: I0c3e214c8b87dc250cf886472c6d327b5d58653e\n"
    },
    {
      "commit": "3b05e9ba874449dbff65b01b8781001f7d93eea6",
      "tree": "f341766bff83ebea510344c4857af493725d3f58",
      "parents": [
        "027f7fa539514d2a50b448de1de39ac307087483"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 25 09:29:43 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 25 13:56:58 2014 -0700"
      },
      "message": "Add missing debugger root visiting.\n\nBug: 13634574\nChange-Id: I2a76f6c43f1d0ad1922f06deb40a71ff651129fd\n"
    },
    {
      "commit": "c93c530efc175954160c3834c93961a1a946a35a",
      "tree": "32a389e2b4cfc3296075aed23f353b8d3042c9a5",
      "parents": [
        "faa93b3ab455492dad1a9d3fb630e3936d389c85"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 20 16:15:37 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 21 12:17:56 2014 -0700"
      },
      "message": "Revoke rosalloc thread-local buffers at the checkpoint.\n\nIn the mark sweep collector, rosalloc thread-local buffers were\nrevoked during the pause. Now, they are revoked at the thread\ncheckpoint, as opposed to during the pause, which appears to help\nreduce the pause time.\n\nIn Ritz MemAllocTest, the average sticky pause time went down ~20%\n(925 us -\u003e 724 us).\n\nBug: 13394464\nBug: 9986565\nChange-Id: I104992a11b46d59264c0b9aa2db82b1ccf2826bc\n"
    },
    {
      "commit": "88e46a35b4b898ec2032348a185d2b0b812b6ad9",
      "tree": "94a172b2ba723a8996db0de0dec7d85f46d99c61",
      "parents": [
        "4e81ffbf3bb8cd2851cd0a393682d514ab143c49"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 14 14:37:59 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 14 14:37:59 2014 -0700"
      },
      "message": "Remove unused variable and tidy test #includes.\n\nChange-Id: I0eaeea0d50f66302d632aab400cfa48dc301ef69\n"
    },
    {
      "commit": "53b8b09fc80329539585dcf43657bc5f4ecefdff",
      "tree": "cac0f82fbb89bd907104e3fed6c36203e11a3de0",
      "parents": [
        "0dea9872082bc3e576ed6cefed86b0d6c0c45ffd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 13 23:45:53 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 14 11:28:10 2014 -0700"
      },
      "message": "Refactor reflective method invocation.\n\nMove invocation code out of JNI internal into reflection, including ArgArray\ncode. Make reflective invocation use the ArgArray to build arguments rather\nthan allocating a jvalue[] and unboxing arguments into that.\nMove reflection part of jni_internal_test into reflection_test.\nMake greater use of fast JNI.\n\nChange-Id: Ib381372df5f9a83679e30e7275de24fa0e6b1057\n"
    },
    {
      "commit": "b373e091eac39b1a79c11f2dcbd610af01e9e8a9",
      "tree": "034d820c4829e0dcf6161473cc39f7250123bfaa",
      "parents": [
        "9545a446e99b22248099fe66f5f9431530c20851"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Feb 20 16:06:36 2014 -0800"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Mar 13 12:21:15 2014 -0700"
      },
      "message": "Implicit null/suspend checks (oat version bump)\n\nThis adds the ability to use SEGV signals\nto throw NullPointerException exceptions from Java code rather\nthan having the compiler generate explicit comparisons and\nbranches.  It does this by using sigaction to trap SIGSEGV and when triggered\nmakes sure it\u0027s in compiled code and if so, sets the return\naddress to the entry point to throw the exception.\n\nIt also uses this signal mechanism to determine whether to check\nfor thread suspension.  Instead of the compiler generating calls\nto a function to check for threads being suspended, the compiler\nwill now load indirect via an address in the TLS area.  To trigger\na suspend, the contents of this address are changed from something\nvalid to 0.  A SIGSEGV will occur and the handler will check\nfor a valid instruction pattern before invoking the thread\nsuspension check code.\n\nIf a user program taps SIGSEGV it will prevent our signal handler\nworking.  This will cause a failure in the runtime.\n\nThere are two signal handlers at present.  You can control them\nindividually using the flags -implicit-checks: on the runtime\ncommand line.  This takes a string parameter, a comma\nseparated set of strings.  Each can be one of:\n\nnone        switch off\nnull        null pointer checks\nsuspend     suspend checks\nall         all checks\n\nSo to switch only suspend checks on, pass:\n-implicit-checks:suspend\n\nThere is also -explicit-checks to provide the reverse once\nwe change the default.\n\nFor dalvikvm, pass --runtime-arg -implicit-checks:foo,bar\n\nThe default is -implicit-checks:none\n\nThere is also a property \u0027dalvik.vm.implicit_checks\u0027 whose value is the same\nstring as the command option.  The default is \u0027none\u0027.  For example to switch on\nnull checks using the option:\n\nsetprop dalvik.vm.implicit_checks null\n\nIt only works for ARM right now.\n\nBumps OAT version number due to change to Thread offsets.\n\nBug: 13121132\nChange-Id: If743849138162f3c7c44a523247e413785677370\n"
    },
    {
      "commit": "0f6784737882199197796b67b99e5f1ded383bee",
      "tree": "139888bdfad743c50e800ad46b9aec97ae3415d3",
      "parents": [
        "73a471336a9515fa7fdc5859e3c481ec451237a5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 10 16:18:37 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 10 18:02:07 2014 -0700"
      },
      "message": "Unify 64bit int constant definitions.\n\nLL and ULL prefixes are word size dependent, use the INT64_C and UINT64_C\nmacros instead.\n\nChange-Id: I5b70027651898814fc0b3e9e22a18a1047e76cb9\n"
    },
    {
      "commit": "e0dcd46314d07eeb332edea292f5110178e4e3d2",
      "tree": "d1060bc54e1ad26bad69a6e06662e643e75ce484",
      "parents": [
        "80a250f8862096b72e7357c12b40dc9d5310a475"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 08 15:21:04 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 09 02:17:46 2014 +0000"
      },
      "message": "JNI down call fixes.\n\nEnsure SIRT isn\u0027t accessed via quick callee save frame.\nSome tidying of code.\n\nChange-Id: I8fec3e89aa6d2e86789c60a07550db2e92478ca7\n"
    },
    {
      "commit": "aa00fe010eb7b61c2de82611ce3f6fc0918a4f9e",
      "tree": "53a1769024151ecd756b20ec4fec5d2733d59c9f",
      "parents": [
        "de46ed1ceb8272e65f780f041b52e7bbc03421d8",
        "c645f1ddb7c40bea6a38eda4b3f83f6b6dec405b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 20:09:48 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 07 20:09:49 2014 +0000"
      },
      "message": "Merge \"Add more VerifyObject calls.\""
    },
    {
      "commit": "c645f1ddb7c40bea6a38eda4b3f83f6b6dec405b",
      "tree": "de6141864c1c011216c19dd99a2c1e2bc442dd6d",
      "parents": [
        "a9d7be62735e3356cef7e8ed797c519134a17061"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 18:11:53 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 12:09:04 2014 -0800"
      },
      "message": "Add more VerifyObject calls.\n\nAdded verify object calls to SirtRef, IndirectReferenceTable,\nReferenceTable.\n\nRemoved un-needed verify object in ScopedObjectAccess / DecodeJObject\nsince object sources are handled.\n\nBug: 12934910\nChange-Id: I55a46a8ea61fed2a77526eda27fd2cce97a9b125\n"
    },
    {
      "commit": "b166d8407622e842eb0dc9302ede01cdea182149",
      "tree": "7401b7eab80c72e977e305896e90ee4ce4c32a6d",
      "parents": [
        "3c0c1791d4b5efe59d2a659b6925b908d9d44b56",
        "067d20fd2fddd947ce3a014d023e9de249082ebe"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 07 18:47:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 07 18:47:22 2014 +0000"
      },
      "message": "Merge \"backtrace: use Java stack to help decode native\""
    },
    {
      "commit": "067d20fd2fddd947ce3a014d023e9de249082ebe",
      "tree": "22ebe9335ce783d6b4cfaa311281e001d578ac12",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 05 14:57:21 2014 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 06 13:38:41 2014 -0800"
      },
      "message": "backtrace: use Java stack to help decode native\n\nBefore change:\n\n  native: usb_host_run+16 [0x400a43f9] (/libusbhost.so)\n  native: android::Vector\u003cint\u003e::do_move_forward(void*, void const*, unsigned int) const+54 [0x501b1c5b] (/libandroid_servers.so)\n  native: ??? [0x624de480] (/system@framework@boot.oat)\n  at com.android.server.usb.UsbHostManager.monitorUsbHostBus(Native method)\n  at com.android.server.usb.UsbHostManager.access$000(UsbHostManager.java:38)\n\nAfter change:\n\n  native: usb_host_run+16 [0x400933f9] (libusbhost.so)\n  native: android::Vector\u003cint\u003e::do_move_forward(void*, void const*, unsigned int) const+54 [0x4e984c5b] (libandroid_servers.so)\n  native: Java_com_android_server_usb_UsbHostManager_monitorUsbHostBus__+92 [0x624de480] (system@framework@boot.oat)\n  at com.android.server.usb.UsbHostManager.monitorUsbHostBus(Native method)\n  at com.android.server.usb.UsbHostManager.access$000(UsbHostManager.java:38)\n\nChange-Id: Iea550a251a12e9ba7df9582fd454093bfa4e90e0\n"
    },
    {
      "commit": "6dda898d47b3e8931e4404330e81b7110108e34f",
      "tree": "d8a0a20b8ac1ce3cd44273cf5c748d09980bd800",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 11:11:48 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 11:43:06 2014 -0800"
      },
      "message": "Disable compaction for jni workarounds.\n\nCompaction can\u0027t work when jni workarounds is enabled. Also some\nother refactoring.\n\nChange-Id: Ia7b0f2b39c79f5a0a5f50874d823b950ab02a0c3\n"
    },
    {
      "commit": "6cbd271d061707dfe70e29c16bb97b6acbd3c533",
      "tree": "2a4dc81b46b7f29b6dec85ec9f5c375d50ba7c6f",
      "parents": [
        "6f2083d3f909bce3988e71cd80374cee038ecba6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 04 16:06:50 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 04 16:06:50 2014 -0800"
      },
      "message": "Oatdump fix.\n\nChange-Id: Idd4fe294a628efb2a3bd39061a61bab3017784a2\n"
    },
    {
      "commit": "d889178ec78930538d9d6a66c3df9ee9afaffbb4",
      "tree": "6fa250bdadcdfc1702f57500e618b51df6d46828",
      "parents": [
        "06c09f6d79e037ee00113d6289ef98226680797d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 02 13:28:37 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 17:08:30 2014 -0800"
      },
      "message": "Guard entrypoint changing by runtime shutdown lock.\n\nThere was a race when we changed the allocation entrypoints where a\nnew thread would be starting (Thread::Init) and initialize to the\nwrong entrypoints. Guarding allocation entrypoint changing\nwith the runtime shutdown lock fixes this race condition since\nThread::Init is only called with the runtime shutdown lock held.\n\nBug: 13250963\n\nChange-Id: I8eb209c124b6bf17020de874e1b0083f158b8200\n"
    },
    {
      "commit": "2da882315a61072664f7ce3c212307342e907207",
      "tree": "67d777be044f5b60e2f13ab7968b63c581904ea9",
      "parents": [
        "762d4e5b9e777ae64c4ba581af9c84b78a5e96a6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 27 12:26:20 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 03 23:27:12 2014 +0000"
      },
      "message": "Initial changes towards Generic JNI option\n\nSome initial changes that lead to an UNIMPLEMENTED. Works\nby not compiling for JNI right now and tracking native methods\nwhich have neither quick nor portable code. Uses new trampoline.\n\nChange-Id: I5448654044eb2717752fd7359f4ef8bd5c17be6e\n"
    }
  ],
  "next": "8d7672e476a526aa6205a008b5a06c8216342ac6"
}
