)]}'
{
  "log": [
    {
      "commit": "c6201fa2ec66a218c4d0320fbcddd2fbb65cfa4a",
      "tree": "d7e2742906c340d61a7bf24aab6e0b343e0580d2",
      "parents": [
        "4cfe74cb50b73f5f4b6dd32aabed55d044afe348"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 12 10:06:33 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 12 10:59:33 2015 -0700"
      },
      "message": "Add way to select arena type at runtime\n\nWe now use MemMap for JIT, and malloc for everything else. This\nshould help fix the allegedly regressed compile times.\n\nChange-Id: I6a6552738933f9d7ee3bd23f45e310818b19b70d\n"
    },
    {
      "commit": "0aa50ce2fb75bfc2e815a0c33adf9b049561923b",
      "tree": "9a3f9603ab30d5cbc7fc21aee0ceb48bbb0dd25a",
      "parents": [
        "e8e42f3548fd894f860912bb1b71ce6fa2d7daf3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 11:03:29 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 14:51:11 2015 +0000"
      },
      "message": "Remove ThrowLocation.\n\nNote that this is a cleanup change, and has no functionality change.\nThe ThrowLocation had no use anymore.\n\nChange-Id: I3d2126af1dc673cec3a0453ff3d56a172663a5f6\n"
    },
    {
      "commit": "9b34b244ecddd8a35c922ed87bc3df0ca4db0282",
      "tree": "cb73f09a77a1ba58331eb299bb8dd1e6eafb6eaa",
      "parents": [
        "81d38f74219774d87389f83f23595ffc8fe814b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 11:30:17 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 14:25:02 2015 -0700"
      },
      "message": "Trim arenas for JIT\n\nMoved arena pool into the runtime. Added arena trimming to arena\npool. When called, this madvises the used memory.\n\nChanged the JIT compiler to trim arenas after compilation. Changed\nthe arena mmap name to dalvik-LinearAlloc.\n\nNative PSS before:\n  80353 kB: Native\n  80775 kB: Native\n  78116 kB: Native\nAfter:\n  73357 kB: Native\n  70181 kB: Native\n  70306 kB: Native\n\nBug: 17950037\nBug: 17643507\nBug: 19264997\n\nChange-Id: I63e7a898fd6e909c2c677fa57b5917a7b1398930\n"
    },
    {
      "commit": "5c9d8f0d2948c2b4fe4258f96e3598ad5b8fa23b",
      "tree": "7510031e119cf981cdb6aafc5e5c2299aa06590d",
      "parents": [
        "3dd536ffd7e8f82e4587964545b272acbd61d68e",
        "14691c5e786e8c2c5734f687e4c96217340771be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 10:11:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 09 10:11:03 2015 +0000"
      },
      "message": "Merge \"Compute the right catch location for the debugger.\""
    },
    {
      "commit": "14691c5e786e8c2c5734f687e4c96217340771be",
      "tree": "7c2156671b323c70ffdd1d48d5e2f1d1de79c5fc",
      "parents": [
        "3d7d2af4c6502b771b032ee9bf3ab30e78f9c60d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 05 10:40:17 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 10:09:33 2015 +0000"
      },
      "message": "Compute the right catch location for the debugger.\n\nAlso remove tls ThrowLocation, it is not needed anymore.\n\nChange-Id: I78fddf09ce968ca475e39c17fa76d699c589c8d9\n"
    },
    {
      "commit": "184c9dc3bfc500134fdb2fbea0a7fab290c0abb0",
      "tree": "753a040fa1ef43651dd36fc4dfeb9377dc88e481",
      "parents": [
        "66b26662ad0c52c648c9b5ea4a99149091e842b4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 05 13:20:54 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 05 13:25:51 2015 -0800"
      },
      "message": "Fix some incorrect IsCompiler instead of IsAotCompiler\n\nFixes jdwp related issues (DDMS) when JIT is enabled.\n\nBug: 19623297\nChange-Id: I36139c70a97b529135febcf01b227e7ab9affacc\n"
    },
    {
      "commit": "7b2f09eb6b5c74ffc38bd70f0aa74b8f8112e394",
      "tree": "be2f01bfa3e326ea10ee3a670cca8e41a5abaa6d",
      "parents": [
        "dc47e986941b1a3754447fabea272485f3f0f382"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 02 14:07:33 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 04 12:19:44 2015 -0800"
      },
      "message": "ART: Add debuggable compiler flag\n\nAdd a flag to compiler options that shows debuggability.\n\nChange-Id: Id17ec72babe2ee88713a0d274eff86508de30666\n"
    },
    {
      "commit": "775f1d4096efce112a3bd1e5897c84f898c5f7ce",
      "tree": "44fbce76fdc2114947032cac69ad82aa93aee85c",
      "parents": [
        "cd93415651b7295d0bda1d37ef72ee99ba953c67",
        "bd9cf9f6bbf285ec7a5b74ce655a9e68e0f6e434"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Mar 03 13:39:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 03 13:39:31 2015 +0000"
      },
      "message": "Merge \"Follow-up 128393\""
    },
    {
      "commit": "bd9cf9f6bbf285ec7a5b74ce655a9e68e0f6e434",
      "tree": "04f3b49c2946c99b0aac23552f8c3cfdf8da39f4",
      "parents": [
        "ff9b747588e77f04b07dc76b2d39a82cbfc60441"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Mar 03 12:16:13 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Mar 03 14:30:46 2015 +0100"
      },
      "message": "Follow-up 128393\n\nAvoids false warning when initializing the exception\u0027s class by\nmarking the transaction aborted after throwing the InternalError\nexception.\n\nAlso uses VLOG(compiler) to print the warning since it\u0027s only useful\nwhen investigating ahead-of-time class initialization.\n\nBug: 19202032\nChange-Id: I3c53639cbb888086ad345d668d1e5b73c5aaf861\n"
    },
    {
      "commit": "deebb99a53b0af3ccfde9daaef8cae8fad9e44d2",
      "tree": "12e12ff23a4790b8076d6e45c3defb8695772072",
      "parents": [
        "0d1ef55dd46ecd0309f8e9e6b30625cde9473fc8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 02 11:49:22 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 02 11:50:18 2015 -0800"
      },
      "message": "Fix AddCurrentRuntimeFeaturesAsDex2OatArguments jit handling\n\nNow jit passes interpret filter to dex2oat.\n\nBug: 19550422\nChange-Id: I932c7d1084acbb9d356ad0f5534a270e2ca2d6ec\n"
    },
    {
      "commit": "e5f13e57ff8fa36342beb33830b3ec5942a61cca",
      "tree": "02e370ecc4e0d955f28bfc71a41015f94fbb19b7",
      "parents": [
        "354d58ba776866ea7b1c71f0d0848d5aaa013ae3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 09:37:21 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 10:47:02 2015 -0800"
      },
      "message": "Revert \"Revert \"Add JIT\"\"\n\nAdded missing EntryPointToCodePointer.\n\nThis reverts commit a5ca888d715cd0c6c421313211caa1928be3e399.\n\nChange-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af\n"
    },
    {
      "commit": "f548c54c69443ba94fcee89daca6f5f499d71e9a",
      "tree": "aff0f707cb27e303d3b9de53f961bf48e38ad5be",
      "parents": [
        "9e87baff2eee8e8ae0700c7391ca4447dbe142b0",
        "a5ca888d715cd0c6c421313211caa1928be3e399"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:11:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 08:11:24 2015 +0000"
      },
      "message": "Merge \"Revert \"Add JIT\"\""
    },
    {
      "commit": "a5ca888d715cd0c6c421313211caa1928be3e399",
      "tree": "bdb08a2cbcf277ab7f02626a23b52a3fdf272ffe",
      "parents": [
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "message": "Revert \"Add JIT\"\n\nSorry, run-test crashes on target:\n0-05 12:15:51.633 I/DEBUG   (27995): Abort message: \u0027art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast\u003cuintptr_t\u003e(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc\u003d71e3366b code\u003d0x71e3362d size\u003dad000000\u0027\n10-05 12:15:51.633 I/DEBUG   (27995):     r0 00000000  r1 0000542b  r2 00000006  r3 00000000\n10-05 12:15:51.633 I/DEBUG   (27995):     r4 00000006  r5 b6f9addc  r6 00000002  r7 0000010c\n10-05 12:15:51.633 I/DEBUG   (27995):     r8 b63fe1e8  r9 be8e1418  sl b6427400  fp b63fcce0\n10-05 12:15:51.633 I/DEBUG   (27995):     ip 0000542b  sp be8e1358  lr b6e9a27b  pc b6e9c280  cpsr 40070010\n10-05 12:15:51.633 I/DEBUG   (27995): \n\nBug: 17950037\nThis reverts commit 2535abe7d1fcdd0e6aca782b1f1932a703ed50a4.\n\nChange-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3\n"
    },
    {
      "commit": "4fa1a274024067e160a60d0a77124e95dca980e1",
      "tree": "61dd41429b6b2ed29239f0c619c0e7ea058fd4ac",
      "parents": [
        "40c99de1fd26f9ba6fae20a01175240b96fc7443",
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 01:29:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 01:29:47 2015 +0000"
      },
      "message": "Merge \"Add JIT\""
    },
    {
      "commit": "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4",
      "tree": "140026ff9638ff34050680b6c706b82fa1740b56",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 17 10:38:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 16:45:49 2015 -0800"
      },
      "message": "Add JIT\n\nCurrently disabled by default unless -Xjit is passed in.\n\nThe proposed JIT is a method JIT which works by utilizing interpreter\ninstrumentation to request compilation of hot methods async during\nruntime.\n\nJIT options:\n-Xjit / -Xnojit\n-Xjitcodecachesize:N\n-Xjitthreshold:integervalue\n\nThe JIT has a shared copy of a compiler driver which is accessed\nby worker threads to compile individual methods.\n\nAdded JIT code cache and data cache, currently sized at 2 MB\ncapacity by default. Most apps will only fill a small fraction of\nthis cache however.\n\nAdded support to the compiler for compiling interpreter quickened\nbyte codes.\n\nAdded test target ART_TEST_JIT\u003dTRUE and --jit for run-test.\n\nTODO:\nClean up code cache.\nDelete compiled methods after they are added to code cache.\nAdd more optimizations related to runtime checks e.g. direct pointers\nfor invokes.\nAdd method recompilation.\nMove instrumentation to DexFile to improve performance and reduce\nmemory usage.\n\nBug: 17950037\n\nChange-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca\n"
    },
    {
      "commit": "39ce2282ed2b020e51e8d92f442b419ae9dd6434",
      "tree": "ec4bb0fc550d97dac474200246cedabb8b0759c5",
      "parents": [
        "9e80e7fa5ef60f02f35823bc58969c3d5a03453e",
        "05d1461f40a065acb66e6d5248609cf33c5b900a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 00:33:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 00:33:15 2015 +0000"
      },
      "message": "Merge \"Only detach shutdown thread if we attached it\""
    },
    {
      "commit": "05d1461f40a065acb66e6d5248609cf33c5b900a",
      "tree": "c31a40484dabb28d758f2dbcd375b6f96f6a8dd9",
      "parents": [
        "735969139b162f9d45a3c0e47dc24a8aec63c736"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 15:31:58 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 16:22:32 2015 -0800"
      },
      "message": "Only detach shutdown thread if we attached it\n\nSpeculative fix to:\n\"Request to unregister unattached thread\" bug.\n\nBug: 18713034\nChange-Id: I6e69088dd66970c704010397a11e3758cf107ff9\n"
    },
    {
      "commit": "24e04aa68c575d349eac0d9d09aab9bd3106ef94",
      "tree": "e6a14642cc4a4b409fe98a696b17968c6d0a65f4",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Fri Sep 12 12:03:25 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 23 15:43:46 2015 -0800"
      },
      "message": "ART: Allow the execution to stop if the compilation fails via an option\n\nThe current implementation continues the execution of the application if\ndex2oat fails by relying on the interpreter.\n\nThis patch adds a -Xno-dex-file-fallback option to stop the default behavior.\nThis can be used two-fold.\n\nFirst, one can enforce that a runtime only starts with a boot image. A\nfollow-up patch will ensure that dex2oat (for apps) and patchoat in general\nrequest that mode and close gracefully otherwise.\n\nSecond, this can be used for testing and debugging purposes, as it ensures\nthat compiler failures \u0026 aborts are not silently ignored.\n\nAdd testing.\n\nBug: 19100590\nChange-Id: Iaf07b5ccf00942ca8a8ec8687599320a3ddbc089\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\n"
    },
    {
      "commit": "5a2be3f40125af8b25fbbd9d55dc968168c76ed7",
      "tree": "070b920e71c927f112a6922f5e7b59668392f762",
      "parents": [
        "d98ff78976696fdde1e7868d4687719a0439544b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 16 13:51:51 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Feb 21 11:19:07 2015 +0000"
      },
      "message": "Implement a simple count based boot marker.\n\nWe write the number of failed boots to the marker and only\nprune the dalvik cache if the number of consecutive failed\nboots is higher than a predefined threshold.\n\nNote that the code is forgiving of errors related to boot\nmarkers; we continue the boot process even if we\u0027re unable\nto create / write or flush the boot marker.\n\nbug: 19360096\nChange-Id: Ia17c3b783318ddf43c9199d0f7f09c54a4176667\n"
    },
    {
      "commit": "f360ad091bdc1484db2e4e0f0492f620402dbf58",
      "tree": "18b356225ef42bdc3a50a62a5f7975872c9742c6",
      "parents": [
        "4ba405483177cf346211d43d97892bae6ff14119"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 20 11:28:03 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 20 11:28:03 2015 -0800"
      },
      "message": "Make UseTLAB a bool flag.\n\nThis would make it easier to override its default value at build time.\n\nChange-Id: I643fe1afaf492f0443dc01df0c9a62bb3fa025d9\n"
    },
    {
      "commit": "b3b173bbbd1d1cbad555de13c3fa6765f5078bce",
      "tree": "89d380f42aed1a4c60db40f8be7d22501eaafa32",
      "parents": [
        "e5f5953e744060fde3b4489cea4d934d529e3e32"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Feb 06 09:16:32 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Feb 17 22:42:43 2015 +0100"
      },
      "message": "Follow up 129144\n\nPasses JDWP options to debugger on runtime init so we no longer need\nto keep them on the heap.\n\nUpdates ParseJdwpOption to return Result for consistency.\n\nBug: 19275792\nChange-Id: I68b7e58908164d3e4cf9e3fbcc3dfab6ce0579a5\n"
    },
    {
      "commit": "53b36a26925e898b5f7cd3fad1d6a133eda62b4b",
      "tree": "f081ee7fb2f80bad763a5016d72127c4a3ea5aa5",
      "parents": [
        "69c37c3b5bc868003115898a3d1754604bb6db96",
        "c7d11887725e28db2796c848f4485e59d5eb690c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Feb 10 18:47:42 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 10 18:47:42 2015 +0000"
      },
      "message": "Merge \"Handle variable size of methods properly between 32 and 64 bit.\""
    },
    {
      "commit": "c7d11887725e28db2796c848f4485e59d5eb690c",
      "tree": "97f39432ca9d94969f53cae91baaf8de57cf785d",
      "parents": [
        "a0acc2d5dbf8764b346da3d9e6ce1a91427fc4b5"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Feb 03 15:08:39 2015 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 05 14:14:43 2015 -0800"
      },
      "message": "Handle variable size of methods properly between 32 and 64 bit.\n\nBug: 19100762\nChange-Id: I62358905fa882284d0201ed3c1e97e1286ccec5f\n"
    },
    {
      "commit": "3be6e9d904baa13d7cf51dfc6742dea12e766b2e",
      "tree": "43ad5f3655d73243ab212eefb83169471a1d87b3",
      "parents": [
        "24898d447640c3a45e6fc9f404b049eddc5a2709"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 16:30:58 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 18:28:54 2015 +0100"
      },
      "message": "Read JDWP options from runtime\n\nAllocates JDWP::JdwpOptions on the heap and copies parsed options to\navoid the need to include jdwp/jdwp.h into runtime.h file.\n\nAlso does some minor cleanup and removes the old JDWP options parsing\ncode that became dead code after we move it to the new command-line\nparser.\n\nBug: 19275792\nChange-Id: I71901c89fbf2cc3c1901a089e2a98b4326c6ee70\n"
    },
    {
      "commit": "911b4be50c379d052dd9e5f9b59ce91df1340453",
      "tree": "790b7f3a25b0a31ddddc606b1ba2a24fc8146476",
      "parents": [
        "7e6a918ecfbe786c060bce0eeddd55c4c70f819d",
        "1c80becf5406cd6d95dc24bf47a0c5a3809ea281"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 08:19:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 05 08:19:22 2015 +0000"
      },
      "message": "Merge \"Fix transaction aborting\""
    },
    {
      "commit": "1c80becf5406cd6d95dc24bf47a0c5a3809ea281",
      "tree": "24853b3512e21b18df7a2401b174df891684334e",
      "parents": [
        "e5deafe9cdd81238c3916b04301ea884c93f46b5"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Feb 03 11:58:06 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 09:05:41 2015 +0100"
      },
      "message": "Fix transaction aborting\n\nDuring compilation, a java.lang.InternalError is used to indicate\nthat class initialization failed and the enclosing transaction\nshould be aborted and the changes rolled back. However there is\nnothing preventing the code executed from a class initializer from\ncatching that exception (like catching Throwable and ignore it).\nTherefore we may return from the class initializer with no pending\nexception, even if the transaction was aborted, and not rollback\nthe changes properly.\n\nTo fix this, we now rely on the new Transaction::aborted_ field to\nknow whether a transaction aborted. When returning from the class\ninitializer without pending exception, we now check wether we aborted\nthe enclosing transaction. If that\u0027s the case, we set the status of\nthe class to kStatusError and throw a new java.lang.InternalError\nwith the original abort message.\n\nThis CL also contains some cleanup:\n- Renames Transaction::Abort to Transaction::Rollback which is less\nambiguous and more reflect what is done.\n- Moves the code throwing the java.lang.InternalError exception into\nthe Transaction::ThrowInternalError method so we do not duplicate\ncode. Now we may abort transaction more than once (because we may\nhave caught the java.lang.InternalError then execute code causing\nnew transaction abort), we only keep the first abort message to\nthrow the exception.\n- Updates transaction_test with more cases and more checks.\n- Bumps oat version to force recompilation with this fix.\n\nBug: 19202032\nChange-Id: Iedc6969528a68bbdf3123146e990df4dbc57834b\n"
    },
    {
      "commit": "eb6c7c23a8065af665e71f3408980bacd8ecc529",
      "tree": "b1eda7fb58ca02d9539c27774ef2bb044b9369f0",
      "parents": [
        "edf45678f133ce51d7aff43be68d9be3936ffca2"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 04 17:30:43 2015 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 04 17:32:05 2015 -0800"
      },
      "message": "art: Try to fix parsed_options_test on the build server\n\n(It works fine locally because environment variables are defined\ndifferently)\n\nAlso some minor cleanup elsewhere pointed out in the previous code\nreview.\n\nChange-Id: I80650d2be6ce467b838db85eb130a0020d7c1480\n"
    },
    {
      "commit": "aaebaa0121be3b9d9f13630585304482cbcaeb4b",
      "tree": "0f47257e497fdf920c8d703d2d00adab53934a76",
      "parents": [
        "babecc483276b46d84cb83d4f01e577228827305"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jan 26 10:55:53 2015 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 04 13:29:19 2015 -0800"
      },
      "message": "art: Refactor RuntimeOptions/ParsedOptions\n\nRefactor the RuntimeOptions to be a\ntype-safe map (VariantMap, see runtime_options.h) and the ParsedOptions\nto delegate the parsing to CmdlineParser (see cmdline/cmdline_parser.h).\n\nThis is the start of a command line parsing refactor, and may include\nmore in the future (dex2oat, patchoat, etc).\n\nFor more details of the command line parsing generator usage see cmdline/README.md\n\nChange-Id: Ic67c6bca5e1f33bf2ec60e2e3ff8c366bab91563\n"
    },
    {
      "commit": "02c5f4dbc26d3a055953a5ac4578817bc0375b41",
      "tree": "980c75c6fce53f7d8ec5f7f50450b21381766e9b",
      "parents": [
        "9544368685b4aa65e746332e602491a3e8e5b247"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 30 10:18:03 2015 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 30 10:18:03 2015 -0800"
      },
      "message": "Remove some unused cutils/properties.h references\n\nAlso remove an obsolete include workaround\n\nChange-Id: Ie17387280285b969c4e9b5334bafde8239b9faf6\n"
    },
    {
      "commit": "2cd334ae2d4287216523882f0d298cf3901b7ab1",
      "tree": "b72d3d07e5a04151caca96cae345075b6e4452b0",
      "parents": [
        "604e2828896fbb8663897d1e75112da7305ead4c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 09 14:03:35 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 23 14:07:32 2015 -0800"
      },
      "message": "More of the concurrent copying collector.\n\nBug: 12687968\nChange-Id: I62f70274d47df6d6cab714df95c518b750ce3105\n"
    },
    {
      "commit": "e34fa1df67fbe0173b4ea9abddcc3ae3d0537037",
      "tree": "a5148f079b5671a95f60910c41981ebf91db3a02",
      "parents": [
        "9f06b1946ae3ef1d2fd75bbf7f0a288bc611fe58"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 14 14:55:47 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 15 12:23:28 2015 -0800"
      },
      "message": "Print more info in MarkSweep::VerifyRoot\n\nRefactored old root callback to use a new class called RootInfo.\nRootInfo contains all the relevant info related to the root\nassociated with the callback. The MarkSweep::VerifyRoot function\nnow uses this info to print the StackVisitor\u0027s described location\nif the GC root is of the type kRootJavaFrame.\n\nSome other cleanup.\n\nExample output:\nE/art     (12167): Tried to mark 0x123 not contained by any spaces\nE/art     (12167): Attempting see if it\u0027s a bad root\nE/art     (12167): Found invalid root: 0x123 with type RootJavaFrame\nE/art     (12167): Location\u003dVisiting method\n\u0027void java.lang.Runtime.gc()\u0027 at dex PC 0xffffffff (native PC 0x0)\nvreg\u003d0\n\n(cherry picked from commit 12f7423a2bb4bfab76700d84eb6d4338d211983a)\n\nBug: 18588862\nChange-Id: Ic5a2781f704e931265ffb3621c2eab4b2e25f60f\n"
    },
    {
      "commit": "57b34294758e9c00993913ebe43c7ee4698a5cc6",
      "tree": "981821619027686f83fbe00445299b0522f1df05",
      "parents": [
        "4945bfef00ac446d9c5458e55500229d463ab4c3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 14 15:45:59 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 15 11:32:48 2015 -0800"
      },
      "message": "ART: Allow to compile interpret-only mips64 files\n\nInclude enough infrastructure to allow cross-compiling for mips64,\ninterpret-only. This includes the instruction-set-features, frame\nsize info and utils assembler.\n\nAlso add a disassembler for oatdump, and support in patchoat.\n\nNote: the runtime cannot run mips64, yet.\n\nChange-Id: Id106581fa76b478984741c62a8a03be0f370d992\n"
    },
    {
      "commit": "127d933868b767eca1ec5446e91a3e8df65c659e",
      "tree": "929a8d16f6899a5331c2443fbb0f5f5cf90c9196",
      "parents": [
        "c5573c29b7d7af0815e0e7b0ae241aafb52817a5",
        "fbef44de596d298dc6430f482dffc933a046dd28"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jan 14 16:00:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 14 16:00:55 2015 +0000"
      },
      "message": "Merge \"Use unique_ptr to track ownership of dex files.\""
    },
    {
      "commit": "fbef44de596d298dc6430f482dffc933a046dd28",
      "tree": "57345e86b7dda80b82a263069230b7e312db5ef2",
      "parents": [
        "603104b5b5c3759b0bc2733bda2f972686a775a3"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Dec 23 09:48:51 2014 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jan 13 16:32:34 2015 -0800"
      },
      "message": "Use unique_ptr to track ownership of dex files.\n\nBug: 18809837\nChange-Id: Ie571eae8fc19ee9207390cff5c7e2a38071b126a\n"
    },
    {
      "commit": "e6c143fae8ec487704b3d0d28914cda3d6d19e88",
      "tree": "270a0f83996e2abc15ab9d6b643f112afc89587e",
      "parents": [
        "8fccea249b1a6f1469eeea42c2b2cca06ce1c70d"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jan 13 10:10:40 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jan 13 20:59:53 2015 +0100"
      },
      "message": "Fix bootclasspath string initialization\n\nWhen running the runtime with an image without explicitly specifying\nthe bootclasspath (with the -Xbootclasspath option), we construct it\nfrom the location of DEX files loaded from the image.\n\nThis allows to fix the JDWP test ClassPathsTest#testClassPaths001 on\nthe host where the bootclasspath is not explicitly specified on the\ncommand line.\n\nBug: 18812378\nChange-Id: I726eafd8b9e59dc9513beeb7082cf086fe89c4b1\n"
    },
    {
      "commit": "c275259449ec57987e52d3ab1eda3272b994488f",
      "tree": "ca3a6d182d768f8ef046a33576572a2e46370cc1",
      "parents": [
        "4270e74152d8a7cd979ab5a92fe2a8f84adb8a42"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Jan 02 13:28:22 2015 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Jan 08 10:50:38 2015 -0800"
      },
      "message": "Remove back-door bootclasspath option from Runtime\n\nThe \u0027bootclasspath\u0027 option allowed users of the Runtime to load their\nown boot class path DexFiles and pass them directly to the Runtime as\nan option. This obscures the fact that the Runtime must take ownership\nof the boot class path DexFiles.\n\nThis change removes the use of the bootclasspath option by dex2oat and\nthe common runtime tests. For dex2oat, we use the existing\n-Xbootclasspath option instead, and introduce a new\n-Xbootclasspath-locations option to override the dex locations for the\nloaded boot class path dex files. For the common runtime tests, we\nsimply use -Xbootclasspath.\n\nBug: 18809837\nChange-Id: Idfcd4885390bf0f3dc350993756dd337220def73\n"
    },
    {
      "commit": "a2cfee3854193d541530f511ea328b0c1a3136c6",
      "tree": "63f1bf8871d8c4d87dd929701f482a9f9922775c",
      "parents": [
        "893e8881e31180721512c1b9e5ffacb03aad2e45"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jan 07 16:37:24 2015 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jan 07 16:38:57 2015 -0800"
      },
      "message": "Fix valgrind imgdiag test failure / memory leak in runtime\n\nBug: 18907700\nChange-Id: I399a6a64a743d3fac86b8bb5bf0eef1f23b95dc4\n"
    },
    {
      "commit": "487c1c9a0ae4022ef01c95bd92a6ea9cb14dc59c",
      "tree": "e165a620f4f1db106c7a9937ace88ddb0ff77888",
      "parents": [
        "50d55c65f3096bccbccddef3aa734ee15647cbe5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 19:26:29 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 19:31:40 2014 -0800"
      },
      "message": "Don\u0027t add or remove verifiers if aborting\n\nPrevents deadlock if marking verifier roots fails when we attempt to\ndump the stack traces. The deadlock occurs from FindLocksAtDexPC\nsince this allocates a new verifier then adds / removes it from the\nmethod_verifiers_ array.\n\nBug: 18651054\nChange-Id: Ia9b9470ce5e4ac20bfbb39bef0283974cf487765\n"
    },
    {
      "commit": "d289348804738ad26f1c787b265d9d8156170ae1",
      "tree": "b795af78753cdddbe9a37d58b4fd414225d5f452",
      "parents": [
        "d1512fed4e43bba77fb21fd1b6322c22ef7c5881"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 12 15:49:56 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 12 15:49:56 2014 -0800"
      },
      "message": "Remove a dependency on AndroidConfig.h.\n\nChange-Id: I3fad347d49eb51f7a0f6d0ba9223d096a23f74a0\n"
    },
    {
      "commit": "956af0f0cb05422e38c1d22cbef309d16b8a1a12",
      "tree": "b558c804d206dad8da648b815750f1b3c97610ae",
      "parents": [
        "407d77f344cfbdbbfb50531c5f0766bc0892e2fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 11 14:34:28 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 12 09:33:34 2014 -0800"
      },
      "message": "Remove portable.\n\nChange-Id: I3bf3250fa866fd2265f1b115d52fa5dedc48a7fc\n"
    },
    {
      "commit": "cef50f0487929f72183623bc2a5819cf3a63bff6",
      "tree": "b37c68730d982b1bff28d0faa8072df0354b5dd9",
      "parents": [
        "b1a38e246cfbfb21100d9c9e57f33970e824f075"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 09 17:38:52 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 10 09:43:29 2014 -0800"
      },
      "message": "Stop daemon threads in runtime shutdown\n\nEnsure that daemons are stopped and joins before bringing down the\nruntime. This fixes bugs related to native code still running when\nwe shutdown the runtime.\n\nAlso changed the mutex destructor to allow contenders if we are\ndeleting a monitor lock level mutex.\n\nBug: 18577101\nChange-Id: I6457b35fd69c6997b9003b5f15f39861749843a9\n"
    },
    {
      "commit": "db978719dbcb73fc6acfd193561445c4462786b8",
      "tree": "be75911bfbe29a50fff685217c8ee155fb99ac10",
      "parents": [
        "015b137efb434528173779bc3ec8d72494456254"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 13:33:38 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 13:33:38 2014 +0000"
      },
      "message": "Revert \"Tidy gAborting.\"\n\nCreates infinite loop: b/18674776.\n\nThis reverts commit 015b137efb434528173779bc3ec8d72494456254.\n\nChange-Id: I67fe310d2e95ee2ec37bec842be06fb1123b6f4e\n"
    },
    {
      "commit": "015b137efb434528173779bc3ec8d72494456254",
      "tree": "2ccaba9d7465bd9995082a7251d34cf76b1ab1ea",
      "parents": [
        "a21fdd0432aa38b63d144ee4b92b6a567aab61d2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 04 19:53:52 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 04 20:04:45 2014 -0800"
      },
      "message": "Tidy gAborting.\n\nReduce scope to Runtime::Abort and short-cut recursive case earlier. gAborting\nremains global to avoid two fatal errors in thread and the verifier.\n\nChange-Id: Ibc893f891ffee9a763c65cde9507d99083d47b3f\n"
    },
    {
      "commit": "9c7d8bcc60d3c80df074ebac6ec62cf60a852bfa",
      "tree": "a72910b509d54f039a25a04191dbdfbb4338c660",
      "parents": [
        "974eb9554259536daa74a729ec917bf829ed0301"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 17 14:52:44 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 17 15:36:43 2014 -0800"
      },
      "message": "Change IsZygote test to !IsCompiler\n\nEnables test coverage through run test 118.\n\nChange-Id: I21ce32e83629eb507b8440cebdd721d29171a984\n"
    },
    {
      "commit": "bc58ede2eebe20d592959b88c36fb74d4d832441",
      "tree": "d7fe67259afb70cb9ff911762c7edccc1d68ed1d",
      "parents": [
        "5d99e333bcb454add372fe776a00d3172146bd6b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 17 12:36:24 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 17 13:21:43 2014 -0800"
      },
      "message": "Don\u0027t call AddImageStringsToTable or MoveImageClassesToClassTable if running imageless\n\nIf we fail to create the image we use imageless running, this was\nbreaking AddImageStringsToTable since we didn\u0027t check for this\ncase. Added a check which avoids calling AddImageStringsToTable and\nMoveImageClassesToClassTable if we don\u0027t have an image.\n\nBug: 18412472\n\n(cherry picked from commit ab1953f35880f94752e1fcde3f6b3f0d3532125b)\n\nChange-Id: Ida18e1fcd04d752d55923e65c3122c0ac0bde728\n"
    },
    {
      "commit": "d582fa4ea62083a7598dded5b82dc2198b3daac7",
      "tree": "c76704c266ef4687eab425612ddf3fd24f93fe8d",
      "parents": [
        "f20076ff813b8012096ff31af236d59db3c0f4e1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 05 23:46:43 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 13 16:17:46 2014 -0800"
      },
      "message": "Instruction set features for ARM64, MIPS and X86.\n\nAlso, refactor how feature strings are handled so they are additive or\nsubtractive.\nMake MIPS have features for FPU 32-bit and MIPS v2. Use in the quick compiler\nrather than #ifdefs that wouldn\u0027t have worked in cross-compilation.\nAdd SIMD features for x86/x86-64 proposed in:\n  https://android-review.googlesource.com/#/c/112370/\n\nBug: 18056890\n\nChange-Id: Ic88ff84a714926bd277beb74a430c5c7d5ed7666\n"
    },
    {
      "commit": "c2e20629c7dfdb0f679fa30c14b41fe68588697f",
      "tree": "ee428a17f93922e6f78e3482c348e6e7b81a8e4f",
      "parents": [
        "f55996d6b4a672e09fbe3a3563646a7682719b4a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 03 11:41:47 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 06 16:27:00 2014 -0800"
      },
      "message": "Add hash set\n\nMore memory efficient than libcxx since we do not box the values.\n\nChange intern table to use new hash set. Clean up intern table by\nremoving const casts and deleting unnecessary code.\n\nChanged the class linker to use a hash set, also added a pre-zygote\nclass table.\n\n5 samples of:\nadb shell stop \u0026\u0026 adb shell start \u0026\u0026 sleep 60 \u0026\u0026 adb shell dumpsys meminfo\nBefore:\n165929 kB: Native\n175859 kB: Native\n168434 kB: Native\n166559 kB: Native\n169958 kB: Native\n\nAfter:\n160972 kB: Native\n159439 kB: Native\n157204 kB: Native\n165093 kB: Native\n163039 kB: Native\n\nTODO: Add HashTable which is implemented by using a HashSet.\nTODO: Use for DexFile::find_class_def_misses_.\nTODO: Investigate using mem maps instead of native heap.\n\nBug: 17808975\n\nChange-Id: I93e376cf6eb9628cf52f4aefdadb6157acfb799a\n\n(cherry picked from commit e05d1d5fd86867afc7513b1c546375dba11eee50)\n"
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "eb175f70ef352ce0b9bcafdf06c5ac22b0ff626a",
      "tree": "a69840165ef62cd918c001a421373bec9121314d",
      "parents": [
        "07f09809c0575e985249450843b06f266b831fe1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 31 11:49:27 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 03 10:17:41 2014 -0800"
      },
      "message": "Add image strings to intern table\n\nWhen we create the runtime, we now add the image strings to the\nintern table if we are the zygote. This caused some memory bloat,\nso I added an extra unordered set to the intern table.\n\nThere is now two unordered sets (hash talbe). One for pre-zygote\ninterns and one for post-zygote interns. This helps since the\npre-zygote hash table doesn\u0027t get dirtied. Even with adding\nthe image strings, we get total memory savings of around 5-7 MB\nnative PSS after device boot.\n\nFB launch Before:\n2.20% art::DexFile::FindStringId(char const*) const\nTotalTime: 2069\nTotalTime: 1985\nTotalTime: 2088\nTotalTime: 2003\nTotalTime: 2034\nTotalTime: 2049\nAfter boot native PSS: 175585 kB: Native\n\nAfter:\n0.27% art::DexFile::FindStringId(char const*) const\nTotalTime: 1682\nTotalTime: 1756\nTotalTime: 1825\nTotalTime: 1751\nTotalTime: 1666\nTotalTime: 1813\nAfter boot native PSS: 167089 kB: Native\n\nBug: 18054905\nBug: 16828525\nBug: 17808975\n\n(cherry picked from commit b6e292bf7eac9d73c6b79b1e9b7b87beb02436c9)\n\nChange-Id: Ie367f3222f8c4db409ec49c3845276908b51e9c9\n"
    },
    {
      "commit": "2d2621a1463d2f3f03fa73503fa42e43657cdcfc",
      "tree": "1f7cf393693d72db5c186f99b04ac511958c6418",
      "parents": [
        "ac293277b69882105810fabd6c53f55de58823fe"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 23 16:48:06 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 27 16:49:43 2014 -0700"
      },
      "message": "Optimize method linking\n\nAdded more inlining, removed imt array allocation and replaced it\nwith a handle scope. Removed some un-necessary handle scopes.\n\nAdded logic to base interface method tables from the superclass so\nthat we dont need to reconstruct for every interface (large win).\n\nFacebook launch Dalvik KK MR2:\nTotalTime: 3165\nTotalTime: 3652\nTotalTime: 3143\nTotalTime: 3298\nTotalTime: 3212\nTotalTime: 3211\n\nFacebook launch TOT before:\nWaitTime: 3702\nWaitTime: 3616\nWaitTime: 3616\nWaitTime: 3687\nWaitTime: 3742\nWaitTime: 3767\n\nAfter optimizations:\nWaitTime: 2903\nWaitTime: 2953\nWaitTime: 2918\nWaitTime: 2940\nWaitTime: 2879\nWaitTime: 2792\n\nLinkInterfaceMethods no longer one of the hottest methods, new list:\n4.73% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle\u003cart::mirror::Class\u003e)\n3.07% art::DexFile::FindClassDef(char const*) const\n2.94% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)\n2.90% art::DexFile::FindStringId(char const*) const\n\nBug: 18054905\nBug: 16828525\n\n(cherry picked from commit 1fb463e42cf1d67595cff66d19c0f99e3046f4c4)\n\nChange-Id: I27cc70178fd3655fbe5a3178887fcba189d21321\n"
    },
    {
      "commit": "1e4dc259b4242c1a03415b5b5f4aed7a23e53f79",
      "tree": "edfca45c7c199c285c736076615553bae96f5cb4",
      "parents": [
        "1122c7fc277130814dd1d47b5e8be3ac35b1a5fc",
        "07d83c7a25022064ac0a8dac4fe2a7a38681fa4b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Oct 23 10:58:45 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 23 10:58:46 2014 +0000"
      },
      "message": "Merge \"[native bridge] Make sure we always unload the native bridge\""
    },
    {
      "commit": "07d83c7a25022064ac0a8dac4fe2a7a38681fa4b",
      "tree": "a3b34ea26da0fa4751668441d6ae6698bce47680",
      "parents": [
        "46bf5e0759e80bbe69130d6731a95fd07e10507c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 22 21:02:23 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Oct 23 11:57:10 2014 +0100"
      },
      "message": "[native bridge] Make sure we always unload the native bridge\n\nlibnativebridge may allocate some resources during loading and\nintialization and de-allocate them when unloading. This makes sure that\nwe don\u0027t leak anything.\n\nBug: 18097480\nChange-Id: I901f2d3c2ab1efb2875388f99e8c5c111ce82d5a\n"
    },
    {
      "commit": "c7dd295a4e0cc1d15c0c96088e55a85389bade74",
      "tree": "0c08a2236bc9ba5d9a4dc75d4dd0ed2d76f8f1c6",
      "parents": [
        "94e5af8602150efa95bde35cc9be9891ddf30135"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 23:31:19 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 12:06:23 2014 -0700"
      },
      "message": "Tidy up logging.\n\nMove gVerboseMethods to CompilerOptions. Now \"--verbose-methods\u003d\" option to\ndex2oat rather than runtime argument \"-verbose-methods:\".\nMove ToStr and Dumpable out of logging.h, move LogMessageData into logging.cc\nexcept for a forward declaration.\nRemove ConstDumpable as Dump methods are all const (and make this so if not\ncurrently true).\nMake LogSeverity an enum and improve compile time assertions and type checking.\nRemove log_severity.h that\u0027s only used in logging.h.\nWith system headers gone from logging.h, go add to .cc files missing system\nheader includes.\nAlso, make operator new in ValueObject private for compile time instantiation\nchecking.\n\nChange-Id: I3228f614500ccc9b14b49c72b9821c8b0db3d641\n"
    },
    {
      "commit": "a21bf6e7f64f142f371707c9a06aefdb1d383b5a",
      "tree": "76041b9b9125768a75b8054089d0634a5cbc4935",
      "parents": [
        "07f5c5edb7ef24ac35364e6ef9a8107a44e6564e",
        "4f55ff6887559f91f8fb1cbfab0d5b0f3b2cafbe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 21 14:44:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 21 14:44:51 2014 +0000"
      },
      "message": "Merge \"Clarify a confusing error message.\""
    },
    {
      "commit": "4f55ff6887559f91f8fb1cbfab0d5b0f3b2cafbe",
      "tree": "0fc142e084c3b1f43ba84cb6a8d3ac436e66d5e6",
      "parents": [
        "9c1634645e7777aa21a2390f0603ce56a2d1fd2b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 21 07:36:19 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 21 07:36:19 2014 -0700"
      },
      "message": "Clarify a confusing error message.\n\nWe didn\u0027t run out of stack; we ran out of heap so there\u0027s no stack\ntrace in the pre-allocated exception we\u0027re throwing.\n\nBug: 17975886\nChange-Id: I406f84d7580a28451b232eba323f9c9978e678e6\n"
    },
    {
      "commit": "5830247c351a1c40f37666584d6c390f32c31957",
      "tree": "ff3f68eb1e51d3f68a95b2cf5cea5e686221e566",
      "parents": [
        "92cf9ae2d171b7c315f622f368e2bca53a492391",
        "2beeb82523bd3b8015851b69ccd088553ec0c226"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 21 09:18:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 21 09:18:53 2014 +0000"
      },
      "message": "Merge \"Shut down FaultManager after shutting down threads.\""
    },
    {
      "commit": "1d8cdbc5202378a5f1a4b3a1fba610675ed4dcd5",
      "tree": "6a1b0f49aee5a97b513bd0becc734d284aa7fb65",
      "parents": [
        "1c1786f193323d3bd706463894001117f3471595"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 22 22:51:09 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 20 16:01:28 2014 -0700"
      },
      "message": "Refactor quick entrypoints\n\nRemove FinishCalleeSaveFrameSetup.\nAssembly routines write down anchor into TLS as well as placing runtime\nmethod in callee save frame.\nSimplify artSet64InstanceFromCode by not computing the referrer from the\nstack in the C++ code.\nMove assembly offset tests next to constant declaration and tidy arch_test.\n\nChange-Id: Iededeebc05e54a1e2bb7bb3572b8ba012cffa1c8\n"
    },
    {
      "commit": "2beeb82523bd3b8015851b69ccd088553ec0c226",
      "tree": "e9455ae69a394affdcd6a22618cd3c6c3ba272c2",
      "parents": [
        "fb686fb9a86f0b5fe70f49f2a3c5f49186df862f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 20 18:13:22 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 20 18:14:43 2014 +0100"
      },
      "message": "Shut down FaultManager after shutting down threads.\n\nBug: 17703163\nChange-Id: I7a8454b61e887376d019af601f3a416d18bc0760\n"
    },
    {
      "commit": "36f32f6836b08ba41ac8799cbca8e7db209899b8",
      "tree": "7db4ff94e824f07ce23fa95b0eefb0be26abe92a",
      "parents": [
        "2ce8e60513cab4fc95448af709a2232984815c7b",
        "c5ef693b3fec328c6f4a566d572c36f6587a6ab1"
      ],
      "author": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Fri Oct 17 07:36:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 17 07:36:44 2014 +0000"
      },
      "message": "Merge \"Stop using |instance_| in Runtime::InitNativeMethods.\""
    },
    {
      "commit": "d4c4d953035d4418126d36517e402f411d6a87f3",
      "tree": "735aacf812bbac7c1ae7c0788c1ca6f58cfa82ee",
      "parents": [
        "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 20:31:53 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 21:30:37 2014 -0700"
      },
      "message": "Some code clean-up.\n\nChange-Id: I4b745fd5298cd61c793e3b57514b48347bd66c0e\n"
    },
    {
      "commit": "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3",
      "tree": "f7a20779e4d665f948c5fbcd26dac0071dafb8d4",
      "parents": [
        "2df6840f68dd18d7dd8dbf53f8b6181bbfdc4fc4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 14 17:41:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 19:27:28 2014 -0700"
      },
      "message": "Make ART compile with GCC -O0 again.\n\nTidy up InstructionSetFeatures so that it has a type hierarchy dependent on\narchitecture.\nAdd to instruction_set_test to warn when InstructionSetFeatures don\u0027t agree\nwith ones from system properties, AT_HWCAP and /proc/cpuinfo.\nClean-up class linker entry point logic to not return entry points but to\ntest whether the passed code is the particular entrypoint. This works around\nimage trampolines that replicate entrypoints.\nBug: 17993736\n\nChange-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23\n"
    },
    {
      "commit": "c5ef693b3fec328c6f4a566d572c36f6587a6ab1",
      "tree": "2476c6c8bc3bbcad30dd66a7f1e384acab6ea042",
      "parents": [
        "5c5efc253507eb43265997c9afcd778f72b6cef4"
      ],
      "author": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Thu Oct 16 11:04:27 2014 +0100"
      },
      "committer": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Thu Oct 16 11:15:57 2014 +0100"
      },
      "message": "Stop using |instance_| in Runtime::InitNativeMethods.\n\nRuntime::InitNativeMethods is a member function so we\ndon\u0027t need to use |instance_| to call Runtime methods there.\n\nI believe that this call uses |instance_| instead of |this|\nbecause it was originally in a static Runtime::Create method.\nIt was originally called \u0027instance_-\u003eInitLibraries();\u0027 and was\nmoved to Runtime::Start which is a member function here:\nhttp://ag/#/c/133053/6/src/runtime.cc\nand since then it was further moved and renamed but it kept using |instance_|\neven though use of |this| seems more appropriate.\n\nChange-Id: I79b9d23873272ba2f124e285602f1b2683c2f27f\n"
    },
    {
      "commit": "6e88ef6b604a7a945a466784580c42e6554c1289",
      "tree": "1e296564787b51514cf2eca5b732647c1a82912e",
      "parents": [
        "58e51f38e2304a08aa9ec380383e0b3614f96a96"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 15:01:24 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 15:43:21 2014 -0700"
      },
      "message": "Change MemMap::maps_ to not be global variable\n\nRuntime.exit() was causing globals to get destructed at the same time\nthat another thread was using it for allocating a new mem map.\n\nBug: 17962201\nChange-Id: I400cb7b8141d858f3c08a6fe59a02838c04c6962\n"
    },
    {
      "commit": "b57f1c70a58aabef3246d19174df0dcbdb25b779",
      "tree": "70bffd0375d3a84a345b3f221d7aa0a11ce07b13",
      "parents": [
        "f1f05d303988a5c071c87b760056be8358276c94"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 08 13:56:25 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 08 21:05:09 2014 -0700"
      },
      "message": "Disable kEnableJavaStackTraceHandler\n\nBug: 17890306\n\n(cherry picked from commit b6404fe0bb782cbbccda88903901fe0096a741d5)\n\nChange-Id: Ie13d6af1d384c6ebf87e8f055120609e2bff3338\n"
    },
    {
      "commit": "31d8f5295c24730a57cb36cbc41197f0b7e8397c",
      "tree": "e37953f590f924e06b9905f922407559a3661cb6",
      "parents": [
        "8283e079a209e81caafd123a12a525922368fd34"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 29 11:22:54 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 30 21:49:43 2014 -0700"
      },
      "message": "Add VMRuntime.isBootClassPathOnDisk\n\nBug: 17679443\n\n(cherry picked from commit 95a935415d44903b28326424beb4db5c013ef089)\n\nChange-Id: Iba40291dead3f0b6715903c986370fd0cf1e41e1\n"
    },
    {
      "commit": "9ef78b59da51080882e47505896b420977fd79ae",
      "tree": "6c568756e4e16e68d5d3346261009350969d5b77",
      "parents": [
        "95f03e6a4737f90685fab86e98709f1c4393d5ef"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 25 17:03:12 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 26 16:04:56 2014 -0700"
      },
      "message": "Fix broken runtime SetStatsEnabled logic\n\nPreviously, Runtime::SetStatsEnabled wouldn\u0027t take stats_enabled_\ninto account when deciding whether or not to increment / decrement\nteh stats enabled counter. This resulted in counter underflows and\nother errors which caused some CTS tests to fail.\n\nAlso added some locking to prevent race conditions.\n\nBug: 17360878\n\n(cherry picked from commit a98ffd745bbecb2e84a492194950c0b94966546b)\n\nChange-Id: I21d241a58d35bd6a607aa2305c6da81720bd0886\n"
    },
    {
      "commit": "a460bb07bb9000c6e299ee5cfa8e788d0fbd15f2",
      "tree": "c9b117702aca4d52506ed372e41c5b7fef5244e2",
      "parents": [
        "5957d54ac0de8a318dbc5a163734f877b1185e38",
        "a6da74e941d7cee498ac3880018a1d8dc953c6eb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 24 22:00:11 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 24 22:00:12 2014 +0000"
      },
      "message": "Merge \"ART: Update for split native bridge initialization\""
    },
    {
      "commit": "a6da74e941d7cee498ac3880018a1d8dc953c6eb",
      "tree": "bb36d90e914f8a842abd7dd854ba168f9441e8db",
      "parents": [
        "a20b7b3ecf90bb761d7085403782721f2fb474c5"
      ],
      "author": {
        "name": "jgu21",
        "email": "jinghui.gu@intel.com",
        "time": "Wed Sep 10 06:57:17 2014 -0400"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 23 20:11:31 2014 -0700"
      },
      "message": "ART: Update for split native bridge initialization\n\nChange-Id: I0b93da93251c6b4638de786bf98cf99df07c3fc2\n"
    },
    {
      "commit": "3c13a794845e0cf7887e33b2ec20de7e6ba85f8f",
      "tree": "ab9a9a426a371de0c32e48a85fdda44a321a06a0",
      "parents": [
        "5cdd0734d2f79eedc530f5f1e876cd2110e29c86"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 20:56:04 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 23:43:07 2014 -0700"
      },
      "message": "ART: Only allow the zygote to create the global boot image\n\nDo not allow arbitrary processes, even when root, to write the\nboot image in /data/dalvik-cache.\n\nBug: 17478752, 17510489, 17439961\nChange-Id: Iba2b74be6d0752f4221f4ff5ee295b45a34cb2e1\n(cherry picked from commit 33c36d4f22ab6a5e61eb47b654deaf647c34e49c)\n"
    },
    {
      "commit": "c64746c1d224143d85232c8899126930e3fe5d27",
      "tree": "a77338f0414dddef6a9371b90c1d71f55fd1a17d",
      "parents": [
        "53562d9a8fb210cf33a694f5e81f3d13ce3a8c48",
        "cefcea838729287a04174664a76514dd793dd77d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 18 18:24:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 18 18:24:06 2014 +0000"
      },
      "message": "Merge \"Don\u0027t call dlsym from signal context in signal chain\""
    },
    {
      "commit": "69dbec6d9d55eeb2867949c2791d01dc9aa916c8",
      "tree": "be4eca8161eafb4a8466f5adf28a2c8f27cd37d1",
      "parents": [
        "926d8e99aa69151a271180299df68963688010d8"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Sep 15 18:03:41 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 17 14:31:55 2014 -0700"
      },
      "message": "Avoid suspending for alloc trace enabling when already suspended.\n\nBug: 17499772\n\n(cherry picked from commit 1d6ee090fddd4bfd35c304d6ceb929d5c529dfcc)\n\nChange-Id: Id09809c476c685f0a197ee75bb08638931364efd\n"
    },
    {
      "commit": "2dbe627954fd78a3659ab3cd42d2ead5b4529441",
      "tree": "c91bf8184bf30260a00364733e38336037d64762",
      "parents": [
        "19f7c95491a053b818f914137fa73df0517b8792"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 16 10:43:23 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 16 16:03:41 2014 -0700"
      },
      "message": "Add runtime options for large object space\n\nAdds the two following options:\nOption -XX:LargeObjectSpace\u003d{freelist, map, disabled}\nOption -XX:LargeObjectThreshold\u003dsize specifies the size for which\nprimitive arrays are allocated in the large object space.\n\nAdded handling for large object space \u003d\u003d null in collectors.\n\nFixed an error in the mem map space where we didn\u0027t use the page\naligned size LOS for bytes allocated, this resutled in heaps appearing\na bit smaller than they should be.\n\nChange-Id: I6f17c3534b59e7dc68cd375153e7a846799b3da4\n"
    },
    {
      "commit": "cefcea838729287a04174664a76514dd793dd77d",
      "tree": "1feb269b6224d0448f15502eb09da4a97dc67b24",
      "parents": [
        "5733b35c23792834f3a2374003c109301a48867c"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Sep 16 10:01:01 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Sep 16 10:11:17 2014 -0700"
      },
      "message": "Don\u0027t call dlsym from signal context in signal chain\n\nIt is dangerous to call dlsym from within a signal context\nsince it takes a lock and can lead to a mutex reentry attempt if\ntiming is bad.\n\nThis change adds an initialization function to the signal chain\nthat calls dlsym for sigaction and sigprocmask from outside the\nsignal context (from Runtime::Init()).  The results are cached\nin a static variable and used from within the signal context if\nnecessary.\n\nHowever, tests don\u0027t necessarily call Runtime::Init() so we also\nneed to deal with the case where the signal chain is not initialized\nand perform a lazy initialization from inside sigaction or sigprocmask.\nThis is always outside a signal context since we have not initialized\nthe runtime.\n\nBug: 17498571\nChange-Id: I59eebfc67cc91c6f1d781a73e5d432ca5269ee48\n"
    },
    {
      "commit": "a5a53efea976af505f4f849b5925d5e14c4f8e5c",
      "tree": "455a536a9394908c17ec1ede04ab7ec49f9d3420",
      "parents": [
        "91bbd5347b391278b56440b2dbb0b77526bae4e8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 12 12:58:05 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Sep 14 14:48:24 2014 -0700"
      },
      "message": "Add native support for FinalizerList.makeCircularListIfUnenqueued\n\nCalled from FinalizerReference.enqueueSentinelReference to prevent\na race where the GC updates pendingNext of the sentinel reference\nbefore enqueueSentinelReference.\n\nBug: 17462553\n\n(cherry picked from commit 3256166df40981f1f1997a5f00303712277c963f)\n\nChange-Id: I7ad2fd250c2715d1aeb919bd548ef9aab24f30a2\n"
    },
    {
      "commit": "7c438b19b71932ac8a44eff44f20744a01559c8d",
      "tree": "f724004a682cb7c2faa0d12579756c3a81b98252",
      "parents": [
        "ebab3bbcaa09b644acd50ec18d79cb0d239bf347"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 12 17:01:24 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 12 18:27:38 2014 -0700"
      },
      "message": "Fix stale root error in verifier\n\nThere was a stale root error caused by the static roots from\nthe reg types. These were visitied if there was an active verifier\nin the method_verifiers_ but this is not always the case when a GC\nis run. The fix is to always visit the static method verifier roots.\n\nThis only showed up as a bug without an image since these roots\nwere primitive classes and always in the image, and therefore\ndidn\u0027t ever need to be updated due to moving GC.\n\n(cherry picked from commit 6167864e28e4e12658ebdbaf1d5239acdaf4aaa4)\n\nChange-Id: I592f2770570de97b431671cfbd409f63697892f1\n"
    },
    {
      "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": "b9620f305c79914f5159cf9279a7ccd173af1186",
      "tree": "edfb15d759f16808d575cb849302fc2fd22d6709",
      "parents": [
        "575a5649715ee50e0de8a107e8a5379d4c465382",
        "928f72bd75c385ba2708c58521171a77264d4486"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 10 23:43:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 10 23:43:32 2014 +0000"
      },
      "message": "Merge \"ART: Fix things for valgrind\""
    },
    {
      "commit": "928f72bd75c385ba2708c58521171a77264d4486",
      "tree": "86f7fa7a21e3f6d21c9cab2d4fffe4aaa42dc458",
      "parents": [
        "dab9ed52f2df7189b81ccf3237b030ff638a492a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 09 19:53:48 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 10 15:50:42 2014 -0700"
      },
      "message": "ART: Fix things for valgrind\n\nWire up valgrind gtests. Add valgrind-test-art-host, currently\nonly depending on valgrind-test-art-host-gtest32.\n\nFix an Alloc setting to allow running valgrind.\n\nRefactor the fault handler to manage (and correctly release) the\nhandlers.\n\nFix minor failure-case leaks exposed by tests.\n\nFailing tests:\n\nThe optimizing compiler is leaking non-arena-ed structures\n(e.g., assembler buffers), as code generators are not destroyed.\nThe solution has been moved to a follow-up CL.\n\nNote: All 64b tests are failing as we cannot allocate a heap.\n\nChange-Id: I7f854cfd098d9f68107ce492363e7dba9a82b9fa\n"
    },
    {
      "commit": "44ff47008394f4451ab37dec2852e52b794e6e4a",
      "tree": "563917c17dcf4602f90e20dd3c4e98101a068234",
      "parents": [
        "55454c52abdb496bb6fc070f0fd1c618f7a926aa",
        "8a74117cac720239a69e60e734c7044b433fad47"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 10 17:02:31 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 10 17:02:31 2014 +0000"
      },
      "message": "Merge \"Address read barrier issue with cl/106467\""
    },
    {
      "commit": "aa4497db59f1eeec954f2ba5da6d458fcdf9b3a4",
      "tree": "1efe5c6c5fe93ae73b6ad02db1a4ac368c71c00e",
      "parents": [
        "6724a9531c92368491dd17937d0087f73a7c0642"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 05 14:01:17 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 10 16:02:14 2014 +0100"
      },
      "message": "Improve dex location canonicalization-related performance.\n\nEagerly add canonical dex file locations to the OatFile\u0027s\nprimary lookup map in Setup(). This moves the boot.oat work\nfrom every app startup to the zygote initialization. Since\nwe always ended up initializing the canonical location map\nanyway due to the way that we\u0027re loading dex files, the lazy\ninitialization didn\u0027t save anything.\n\nClean up dex file name canonicalization to make sure we\nfree() the memory returned by realpath() rather than using\nstd::unique_ptr\u003c\u003e with the default deleter.\n\nAvoid some unnecessary duplicate OatDexFile lookups.\n\nBug: 16828525\nBug: 17346103\nChange-Id: Id8fbc8992f62996138eb2006a0046c6529747c09\n"
    },
    {
      "commit": "8a74117cac720239a69e60e734c7044b433fad47",
      "tree": "88663982b24ac419886c432b22aebb1387c0039a",
      "parents": [
        "9b2b927f573264c2f0d66b24ceeb361857a41ab3"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Sep 08 13:22:56 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 09 14:19:23 2014 -0700"
      },
      "message": "Address read barrier issue with cl/106467\n\nAnd tidy/add a check.\n\nBug: 12687968\nChange-Id: If63dc0d9d0a0ce5f2eeb81734ff8f4307865f67d\n"
    },
    {
      "commit": "0e59bf8b767e9be7ea22c67011ea902d597fe43f",
      "tree": "bf6fbf9900ecf85d331023341af7908642825b23",
      "parents": [
        "552da6697f77b1d94a69b0ba54509a25a0de3ae7",
        "6be67eeedbe60afce42300ae3e7f0e7180a96efa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 04 21:47:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 04 21:47:08 2014 +0000"
      },
      "message": "Merge \"ART: Change ART for new native bridge sequence\""
    },
    {
      "commit": "6be67eeedbe60afce42300ae3e7f0e7180a96efa",
      "tree": "404ed85d5c31744e66405d0147d9f14a67887428",
      "parents": [
        "47e877ab2d6744f4360d37f179eb5affd6a46470"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 02 21:22:18 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 04 12:46:09 2014 -0700"
      },
      "message": "ART: Change ART for new native bridge sequence\n\nInitialize or unload after a fork.\n\nChange-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67\n"
    },
    {
      "commit": "a07557ccece64fa7084bb01b9d26957bd0977c10",
      "tree": "c2864dffb3324039745112b602cae2eff699a5a4",
      "parents": [
        "2a09504334a3a3b4c47100197df0827cc6740433",
        "c0542af3e2170143ba40d89136e284997e16bf64"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 04 00:20:48 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 04 00:20:48 2014 +0000"
      },
      "message": "Merge \"Remove abuse of mirror::Object* to reference special values.\""
    },
    {
      "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": "62bcfec936692ff4f75cdc3267c081080b0e6acc",
      "tree": "b9a457ead8ee317c62c842a2a98b9d6294d7d577",
      "parents": [
        "d3c9358544bbab15093614c5c2b6a9de86e11f7b",
        "cdfd39f579574a75b98e7ad48c69826b00361b27"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 02 23:42:02 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 02 23:42:02 2014 +0000"
      },
      "message": "Merge \"Change intern table to unordered set.\""
    },
    {
      "commit": "63557459a4098294a9ff44d035241de2966047c0",
      "tree": "0c0b200ee1da9d269e77c2c6d2cacc7efa43f6e2",
      "parents": [
        "9a4f02722051955e536d6aacb776d637a6713545"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 04 16:57:15 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 02 15:41:21 2014 -0700"
      },
      "message": "Pre-allocate the NoClassDefFoundError to be thrown for boot classes.\n\nBring over a Dalvik \"optimization\".\nBug: 12804658\nBug: 16853450\nChange-Id: I6419de7bd2ba18d91479cb52489104954f5c4524\n"
    },
    {
      "commit": "cdfd39f579574a75b98e7ad48c69826b00361b27",
      "tree": "0f057472d19bf290766e20ea3ad63d0b28ee83a1",
      "parents": [
        "9a4f02722051955e536d6aacb776d637a6713545"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 29 18:16:58 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 02 14:39:49 2014 -0700"
      },
      "message": "Change intern table to unordered set.\n\nIntern table active used bytes goes from 430k to 317k on system\nserver. Similar %wise savings on other apps.\n\nBug: 16238192\n\n(cherry picked from commit d910fcef539e12ab181e56ec80684f39c4e95733)\n\nChange-Id: Ic70395124435c6f420a77e6d8639404a160f395a\n"
    },
    {
      "commit": "bad0267eaab9d6a522d05469ff90501deefdb88b",
      "tree": "1ce689b75184cb322b9edde34d7af938c658a6ae",
      "parents": [
        "0772a9d99c8774463c9076824340eaa4eb66f47f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 25 13:08:22 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 29 18:57:35 2014 -0700"
      },
      "message": "Add native memory accounting through custom allocator.\n\nAdded a custom allocator that lets you pass in a special tag which\nspecifices where the allocation came from. This is used when\ndumping. The performance overhead is low since each allocation only\ndoes a atomic add/sub for each allocation/free.\n\nThe measurements are dumped to traces.txt during SIGQUIT.\n\nExample output:\nI/art     (27274): AllocatorTagHeap active\u003d120 max\u003d120 total\u003d168\nI/art     (27274): AllocatorTagMonitorList active\u003d1572 max\u003d6240 total\u003d11724\nI/art     (27274): AllocatorTagClassTable active\u003d185208 max\u003d185208 total\u003d268608\nI/art     (27274): AllocatorTagInternTable active\u003d430368 max\u003d430368 total\u003d436080\nI/art     (27274): AllocatorTagMaps active\u003d5616 max\u003d6168 total\u003d34392\nI/art     (27274): AllocatorTagLOS active\u003d1024 max\u003d1536 total\u003d2044\nI/art     (27274): AllocatorTagSafeMap active\u003d0 max\u003d51936 total\u003d533688\nI/art     (27274): AllocatorTagLOSMaps active\u003d144 max\u003d1248 total\u003d5760\nI/art     (27274): AllocatorTagReferenceTable active\u003d10944 max\u003d11840 total\u003d19136\nI/art     (27274): AllocatorTagHeapBitmap active\u003d32 max\u003d40 total\u003d56\nI/art     (27274): AllocatorTagHeapBitmapLOS active\u003d8 max\u003d8 total\u003d8\nI/art     (27274): AllocatorTagVerifier active\u003d0 max\u003d18844 total\u003d1073156\nI/art     (27274): AllocatorTagModUnionCardSet active\u003d5300 max\u003d5920 total\u003d56020\nI/art     (27274): AllocatorTagModUnionReferenceArray active\u003d24864 max\u003d24864 total\u003d24864\nI/art     (27274): AllocatorTagJNILibrarires active\u003d320 max\u003d320 total\u003d320\nI/art     (27274): AllocatorTagOatFile active\u003d1400 max\u003d1400 total\u003d5852\n\nChange-Id: Ibb470ef2e9c9a24563bb46422d46a55799704d82\n\n(cherry picked from commit 5369c40f75fdcb1be7a7c06db212ce965c83a164)\n"
    },
    {
      "commit": "84d7605f93f1e6e86a16e02017e305c90e93117a",
      "tree": "4602fe9beb2c0e59ff89a828473c1c2acf07930b",
      "parents": [
        "a9ffc181c61f5634753bf1039ed50bf22c800fde"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 22 17:49:35 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 26 16:39:14 2014 -0700"
      },
      "message": "Support booting without functioning boot.oat/art patchoat.\n\nBug: 17000769\n\nChange-Id: I89c26a905af12ea288742368c2c038afd57a879a\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": "e25826e28ea65d9c1aa23f84788a091c677b20c7",
      "tree": "0d89c7f23c5095907756a53ef8ebdaf92db0a48d",
      "parents": [
        "21259fedf4fd0f786c71f69493ebfbb9affe3a8d",
        "64ad14dbe2225441fb7734bf6d89358d96692eea"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 25 17:51:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 25 17:51:38 2014 +0000"
      },
      "message": "Merge \"Support running without a boot image.\""
    },
    {
      "commit": "64ad14dbe2225441fb7734bf6d89358d96692eea",
      "tree": "8992ebe906a4a0040502132aa9c77628a0a5ced6",
      "parents": [
        "688d4a42ff5ab3bcb28d516afcb80b79c392e8e4"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 19 14:23:13 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Aug 25 10:36:26 2014 -0700"
      },
      "message": "Support running without a boot image.\n\nBug: 17000769\n\nChange-Id: I6404d5050c8a2f4ee6e70d58532eb25ee9de248e\n"
    },
    {
      "commit": "6a7824dc81aaab3cb09ced16affca72d1b1da649",
      "tree": "ef5eb2f5f882fb1e1c8f3abb00d2837521e62b59",
      "parents": [
        "e18aa4316eb9a15cd6b1051f27a1ce49967c170e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 22 14:53:04 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 22 18:01:39 2014 -0700"
      },
      "message": "Add fallback for non moving space being full.\n\nWhen the non moving space becomes full, we disable moving GC and\nmake the main space the new non moving space.\n\nAlso added a runtime option for changing the non moving space size:\n-XX:NonMovingSpaceCapacity.\n\nBug: 17189964\n\n(cherry picked from commit 4c5a469683e433f126c9863cd393747d2e7c4a29)\n\nChange-Id: If82e3c6f8a0f389e37e14a0b1e6d5126d571fd7a\n"
    },
    {
      "commit": "a68629ed992e2eef7b139b09e46ebe8fd3fb5ef2",
      "tree": "a956520cee8d9057ef887f85e185e323e07325ce",
      "parents": [
        "a37ad7a6caad2e0a83c72c1103015202cbcaf1a4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Aug 22 12:53:59 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Aug 22 18:04:44 2014 +0100"
      },
      "message": "Always setup the native bridge library\n\n... even if the string is empty. This will initialize the native bridge\nlibrary but mark it as unavailable.\n\n- also, rename native_bridge_library_path to\nnative_bridge_library_filename to be closer to the actual meaning (it\u0027s\njust the filename without any path).\n\nBug: 16404669\n\n(cherry picked from commit I94628639691459d48d1fbf0841f36b68d51818e7)\n\nChange-Id: I94628639691459d48d1fbf0841f36b68d51818e7\n"
    },
    {
      "commit": "1f8ef6fa2fb5d79799371f8bf745824b78bc48f2",
      "tree": "0ecf06cfc561501ad65ad774848ce2f30808c123",
      "parents": [
        "00b3024b350afef115bddea712705bdb4877ac11"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Aug 20 17:38:41 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Aug 21 12:04:02 2014 -0700"
      },
      "message": "Fix fault handler to unregister on shutdown\n\nThis fixes a problem with the fault handler where it wasn\u0027t\nunregistering itself during shutdown of the runtime.\n\nBug: 17133266\n\n(cherry picked from commit e8b9afcd0cd86b8808af29a97332038aab70c604)\n\nChange-Id: I1a4ec4292ec049046dda30769265680201729efb\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": "37f048b19da5ac245a6b2a8473b326d2167cc692",
      "tree": "bf3faf13e33e22c2029b63784c1fefd13cc7484e",
      "parents": [
        "d684cbfbe8abfb9aea4de27687041243217295c7",
        "c8423521c1d1136c70b153479b7df3bf4fd7fc2a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Aug 15 11:35:52 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 15 04:45:58 2014 +0000"
      },
      "message": "Merge \"[ART] Move to system/core native bridge library\""
    },
    {
      "commit": "c8423521c1d1136c70b153479b7df3bf4fd7fc2a",
      "tree": "f7a0d12391f843d1b1eac1b0227c3237e7da3920",
      "parents": [
        "02a6317297b8745637b265ab75abbfa685879882"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Aug 12 20:55:20 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Aug 15 10:10:09 2014 +0100"
      },
      "message": "[ART] Move to system/core native bridge library\n\nSome cleanups on the way:\n- move NativeBridgeRuntimeCallbacks from a global to a field\n- rename native_bridge_library_string to the more suggestive\nnavtive_bridge_library_path\n- clean up imports\n\nBug: 16884833\nChange-Id: I73aab8e212860ba5aee9444d801806d3da326a41\n"
    }
  ],
  "next": "4fcdc94d22a4608e355aa8df36240181149d10e8"
}
