)]}'
{
  "log": [
    {
      "commit": "5c1960762510a916ffdc43331e5f43b37e034b39",
      "tree": "3bfb22b588373e180e9edfe8bfa3f7cfa9f6b6a8",
      "parents": [
        "5e0a9849d4e353c3726095b65ab07cefce40a636"
      ],
      "author": {
        "name": "Chenfu Bao",
        "email": "emailwrong@gmail.com",
        "time": "Mon Dec 29 16:10:45 2014 +0800"
      },
      "committer": {
        "name": "Chenfu Bao",
        "email": "emailwrong@gmail.com",
        "time": "Mon Dec 29 10:23:37 2014 +0000"
      },
      "message": "Update oat version to 053.\n\nOat version in class OatHeader had increased to 052, \nbut commit 2bcb3b228bc418bcc7fdc3d58d0a0da422a0b6d5\n(changeID I8cef1c6cc9cb2faa052167a3437e81b4c2cbefa7)\nchanged it back to 045.\n\nChange-Id: I5bf7b995c9d99a536f6356d9fd5b5e746a933f2e\nSigned-off-by: Chenfu Bao \u003cemailwrong@gmail.com\u003e"
    },
    {
      "commit": "7e541c91997b7747fa79014a8ea540395e54efc8",
      "tree": "ccd47096963dae48cad1a268f545fdd9b86d788e",
      "parents": [
        "5c79aec9d53d1320041d5a52e5115d78d16035b7"
      ],
      "author": {
        "name": "Stephen Kyle",
        "email": "stephen.kyle@arm.com",
        "time": "Wed Dec 17 17:10:02 2014 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 22 13:26:32 2014 -0800"
      },
      "message": "ART: Fix verification of constructors.\n\nSummary:\n\nA constructor must call its superclass constructor. However, if one\nreplaces the invoke-direct superclass.\u003cinit\u003e() instruction with a\nvariety of instructions, the verifier would NOT complain that the\nsuperclass constructor hadn\u0027t been called.\n\nDetailed explanation:\n\nThis was because if we are verifying the return-void insn of a\nconstructor, then we check that the register line doesn\u0027t contain a\nregister with an UninitializedThis type. With a method like follows:\n\nClass.\u003cinit\u003e()V:\n  return-void\n\nThen we hit the return-void, see the UninitializedThis, and fail the\nmethod. However, with a method like follows:\n\nClass.\u003cinit\u003e()V:\n  nop\n  return-void\n\nAny insn that continues or branches onto a return-void instruction will\nmark all of the registers as Conflict. This meant that the check in\nreturn-void for an UninitializedThis residing the register line would\n_always_ pass if there were any insns before it - the entire line had\nbeen set to Conflict.\n\nThe fix is to bring the check for an UninitializedThis forward to the\npoint just before we set all registers to Conflict, if we\u0027re about to\nhit a return-void insn in a constructor. It still needs to be done\nagain in the verification of return-void itself, to avoid the solo\nreturn-void case.\n\nThis patch also deals with the case where the only remaining\nUninitializedThis reference is overwritten, to avoid a method like the\nfollowing from getting through verification:\n\nClass.\u003cinit\u003e()V:\n  const/4 v0, 0\n  return-void\n\nBug: 18800943\n\nChange-Id: I2e317261844d3b6c78e35228669f3da173316570\nFuzzed-With: https://android-review.googlesource.com/#/c/119463/\n"
    },
    {
      "commit": "5c79aec9d53d1320041d5a52e5115d78d16035b7",
      "tree": "0e36345912571fc0e3e01976f6b698b631706bb7",
      "parents": [
        "508d2665febbb06c853bfab131c4dc7164fffabb",
        "e21dc3db191df04c100620965bee4617b3b24397"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 22 18:30:07 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 22 18:30:07 2014 +0000"
      },
      "message": "Merge \"ART: Swap-space in the compiler\""
    },
    {
      "commit": "e21dc3db191df04c100620965bee4617b3b24397",
      "tree": "2ad762c6afb024bf95e1eced3d584649a4d57d23",
      "parents": [
        "6d1a047b4b3f9707d4ee1cc19e99717ee021ef48"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 08 16:59:43 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 22 10:01:27 2014 -0800"
      },
      "message": "ART: Swap-space in the compiler\n\nIntroduce a swap-space and corresponding allocator to transparently\nswitch native allocations to memory backed by a file.\n\nBug: 18596910\n\n(cherry picked from commit 62746d8d9c4400e4764f162b22bfb1a32be287a9)\n\nChange-Id: I131448f3907115054a592af73db86d2b9257ea33\n"
    },
    {
      "commit": "508d2665febbb06c853bfab131c4dc7164fffabb",
      "tree": "31e5dbc57686d3bbf0d78b49ecbe454acfee7867",
      "parents": [
        "094368ae2fa7a4eeaafb44f6018e498c1054af60",
        "a87630724ef4f8760684fa69c8ecc685735aff88"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 22 17:43:36 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 22 17:43:37 2014 +0000"
      },
      "message": "Merge \"ART: Do not JNI abort on nullptr GetObjectRefType\""
    },
    {
      "commit": "a87630724ef4f8760684fa69c8ecc685735aff88",
      "tree": "516aae0158dae68f79504a66b5dc417c5817c510",
      "parents": [
        "6d1a047b4b3f9707d4ee1cc19e99717ee021ef48"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Dec 20 00:08:35 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 22 09:41:54 2014 -0800"
      },
      "message": "ART: Do not JNI abort on nullptr GetObjectRefType\n\nA nullptr is a valid input, as it is different from a null reference.\n\nBug: 18820997\nChange-Id: Ibda8907ba13b20d2055049492a356ffdf4ddc714\n"
    },
    {
      "commit": "094368ae2fa7a4eeaafb44f6018e498c1054af60",
      "tree": "660d6f3881fd0df7754547ba213839c98a73fbfa",
      "parents": [
        "48e7f3374eb6f042c12cd540ce73c7cddc366bb4",
        "d2abbc9829ea0f657557c247a7c48c825dacfccd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Dec 20 07:25:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 20 07:26:00 2014 +0000"
      },
      "message": "Merge \"ART: Use interpret-only for vmSafeMode\""
    },
    {
      "commit": "d2abbc9829ea0f657557c247a7c48c825dacfccd",
      "tree": "210fd9c022f990eb87463781f67fb6bdd6a220c4",
      "parents": [
        "6d1a047b4b3f9707d4ee1cc19e99717ee021ef48"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 19 09:53:27 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 19 23:13:40 2014 -0800"
      },
      "message": "ART: Use interpret-only for vmSafeMode\n\nSet the compiler filter when the zygote tells us that the app is\nin vmSafeMode. This ensures that secondary dex files will also be\ncompiled interpret-only.\n\nBug: 18812762\n\n(cherry picked from commit 44893692bfb25ceb5c7c5b2e5c606948fbdea298)\n\nChange-Id: Idb61870beebe2eeb5b11554f95ea6a725c77f16a\n"
    },
    {
      "commit": "48e7f3374eb6f042c12cd540ce73c7cddc366bb4",
      "tree": "f258dd39fcf217ac4b5eff7b8b2516bfd045a9de",
      "parents": [
        "a02bd15aa43d7583560ec81e57ae0d350ff9a3d5",
        "a5eae69589ff562ad66c57665882cd16f237321c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Dec 20 02:01:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 20 02:01:03 2014 +0000"
      },
      "message": "Merge \"Add heap task processor\""
    },
    {
      "commit": "a5eae69589ff562ad66c57665882cd16f237321c",
      "tree": "b80e50c050f5d32fc7b258ef1446a245a97c3df8",
      "parents": [
        "6d1a047b4b3f9707d4ee1cc19e99717ee021ef48"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 17 17:56:03 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 19 17:08:43 2014 -0800"
      },
      "message": "Add heap task processor\n\nThe heap task processor processes async tasks which may be delayed.\nThe motivation for this change is preventing deadlocks which\ncan occur when the daemon threads get suspended by GetThreadStack.\n\nOther improvements, reduces daemon thread count by one.\nCleaner pending transition VS heap trimming logic.\n\nBug: 18739541\n\nChange-Id: Idab52b2d9661a6385cada74b93ff297ddc55fc78\n"
    },
    {
      "commit": "fa28ef0191e5f65bdf5932675f49d897bdc480b2",
      "tree": "b682f4d5c33d04424f255ca76628716a149fde46",
      "parents": [
        "e1cb3301b9d3afc488a916b6c75bf7e2885eec81",
        "94c41dfcaf4bc131964ddd3013432841b07c3839"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Dec 19 20:16:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 19 20:16:12 2014 +0000"
      },
      "message": "Merge \"Pass the real capacity to CreateRosAlloc.\""
    },
    {
      "commit": "94c41dfcaf4bc131964ddd3013432841b07c3839",
      "tree": "59a8c8d45d5eb3abb40fea8b45141f5e5409f8fe",
      "parents": [
        "193c7a94822f765b0b6b0cecd54c9f08dfd26425"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Dec 18 21:19:24 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Dec 18 21:19:24 2014 -0800"
      },
      "message": "Pass the real capacity to CreateRosAlloc.\n\nBug: 18808732\nChange-Id: Id563eb22e8d571c0ef032628b6ba2f3d357fd002\n"
    },
    {
      "commit": "23f6e69e374ce4a7fd0d45f633a3c9efcc8e8a07",
      "tree": "38d80321f7132212d358c1f4f851906a50886d7a",
      "parents": [
        "16b10882f4ce9e5822b278ef0b0adf83afa1b334"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 18 18:24:39 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 18 18:24:39 2014 -0800"
      },
      "message": "Only dump suspend all histogram if we have samples\n\nHelps fix gcstress ThreadStress.\n\nBug: 18576985\nChange-Id: Ibebc0fed8a21e7b149f4b6e5154fb86deddcc68f\n"
    },
    {
      "commit": "fcd3f33dde47ce13305a7dfb5a665bf832535ae4",
      "tree": "137a2f259ab37c1f2eeafbb62cfb0d78e5e5f097",
      "parents": [
        "58a1c07b7f01ed9b85fb89bfd4dab7ddd138cfcd",
        "e4b7c892c4f40e76c172a77069afde3fe5ce87da"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Dec 18 08:43:14 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 18 08:43:14 2014 +0000"
      },
      "message": "Merge \"Use correct handle scope offset from StackVisitor\""
    },
    {
      "commit": "e4b7c892c4f40e76c172a77069afde3fe5ce87da",
      "tree": "0d4b8c9725b476859e6e894922d5c725102147fc",
      "parents": [
        "f610c0597e001cb1043aa4074afe25ae79a800e3"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Dec 17 20:02:50 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Dec 18 09:30:14 2014 +0100"
      },
      "message": "Use correct handle scope offset from StackVisitor\n\nBug: 18785293\nChange-Id: I10e144cffac00978e3c84d43a30caccd61559b27\n"
    },
    {
      "commit": "58a1c07b7f01ed9b85fb89bfd4dab7ddd138cfcd",
      "tree": "180260fcec7136d16f39fe3bae43071fd6d08add",
      "parents": [
        "7c378e4bc3aa6928f48d235e88e652e8b82beef4",
        "7d95565c84d91ae5dcec4b89728ada208633de0c"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Dec 18 08:16:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 18 08:16:27 2014 +0000"
      },
      "message": "Merge \"Cleanup JDWP event matching\""
    },
    {
      "commit": "7c378e4bc3aa6928f48d235e88e652e8b82beef4",
      "tree": "2bb34251789825d73799e410c09ea17487d39489",
      "parents": [
        "bf7b41ff04e5cf70660b50f7b7f2c14d94b8bf6d",
        "a1b94c6d06e3cf2aa4f3aa42a1133995a4d8a1fb"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Dec 18 05:34:54 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 18 05:34:54 2014 +0000"
      },
      "message": "Merge \"Fix a race condition during the rosalloc verification.\""
    },
    {
      "commit": "bf7b41ff04e5cf70660b50f7b7f2c14d94b8bf6d",
      "tree": "92f08bd865b22ad51d038ef946488abc27e49a54",
      "parents": [
        "55b752a817a08be46b167e07d7fee3d20a8e6a9c",
        "e2c2f6e61df0bfa1516bfc8943e78ea610d4d878"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 18 03:51:42 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 18 03:51:42 2014 +0000"
      },
      "message": "Merge \"Fix concurrent GC ergonomics\""
    },
    {
      "commit": "a1b94c6d06e3cf2aa4f3aa42a1133995a4d8a1fb",
      "tree": "f17b6e4a2182a1678a0a52f6728ed1624ec1d1a9",
      "parents": [
        "e9231c0aecc013c61b6cf7f88a228204651d4d41"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Dec 17 15:49:56 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Dec 17 19:29:10 2014 -0800"
      },
      "message": "Fix a race condition during the rosalloc verification.\n\nSince an exiting thread could revoke its thread-local runs without\nholding the mutator lock, when rosalloc verification is running at a\npause, the thread could concurrently modify runs and cause a race\ncondition/verification check failure.\n\nNow an exiting thread acquires the mutator lock when it revokes its\nthread-local runs, which should avoid the race condition.\n\nBug: 18734151\nBug: 18577084\nChange-Id: Ic8af558b96dff6fb6f5ace65351e2824a6ff4629\n"
    },
    {
      "commit": "e2c2f6e61df0bfa1516bfc8943e78ea610d4d878",
      "tree": "e993fb6cb53a5e66e204e5fae1cc9a397320c739",
      "parents": [
        "3e2f0fc584463e9da1142a5011ac3f7bcf083e0f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 16 18:49:31 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 17 18:14:34 2014 -0800"
      },
      "message": "Fix concurrent GC ergonomics\n\nFixed a race with the gc_request_pending_ boolean which would cause\ntwo concurrent GCs to start in a row in most cases. This broke sticky\nCMS ergonomics since the second GC was a sticky CMS which started way\ntoo early resulting in low throughput. Since the throughput was low,\nit switch to partial / full for the next iteration.\n\nThe race happened as follows, allocating thread would request\nconcurrent GC which woke up the daemon thread. The daemon thread\ncleared the gc_request_pending_ boolean, but before we set the\nconcurrent_start_bytes_ to max in to prevent more request, the\nallocating thread would call RequestConcurrentGC again. This caused\nthe next WaitForConcurrentGCRequest to return right away and a\nconcurrent GC to occur earlier than necessary.\n\nChanged the allocation rate ergonomics to use allocation rate\nduring the GC instead of allocation rate inbetween GCs, this is\nbetter since the allocation rate may become slower if the GC steals\nmutator time, resulting in concurrent GCs starting a bit earlier\nthan they need to.\n\nFixed a bug in GrowForUtilization where we didn\u0027t use the adjusted\nmax_free when we shrank down the heap, this caused the sticky CMS to\noccasionally shrink the heap more than necessary.\n\nEvaluateAndApplyChanges:\nBefore: ~12.6s GC time\nAfter: ~7.75s GC time\n\nChange-Id: I354bc825b3c44ccfbfe867af0d437b17fe1fe022\n"
    },
    {
      "commit": "70a596d61f8cf5b6447326c46c3386e0fbd5bfb5",
      "tree": "f7affe0a976165eb9ff789270d314463f6e36660",
      "parents": [
        "e9231c0aecc013c61b6cf7f88a228204651d4d41"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 17 14:56:47 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 17 16:03:58 2014 -0800"
      },
      "message": "Add thread suspend histogram\n\nHelps measure time to suspend.\nExample output (maps after a few seconds):\nsuspend all histogram:  Sum: 2.806ms 99% C.I. 2us-1090.560us Avg: 43.843us Max: 1126us\n\nChange-Id: I7bd9dd3b401fb3e3059e8718556d60910e541611\n"
    },
    {
      "commit": "e9231c0aecc013c61b6cf7f88a228204651d4d41",
      "tree": "e646d3e36245dd2b39de6d9654b00801f57ee95a",
      "parents": [
        "d457b9cebceecc9d54fb569ea76509341153bf5c",
        "3774335b08076117d6950cd472cdd59a167470b5"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Dec 17 22:04:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 17 22:04:19 2014 +0000"
      },
      "message": "Merge \"Add a new imgdiag tool to diff boot.art/core.art against a process\""
    },
    {
      "commit": "d457b9cebceecc9d54fb569ea76509341153bf5c",
      "tree": "a3ea3f9bf0871f5c135754f5088ee15352e33917",
      "parents": [
        "28d6b6c06fdb6c3dc30beb7883fa64f2b693d9ab",
        "f0dc8b5519102b3d3e738aed846975ae4239421e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 17 19:13:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 17 19:13:39 2014 +0000"
      },
      "message": "Merge \"Add systrace events to monitors and thread suspension\""
    },
    {
      "commit": "f0dc8b5519102b3d3e738aed846975ae4239421e",
      "tree": "cf6c6b20c12e79595fc680f5da6de5575a6ea80f",
      "parents": [
        "3e2f0fc584463e9da1142a5011ac3f7bcf083e0f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 17 10:13:30 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 17 11:08:15 2014 -0800"
      },
      "message": "Add systrace events to monitors and thread suspension\n\nAdded systrace events to SuspendThreadByPeer, SuspendThreadByThreadId\nand monitor contention.\n\nBug: 18379850\nBug: 17470248\nChange-Id: I29eaf97c67361a6c6b437940b8729600d78696df\n"
    },
    {
      "commit": "28d6b6c06fdb6c3dc30beb7883fa64f2b693d9ab",
      "tree": "752c97d515969554a92c31bb85b59651c0b9b7f3",
      "parents": [
        "7587082c370ef1a90797baf2371ee8e472b2adb8",
        "abe93e0098a2648fa286cfea01954737e32c7be9"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Dec 17 18:59:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 17 18:59:45 2014 +0000"
      },
      "message": "Merge \"JDWP: fix setting multiple breakpoints in the same method\""
    },
    {
      "commit": "abe93e0098a2648fa286cfea01954737e32c7be9",
      "tree": "50830ce10a63def20a05e5a5660434472366d454",
      "parents": [
        "f610c0597e001cb1043aa4074afe25ae79a800e3"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Dec 17 16:35:50 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Dec 17 17:52:20 2014 +0100"
      },
      "message": "JDWP: fix setting multiple breakpoints in the same method\n\nWhen setting multiple breakpoints in the same method, we were\nincorrectly setting the deoptimization kind of all the breakpoints\nset after a first breakpoint. This resulted in incorrect\ndeoptimization/undeoptimization and even an abort. This was caught\nby running the debugger with sanity checks enabled with libartd.so.\n\nWe now set next breakpoints with the deoptimization kind of the first\nexisting breakpoint (if any) so we trigger right [un]deoptimization\nwhen adding or removing a breakpoint.\n\nBug: 18782753\nBug: 18651686\nChange-Id: Idf36ede73302fba83a154052bef701bedc8bc726\n"
    },
    {
      "commit": "7d95565c84d91ae5dcec4b89728ada208633de0c",
      "tree": "3d45e97f3ca520a07c5005974b092e10fee0a433",
      "parents": [
        "f610c0597e001cb1043aa4074afe25ae79a800e3"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Oct 22 10:57:10 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Dec 17 09:38:28 2014 +0100"
      },
      "message": "Cleanup JDWP event matching\n\n* Use std::vector for the event match list.\n* Make event reporting methods void since result is never used.\n* Use nullptr keyword instead of NULL.\n\nChange-Id: Icd6f47e46cefc2cc63325df00037cd4b6a475259\n"
    },
    {
      "commit": "475cfd8ff9dcc73d1a7502c9310efe0f1a30337f",
      "tree": "42375a128b28bb886955214336f63391dfc41d5c",
      "parents": [
        "3e2f0fc584463e9da1142a5011ac3f7bcf083e0f"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Tue Dec 16 20:15:41 2014 -0800"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Tue Dec 16 20:16:31 2014 -0800"
      },
      "message": "Fix typo bug for Mips32.\n\nChange-Id: I429038ee6748d538fa03da819777f3456a4fd9a5\n"
    },
    {
      "commit": "c85cdeb22b6d38b90904241c284f389043822073",
      "tree": "518acb1b3570a85d6a17aa7abc499790f8a4b1c7",
      "parents": [
        "d76a0c791b8b7411e7ce7b2046f6af1e3d7bb00a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 16 15:23:00 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 16 15:23:15 2014 -0800"
      },
      "message": "Delete gc request lock\n\nFixes valgrind tests.\n\nChange-Id: I763e5709fffb002b14615ed5d08236970643e520\n"
    },
    {
      "commit": "3774335b08076117d6950cd472cdd59a167470b5",
      "tree": "c2d24814e2d829f55ae25415b5b578cc040e0934",
      "parents": [
        "5b6912e455da798a79a4bb3235e276351b38ab58"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Nov 13 14:38:00 2014 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Dec 16 12:00:59 2014 -0800"
      },
      "message": "Add a new imgdiag tool to diff boot.art/core.art against a process\n\nAnalyze the dirty memory pages of a running process per-object,\nthis allows is to to fine-tune the dirty object binning algorithm in\nimage writer.\n\nAlso:\n* Factor out oatdump command line parsing code into cmdline.h\n* Factor out common build rules for building variations of binaries\n* Add a gtest for imgdiag\n\nBug: 17611661\nChange-Id: I3ac852a0d223af66f6d59ae5dbc3df101475e3d0\n"
    },
    {
      "commit": "e34652f15f32666323052a6718a63248244f1e66",
      "tree": "3c326d1eb9303af2ca13720894e04f33d7cc426f",
      "parents": [
        "f610c0597e001cb1043aa4074afe25ae79a800e3"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Tue Nov 04 11:09:36 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 16 08:33:33 2014 -0800"
      },
      "message": "[MIPSR6] Adjust assembly routines for MIPS R6 isa\n\nChange-Id: I771b58b9e8054bb99cd01a7f713ff8e29a9ae5d3\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": "eb0a179508f3c0533dd7db86ec7ab9dfa3773256",
      "tree": "51f4f2a694627cace4b65c7018a47c994db44bfd",
      "parents": [
        "5b6912e455da798a79a4bb3235e276351b38ab58"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 17:23:45 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 17:31:17 2014 -0800"
      },
      "message": "Add more logging to Mutex::ExclusiveUnlock\n\nBug: 18713034\nChange-Id: I9db5ca0a25592714ac9e292a2b8d46ef73779c8b\n"
    },
    {
      "commit": "82a800d1408937951155f546a3671b83b7379ab5",
      "tree": "9330b333816be80efd98ff2c23124bf7b31185c4",
      "parents": [
        "5dd24d89714aeca69a3a06561d5a3687d54cf43b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 15:59:49 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 17:06:31 2014 -0800"
      },
      "message": "Decrement suspend count if thread is shutting down\n\nPrevents deadlock caused by incrementing suspend count in\nSuspendThreadByPeer, then getting a cleared nativePeer field. This\nresulted in us not decrementing the suspend count which caused a\ndeadlock in WaitForOtherNonDaemonThreadsToExit.\n\nBug: 18739541\nChange-Id: I4a63f1823993a0f99f32025cd479072be49ba8d5\n"
    },
    {
      "commit": "079101a17575114622f6e1d5be5c9ba643630e9a",
      "tree": "bc9ff009cca8e649f24adb8f7626c95b7930be40",
      "parents": [
        "81d035213b0426ee076cc0d017c895c7833d32e8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 14:23:10 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 15:18:46 2014 -0800"
      },
      "message": "Move GC daemon locking logic into heap\n\nFixes deadlock caused by acquirng the mutator lock while\nsynchronizing on the daemon thread.\n\nBug: 18739541\nChange-Id: I925b8f0f3b58178da6eff17b9c073f655c39597b\n"
    },
    {
      "commit": "81d035213b0426ee076cc0d017c895c7833d32e8",
      "tree": "e74c3df0dc4686385891ddb18f26e68fbc927c81",
      "parents": [
        "e6c0cdd11097dd72275ac24f1e98217c299d973e",
        "bc689b7cefce2dd357abf25b82e5fcd690e27706"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 19:56:57 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 15 19:56:58 2014 +0000"
      },
      "message": "Merge \"Clean up debugger\""
    },
    {
      "commit": "bc689b7cefce2dd357abf25b82e5fcd690e27706",
      "tree": "d6395a7e2c5f57d0bee12bb5ee54fb99b97cfb40",
      "parents": [
        "29045735a55726235e5c2c5156809cdcac61d4d7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Dec 14 17:01:31 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 11:29:30 2014 -0800"
      },
      "message": "Clean up debugger\n\nSeparated logic for native vs java heap, cleaned up lock annotations.\nAdded missing end of space marker for bump pointer spaces.\n\nBug: 18730149\n\nChange-Id: I5bc21f0cee83b9cfa357e8a59658885c12cae09c\n"
    },
    {
      "commit": "8683038c1f59bea790d8c7691e40eed7f6250e4a",
      "tree": "63f168876ecb6b8416082cbc141da1d478a66988",
      "parents": [
        "29045735a55726235e5c2c5156809cdcac61d4d7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 12 21:41:29 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 15 10:27:32 2014 -0800"
      },
      "message": "ART: Do not inline elf writer debug symbols\n\nUsing Clang, this pushes the frame size of the caller across our\nlimit. Thus forbid inlining. The function is only called once per\ncompile, impact is insignificant.\n\nBug: 18738594\nChange-Id: I19c3f1168a5104ab508a8dbf9f2a8c035cb97e3c\n"
    },
    {
      "commit": "29045735a55726235e5c2c5156809cdcac61d4d7",
      "tree": "4ed3343e3a9848a3fa2c4d9ac57894905fa10ea0",
      "parents": [
        "0379f1da1bc39ed554631fc34d899622bc675c50",
        "d64ba3813069b9d178eb2b8655c9675a20160364"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 17:37:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 15 17:37:59 2014 +0000"
      },
      "message": "Merge \"Use WaitHoldingLocks in ReferenceProcessor::MakeCircularListIfUnenqueued.\""
    },
    {
      "commit": "c93050983f124e56e137e0bfef6cb668d75561f9",
      "tree": "616bf9c59a91cd8fcb8f99e66b5358e42137b3fa",
      "parents": [
        "37cbe23bf1d183b63ddae1ca5e4fe9a84d3f2061",
        "2bcb3b228bc418bcc7fdc3d58d0a0da422a0b6d5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 15 16:14:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 15 16:14:54 2014 +0000"
      },
      "message": "Merge \"ART: Show invalid oat header cause in error message\""
    },
    {
      "commit": "2bcb3b228bc418bcc7fdc3d58d0a0da422a0b6d5",
      "tree": "8c37d77a5d7784ddbbaf221c72c0e66792c5a872",
      "parents": [
        "d1512fed4e43bba77fb21fd1b6322c22ef7c5881"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 12 15:25:14 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 15 08:13:39 2014 -0800"
      },
      "message": "ART: Show invalid oat header cause in error message\n\nInclude the IsValid failure cause in the error message of opening\nan oat file.\n\nMake oat magic and version constexpr so we can have static_asserts\nover the lengths.\n\nBug: 17187621\nChange-Id: I8cef1c6cc9cb2faa052167a3437e81b4c2cbefa7\n"
    },
    {
      "commit": "4de14bbf154daeacafaa60b12a0b855adb0f3705",
      "tree": "a27311f07befd9cec7acdda46d437aaac98d76e2",
      "parents": [
        "152f391b17080e2dcc2294425c7fa2afe73a4f44",
        "4808846b2a8647a448aaa05d561a4f60b190196b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 15 15:30:41 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 15 15:30:42 2014 +0000"
      },
      "message": "Merge \"Save all registers in native to Java stubs.\""
    },
    {
      "commit": "d64ba3813069b9d178eb2b8655c9675a20160364",
      "tree": "4e7c72e8dfa02c38435842c9a709933974e23950",
      "parents": [
        "152f391b17080e2dcc2294425c7fa2afe73a4f44"
      ],
      "author": {
        "name": "Pavel Vyssotski",
        "email": "pavel.n.vyssotski@intel.com",
        "time": "Mon Dec 15 18:00:17 2014 +0600"
      },
      "committer": {
        "name": "Pavel Vyssotski",
        "email": "pavel.n.vyssotski@intel.com",
        "time": "Mon Dec 15 18:00:17 2014 +0600"
      },
      "message": "Use WaitHoldingLocks in ReferenceProcessor::MakeCircularListIfUnenqueued.\n\nThe caller may be holding mutator_lock_, so we must use WaitHoldingLocks.\nOtherwise we get \u0027bad_mutexes_held\u0027 error with debug build.\n\nSee also https://android-review.googlesource.com/#/c/93892.\n\nChange-Id: I87b1119e22a9934fdc622c4c4e2690b8b552b539\nSigned-off-by: Pavel Vyssotski \u003cpavel.n.vyssotski@intel.com\u003e\n"
    },
    {
      "commit": "152f391b17080e2dcc2294425c7fa2afe73a4f44",
      "tree": "25127f4a04de79c582e54b62fe180614d114dec1",
      "parents": [
        "ecdf72cdf2b2cb6f599c2bef32f174570b0fd196",
        "d0e0d4c833b82ac2639de9dea6042ccb87fe37ed"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Sat Dec 13 01:28:36 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 13 01:28:37 2014 +0000"
      },
      "message": "Merge \"Disable HomogeneousSpaceCompact for GSS collector\""
    },
    {
      "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": "d1512fed4e43bba77fb21fd1b6322c22ef7c5881",
      "tree": "54b30694887adef8abb9df4b11b981fd5f8d7621",
      "parents": [
        "f51890d06267da1739ef5f699a8b746e0c432463",
        "9e2094f921b63582e84d65849b1c5c6dc4d22b44"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 12 21:04:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 12 21:04:40 2014 +0000"
      },
      "message": "Merge \"Add ReferenceQueue test\""
    },
    {
      "commit": "9e2094f921b63582e84d65849b1c5c6dc4d22b44",
      "tree": "02613d533bdc382988b7fc70954c15c2ea4575aa",
      "parents": [
        "6b1497421c7c81cb9bf2ce077f1ef3d8ac24cfcb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 11 18:43:48 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 12 12:08:16 2014 -0800"
      },
      "message": "Add ReferenceQueue test\n\nAlso cleaned up reference queue.\nTODO: Add tests for missing functionality.\n\nBug: 10808403\n\nChange-Id: I182f9cb69022fe542ea9e53d4c6d35cff90af332\n"
    },
    {
      "commit": "f51890d06267da1739ef5f699a8b746e0c432463",
      "tree": "839f3e2c836bfb3c208e5f77816f95a9e85f21ff",
      "parents": [
        "43fd680a0d4a02b7387b10f4f5010c18269d9150",
        "a6928661ad617880c99e3d8199b95871736564db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 12 19:14:18 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 12 19:14:20 2014 +0000"
      },
      "message": "Merge \"ART: More logging on GetAccessFlags failure\""
    },
    {
      "commit": "a6928661ad617880c99e3d8199b95871736564db",
      "tree": "2708c6e4eaa568b3d8690a68b7eea28137c41ec7",
      "parents": [
        "6b1497421c7c81cb9bf2ce077f1ef3d8ac24cfcb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 12 11:06:00 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 12 11:06:00 2014 -0800"
      },
      "message": "ART: More logging on GetAccessFlags failure\n\nBug: 18732531\nChange-Id: I803d0dcd8c5e142b57dbdc40051fecbf71dd351d\n"
    },
    {
      "commit": "55037f186fff482084cd5659ff747339eb17ba4e",
      "tree": "a4c696a23f4cbad79c988c77cc3abda372c001aa",
      "parents": [
        "67989fdc0217a8b4477f4e816d64cc2c5459d947",
        "956af0f0cb05422e38c1d22cbef309d16b8a1a12"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 12 18:18:42 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 12 18:18:43 2014 +0000"
      },
      "message": "Merge \"Remove portable.\""
    },
    {
      "commit": "67989fdc0217a8b4477f4e816d64cc2c5459d947",
      "tree": "2ff9f25e0396c93962862e4032e98563a193d141",
      "parents": [
        "ecf04dd055775b531d63916a15a7dbf59819fc58",
        "12b3dd738acd8cfff17fb167e93061dc276936d7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 12 17:51:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 12 17:52:00 2014 +0000"
      },
      "message": "Merge \"Remove proxy logic from GetCodeItem\""
    },
    {
      "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": "ecf04dd055775b531d63916a15a7dbf59819fc58",
      "tree": "ac80562e6741475f8efe1231aafc480fcbdb72a0",
      "parents": [
        "dce6539817ce0ec198af549f2a89475fd88a07d3",
        "7522c741d9660a56da2dd6a8e20b8cdf01a6c333"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Dec 12 16:20:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 12 16:20:33 2014 +0000"
      },
      "message": "Merge \"ART: Fix DDM client hang transmitting native heap dump with MALLOC_IMPL\u003ddlmalloc\""
    },
    {
      "commit": "d0e0d4c833b82ac2639de9dea6042ccb87fe37ed",
      "tree": "d1508d0dcd02fdca393c609b9244e5ae1c76fcd9",
      "parents": [
        "6b1497421c7c81cb9bf2ce077f1ef3d8ac24cfcb"
      ],
      "author": {
        "name": "Lin Zang",
        "email": "lin.zang@intel.com",
        "time": "Fri Dec 12 21:54:47 2014 +0800"
      },
      "committer": {
        "name": "Lin Zang",
        "email": "lin.zang@intel.com",
        "time": "Fri Dec 12 21:54:47 2014 +0800"
      },
      "message": "Disable HomogeneousSpaceCompact for GSS collector\n\nHomogeneousSpaceCompact is not suitable when GSS is forground collector.\nThis will fix issue that device can not boot with GSS collecor.\n\nChange-Id: Iafdf431c207351571f41bbc9196dff02ba674ab4\nSigned-off-by: Lin Zang \u003clin.zang@intel.com\u003e\n"
    },
    {
      "commit": "4808846b2a8647a448aaa05d561a4f60b190196b",
      "tree": "94cbd61f4f19e10b67afe73f0fc4a8c3e0f18d3e",
      "parents": [
        "6b1497421c7c81cb9bf2ce077f1ef3d8ac24cfcb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 12 10:29:38 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 12 10:29:38 2014 +0000"
      },
      "message": "Save all registers in native to Java stubs.\n\nThis will make things more friendly when experimenting with the\nnumber of callee saves in optimizing.\n\nChange-Id: Iefd9a2da329a420eb69fc2fa9e91c06bbda30cdb\n"
    },
    {
      "commit": "12b3dd738acd8cfff17fb167e93061dc276936d7",
      "tree": "c19ba63cccece0f46fa2ff71d87803cfa53fca7c",
      "parents": [
        "407d77f344cfbdbbfb50531c5f0766bc0892e2fe"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 11 13:25:33 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 11 15:25:51 2014 -0800"
      },
      "message": "Remove proxy logic from GetCodeItem\n\nTODO: Fix places where this doesn\u0027t work. Seems maybe in debugger,\netc.\n\nBug: 17939199\nChange-Id: I1dd3c1b071dc37aa1d0a6c187848978588248617\n"
    },
    {
      "commit": "95a505c787fe4673c091e5cd4bd2905d9f17ae36",
      "tree": "46f6df76e49f9a42dae89a6b9cf8336eae1da519",
      "parents": [
        "84c132dd431c37cd381d1e20210b185f87d512f3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 10 18:45:30 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 11 12:39:14 2014 -0800"
      },
      "message": "Increase default allocation stack size\n\nPrevents some GC for alloc which can occur if the allocation stack\noverflows.\n\nBug: 18707404\n\n(cherry picked from commit 4911153db37264de407b2a08c2e4c9bb6aef3545)\n\nChange-Id: I4748485dd495526ab1a313f366d93dbb3ee8112b\n"
    },
    {
      "commit": "d691045e08f8c83892298f8e300616537c30cd8e",
      "tree": "ad7a0a1df7b9cdf9850b194a3384518d07df3e14",
      "parents": [
        "68a8f5e9e9cda48002394cc4d0ca6fe98edd23f3",
        "76bd88005bba706f98c4b3eb23a226d184d85152"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 11 19:25:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 11 19:25:44 2014 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Ensure void type is resolved when running without image\"\"\""
    },
    {
      "commit": "68a8f5e9e9cda48002394cc4d0ca6fe98edd23f3",
      "tree": "0cd277bb9f09a8a7f138baed0cc68b8d448e0c16",
      "parents": [
        "f41ac3d237d24b9a4b6fb33e7edb67320cdb1900",
        "36b58f5ebb85d58f8b5966b8577a6dfe720d1e16"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 11 19:19:40 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 11 19:19:41 2014 +0000"
      },
      "message": "Merge \"Add verifier support for dequickening\""
    },
    {
      "commit": "36b58f5ebb85d58f8b5966b8577a6dfe720d1e16",
      "tree": "c7eca5ae2a6ceea65a7aa2e489b6ea84efbad1f1",
      "parents": [
        "86ff0892aae3b13a105ce2fd58c39591f315c049"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 10 12:06:45 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 11 11:07:35 2014 -0800"
      },
      "message": "Add verifier support for dequickening\n\nAlso some cleanup.\n\nBug: 17950037\n\nChange-Id: I1f50fe07f1558e9c4f78953b7afa639d7f310b3c\n"
    },
    {
      "commit": "a696c0a27f9b9cdf68ac17bdb4e29ac1f798ac32",
      "tree": "9d5ced102fd0848f0b5283b6a613724dfd1abc6a",
      "parents": [
        "86ff0892aae3b13a105ce2fd58c39591f315c049"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 10 20:51:45 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 11 10:58:38 2014 -0800"
      },
      "message": "ART: More ELF and oat file safety measures\n\nIn an ELF file, look for a shstrtab section when loading in\nprogram-header-only mode. If the section is outside the file size,\nit strongly indicates a broken compile.\n\nWhen compiling oat files in the class linker, explicitly unlink\non failure. This should catch cases when dex2oat is killed or\ncrashes and doesn\u0027t have a chance to delete its (partial) output.\n\nBug: 15567083\n\n(cherry picked from commit ad00fed942a9a04cf3f46784bbd04a5f00dd4ab8)\n\nChange-Id: Ia0c75f151d91c6f26a71696967255d6d409ca882\n"
    },
    {
      "commit": "76bd88005bba706f98c4b3eb23a226d184d85152",
      "tree": "7641a41fdc156de9664de19d41b2b2febd61d9be",
      "parents": [
        "3e465bec65067ebfdf662469cf85dd82cd077bdd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 10 16:43:58 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 10 18:59:49 2014 -0800"
      },
      "message": "Revert \"Revert \"Ensure void type is resolved when running without image\"\"\n\nAccept the verification status of image classes out of oat files even\nwhen the image could not be loaded. This is necessary as the dex files\nmight be quickened and the verifier can\u0027t work on them when the runtime\nis not started.\n\nThis reverts commit fe382b5296ef132316d8883a0bdf8cb00d40d16b.\n\nBug: 18338511\nBug: 18705942\nChange-Id: I3516acaaa65f05395c14da0701d1049ba80acb12\n"
    },
    {
      "commit": "4381cd6760b5b0b772322b2257bc2ced5d05da5d",
      "tree": "e1cee5c05eb71db441f4f612a49a46e348d8fbf5",
      "parents": [
        "2cd6142727f1d9e5b71e942ea4c56e3c3810f8d0",
        "fe382b5296ef132316d8883a0bdf8cb00d40d16b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 10 22:33:21 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 10 22:33:23 2014 +0000"
      },
      "message": "Merge \"Revert \"Ensure void type is resolved when running without image\"\""
    },
    {
      "commit": "fe382b5296ef132316d8883a0bdf8cb00d40d16b",
      "tree": "fb2bca24134f0116fcf14e8d87a69b77d22bd14d",
      "parents": [
        "3138584a720b86f2f542160425d3a922920760c0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 10 22:32:58 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 10 22:32:58 2014 +0000"
      },
      "message": "Revert \"Ensure void type is resolved when running without image\"\n\nReverting to stop tests breakage.\n\nThis reverts commit 3138584a720b86f2f542160425d3a922920760c0.\n\nChange-Id: Idd30d458cef67839416ffeae4d558da2affd29d0\n"
    },
    {
      "commit": "2cd6142727f1d9e5b71e942ea4c56e3c3810f8d0",
      "tree": "053c34eca63eea760c1a6dd2b71bc80aa1e647b5",
      "parents": [
        "2387a59bf0e5bcc8f3aad8195eb1eea63d00939b",
        "cef50f0487929f72183623bc2a5819cf3a63bff6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 10 22:22:14 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 10 22:22:15 2014 +0000"
      },
      "message": "Merge \"Stop daemon threads in runtime shutdown\""
    },
    {
      "commit": "2387a59bf0e5bcc8f3aad8195eb1eea63d00939b",
      "tree": "2901835e5d75498fd23b487a801642e047d2d106",
      "parents": [
        "b3991da5e3396f039b573f85a6f3f4638b50270b",
        "3138584a720b86f2f542160425d3a922920760c0"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Dec 10 20:19:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 10 20:19:38 2014 +0000"
      },
      "message": "Merge \"Ensure void type is resolved when running without image\""
    },
    {
      "commit": "b3991da5e3396f039b573f85a6f3f4638b50270b",
      "tree": "1139b18aa3dd4d278ad6756cee2a14c3223c286a",
      "parents": [
        "53ab5a68373152355cd8b7699dd8395ae5503a7b",
        "ffc605cd817e79d6c7602a87543bb31f24d3a99f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 10 19:52:03 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 10 19:52:04 2014 +0000"
      },
      "message": "Merge \"Add missing iget quick for bool, byte, char, short\""
    },
    {
      "commit": "ffc605cd817e79d6c7602a87543bb31f24d3a99f",
      "tree": "84e4e68b11fe2d9c8c2e901b858026c1ebe88973",
      "parents": [
        "b1a38e246cfbfb21100d9c9e57f33970e824f075"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 10 10:35:44 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 10 11:45:44 2014 -0800"
      },
      "message": "Add missing iget quick for bool, byte, char, short\n\nBug: 17791557\nBug: 17671806\nChange-Id: Ifac4fbfba6c3a3f97131e85914b24756fb7f9722\n"
    },
    {
      "commit": "3138584a720b86f2f542160425d3a922920760c0",
      "tree": "a7135e1b8fe7e7a2ac1ead3560a3bd036d7d37b0",
      "parents": [
        "776b880f66edb21cb3b4225877e494ec7a9ec1a2"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Dec 09 19:08:15 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Dec 10 19:56:56 2014 +0100"
      },
      "message": "Ensure void type is resolved when running without image\n\nTo initialize java.lang.Void correctly, we need to ensure the \u0027void\u0027\nclass is initialized in the dex cache of core-libart (because Java\ncode relies on it). However, if we run without image, the dex cache\nmay not contain the void class before we initialize java.lang.Void\nclass.\n\nThis CL fixes this by forcing the resolution of \u0027void\u0027 class when\ninitializing the runtime without image.\n\nWe also generalize that to other types by not skipping verification\nwhen running with preopted oat files without image. By verifying\nall classes, we ensure all resolved types are in the dex caches.\n\nBug: 18338511\n(cherry picked from commit cad417c72cc879ae8b6a8b2fff26f05a770f2051)\n\nChange-Id: I65e345da47be6eda1ee55897c01a9a4cc1444915\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": "776b880f66edb21cb3b4225877e494ec7a9ec1a2",
      "tree": "fb2bca24134f0116fcf14e8d87a69b77d22bd14d",
      "parents": [
        "5e31672b257fed7496805fb277b2e5e6915e52c2",
        "376b2bbf7c39108223a7a01568a7b4b04d84eeac"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 10 08:41:47 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 10 08:41:48 2014 +0000"
      },
      "message": "Merge \"Ensure stack maps are 4 byte aligned.\""
    },
    {
      "commit": "be6fa5eb4a571e14481cf43f4cb264629c069153",
      "tree": "c7a7aa7642fc08941f9d149de5f0e664b67a6f65",
      "parents": [
        "b1a38e246cfbfb21100d9c9e57f33970e824f075"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Dec 09 20:15:42 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Dec 09 22:35:06 2014 -0800"
      },
      "message": "Fix verifier bug caused by confusing ArtMethod::IsDirect vs ArtMethod::IsStatic semantics.\n\nBug: 18485243\nChange-Id: I011872446490628b51fb38a353abd1d499cc1290\n"
    },
    {
      "commit": "376b2bbf7c39108223a7a01568a7b4b04d84eeac",
      "tree": "f6fdbe6180c3d330bc24aa35a7d9fa51f3eb1c55",
      "parents": [
        "b1a38e246cfbfb21100d9c9e57f33970e824f075"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 14:26:32 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 14:49:02 2014 +0000"
      },
      "message": "Ensure stack maps are 4 byte aligned.\n\nWith the recent move to gcc 4.9, we are hitting alignment\nSIGBUS on ARM. The reason is that gcc will optimize two consecutive\n32bits loads into one 64bits load, and the instruction (ldrd)\nwill fail if the data is not aligned.\n\nAlso removed the emission of mapping table when a method is optimized.\nThe information can be found in the StackMap itself.\n\nChange-Id: Icf79406c18a3f4db3c05d52fc2c0dd2e35bf0f8f\n"
    },
    {
      "commit": "b1a38e246cfbfb21100d9c9e57f33970e824f075",
      "tree": "2b65293fe8165b1eb2edcd95b4034edc747d532e",
      "parents": [
        "55e681a0e659d523d0366b1805a87663a6760d4e",
        "a836bc9760419af4a515f96c66100a39e865f3b9"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Dec 09 13:43:28 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 09 13:43:29 2014 +0000"
      },
      "message": "Merge \"Support proxy method in StackVisitor::GetThisObject\""
    },
    {
      "commit": "55e681a0e659d523d0366b1805a87663a6760d4e",
      "tree": "e8de9303aec5a4b4245718bf21cbd49ef6efa36a",
      "parents": [
        "0c0e702b51397e58b9067a0f9c4254dd61a6cb2f",
        "db978719dbcb73fc6acfd193561445c4462786b8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 13:34:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 09 13:34:11 2014 +0000"
      },
      "message": "Merge \"Revert \"Tidy gAborting.\"\""
    },
    {
      "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": "a836bc9760419af4a515f96c66100a39e865f3b9",
      "tree": "3719f9a8ee66ca734fdb62fa77dae0b60e45ae3c",
      "parents": [
        "c4925d4c02dc8f8d51cb2653b5e7a99f6c9fd7d7"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Nov 25 16:30:53 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Dec 09 12:58:25 2014 +0100"
      },
      "message": "Support proxy method in StackVisitor::GetThisObject\n\nAdds function artQuickGetProxyThisObject which returns the \u0027this\u0027\nobject of the proxy method using the QuickArgumentVisitor. Since\nproxy methods have the same layout than the kRefsAndArgs runtime\nmethod and \u0027this\u0027 is the 1st method argument, it is located in the\nfirst GPR.\n\nBug: 17965861\nChange-Id: Ic6ef6c83b9a549c25f9929d5e00ffe1d3a9a36f0\n"
    },
    {
      "commit": "6bb3919e4413ad50f9b7e009829bba292b609e03",
      "tree": "2b99a452959b6380ca5117a64648e83d63c9d6e2",
      "parents": [
        "d1780b98e5b58208e6836c8520dad2a2dadfe322",
        "8b858e16563ebf8e522df026a6ab409f1bd9b3de"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 09 11:09:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 09 11:09:40 2014 +0000"
      },
      "message": "Merge \"Quick: Redefine the notion of back-egdes.\""
    },
    {
      "commit": "d1780b98e5b58208e6836c8520dad2a2dadfe322",
      "tree": "8439f2b4b1eccd3cd4508b67b1de96d3adb995ca",
      "parents": [
        "1f5f0f98b72530576f885ca7393d30b3ba7f40fc",
        "6d7839e03348111a4237f0d47d0e70bc81b32e7a"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Dec 09 10:42:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 09 10:42:02 2014 +0000"
      },
      "message": "Merge \"JDWP: avoid crash on unsupported modifier\""
    },
    {
      "commit": "6d7839e03348111a4237f0d47d0e70bc81b32e7a",
      "tree": "b499eff6e4bb4b57367a5acfbfd2deff58694e41",
      "parents": [
        "c4925d4c02dc8f8d51cb2653b5e7a99f6c9fd7d7"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Dec 05 10:52:15 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Dec 09 11:40:13 2014 +0100"
      },
      "message": "JDWP: avoid crash on unsupported modifier\n\nReturns NOT_IMPLEMENTED error if we receive an event request with an\nunsupported modifier.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d81037\nBug: 18617787\n(cherry picked from commit 0fb33e7b7b0b86fb9c7b556e4a052874ec269bb0)\nChange-Id: I97729e2f98af3a75d24604926a89860255d4acae\n"
    },
    {
      "commit": "8b858e16563ebf8e522df026a6ab409f1bd9b3de",
      "tree": "910900d8eefd5bed3f3c144894c970bb1973c71e",
      "parents": [
        "f7ebda43cb185b6414a2e86eef95eaf10b74db2c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 27 14:52:37 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 09 10:07:30 2014 +0000"
      },
      "message": "Quick: Redefine the notion of back-egdes.\n\nRedefine a back-edge to really mean an edge to a loop head\ninstead of comparing instruction offsets. Generate suspend\nchecks also on fall-through to a loop head; insert an extra\nGOTO for these edges.\n\nAdd suspend checks to fused cmp instructions.\n\nRewrite suspend check elimination to track whether there is\nan invoke on each path from the loop head to a given back\nedge, instead of using domination info to look for a basic\nblock with invoke that must be on each path. Ignore invokes\nto intrinsics and move the optimization to a its own pass.\n\nThe new loops in 109-suspend-check should prevent intrinsics\nand fused cmp-related regressions.\n\nBug: 18522004\nChange-Id: I96ac818f76ccf9419a6e70e9ec00555f9d487a9e\n"
    },
    {
      "commit": "838debd58b1c3be9cf7f308427bfd30248894679",
      "tree": "af66246da3444529ccc36e128b00391015ff134d",
      "parents": [
        "e4ea6a9e73c3cb29e78183be3d30796e524a8a80"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Dec 08 16:22:06 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Dec 08 22:48:25 2014 -0800"
      },
      "message": "Fix reference table sorting\n\nBug: 18638116\n\n(cherry picked from commit 16abc5f28ac9792fd1ba2c82f123cfd871cddbdb)\n\nChange-Id: I15478306b3c2e2bd4f0a1d4307c001f64c0652af\n"
    },
    {
      "commit": "e4ea6a9e73c3cb29e78183be3d30796e524a8a80",
      "tree": "ba1353d9f57a853a090877bcd0df1dab7315bde5",
      "parents": [
        "b4d291f3101feb1bb9fa8e25273b264afa24e0be",
        "b0d22f178c0a8d1ee7d3692f282bb46c53cc2036"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Dec 09 01:25:31 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 09 01:25:32 2014 +0000"
      },
      "message": "Merge \"Make it possible to enable heap poisoning via make variable.\""
    },
    {
      "commit": "b0d22f178c0a8d1ee7d3692f282bb46c53cc2036",
      "tree": "dfe756bf4e6f75ce19b25f17e0b22eb403de7c05",
      "parents": [
        "a4b1eee59648703f8fab664b45d1d61c861c80fe"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Dec 08 12:08:46 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Dec 08 13:54:52 2014 -0800"
      },
      "message": "Make it possible to enable heap poisoning via make variable.\n\nIf ART_HEAP_POISONING\u003dtrue, build with heap poisoning enabled.\n\nBug: 8367515\nChange-Id: I818e86047e6dd99b5bc9920713ef943a65b677e6\n"
    },
    {
      "commit": "4099b788d2797b1d5ad247296e7ca18e60f010c0",
      "tree": "53cb258a3d1a09e03f9a146a99572bc36016dd93",
      "parents": [
        "a4b1eee59648703f8fab664b45d1d61c861c80fe"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 08 12:59:27 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 08 12:59:51 2014 -0800"
      },
      "message": "Re-add missing read barriers\n\nAlso added DCHECKS\n\nChange-Id: Ie4c43432479e0e8db197f7a6568a33126e38ccdb\n"
    },
    {
      "commit": "38ebea4fa9513975bec6ef8d9c52b10267cb153c",
      "tree": "5416b66e396a9bdf90ef812803cb5778a80f2096",
      "parents": [
        "52222d132e500235aeaa427e2f4139dc20ed9288"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 08 11:50:36 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 08 12:04:56 2014 -0800"
      },
      "message": "Clean up ReferenceTable::Dump\n\nMake sure that we never have nulls and cleared weak globals in the\nsorted table. Cleaned up comparator.\n\nBug: 18597401\nChange-Id: I5f437dfa29c813e17cdde411175abc927283716d\n"
    },
    {
      "commit": "c4925d4c02dc8f8d51cb2653b5e7a99f6c9fd7d7",
      "tree": "c315141775be96ba80f8efd9112f196c0364ded2",
      "parents": [
        "1495a8e6409238bca28a33fd47913e382a85ea79",
        "d2ec87d84057174d4884ee16f652cbcfd31362e9"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 08 18:07:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 08 18:07:32 2014 +0000"
      },
      "message": "Merge \"[optimizing compiler] Add REM_FLOAT and REM_DOUBLE\""
    },
    {
      "commit": "d2ec87d84057174d4884ee16f652cbcfd31362e9",
      "tree": "9456c5851f157566380c37895407dfce4749bb4d",
      "parents": [
        "f551efff34c20e2f0cf962c3fc267204d5e7611f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 08 14:24:46 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 08 17:02:11 2014 +0000"
      },
      "message": "[optimizing compiler] Add REM_FLOAT and REM_DOUBLE\n\n- for arm, x86, x86_64 backends\n- reinstated fmod quick entry points for x86. This is a partial revert\nof bd3682eada753de52975ae2b4a712bd87dc139a6 which added inline assembly\nfor floting point rem on x86. Note that Quick still uses the inline\nversion.\n- fix rem tests for longs\n\nChange-Id: I73be19a9f2f2bcf3f718d9ca636e67bdd72b5440\n"
    },
    {
      "commit": "7522c741d9660a56da2dd6a8e20b8cdf01a6c333",
      "tree": "2ac37a51bda6a9f1fdbfbcfc2e6bf89cf00fd006",
      "parents": [
        "ab6572b564db69e2877456ca6fbd3a00f4cc4b6b"
      ],
      "author": {
        "name": "Pavel Vyssotski",
        "email": "pavel.n.vyssotski@intel.com",
        "time": "Mon Dec 08 13:38:26 2014 +0600"
      },
      "committer": {
        "name": "Pavel Vyssotski",
        "email": "pavel.n.vyssotski@intel.com",
        "time": "Mon Dec 08 13:38:26 2014 +0600"
      },
      "message": "ART: Fix DDM client hang transmitting native heap dump with MALLOC_IMPL\u003ddlmalloc\n\nVM acting as a DDM client hangs transmitting native heap segment data when dlmalloc\nis used instead of default jemalloc. dlmalloc_inspect_all disallow any memory allocation\ninside heap callback. So cannot send any data walking the heap, the same for logging.\nCallback function also needs to acquire the heap bitmap lock. Finally, need to indicate\nend of a space to flush data.\n\nChange-Id: I9541962268dd58c2a4237fe1550c9e153252ab4a\nSigned-off-by: Pavel Vyssotski \u003cpavel.n.vyssotski@intel.com\u003e\n"
    },
    {
      "commit": "9d4c8dced5d7dc32cc4906bb320f066b82862159",
      "tree": "9c1e1bbea6cc0785a9737cc5610131cec15abd28",
      "parents": [
        "c8b975f8caceba001d64fa822f02390c929f2cd9",
        "a89d7ed6f091ac495cd43560ece6988776d14d61"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 05 23:28:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 05 23:28:08 2014 +0000"
      },
      "message": "Merge \"Add pointer size logic to InitFromImageInterpretOnly\""
    },
    {
      "commit": "c8b975f8caceba001d64fa822f02390c929f2cd9",
      "tree": "d75e822b86f0f6c16a437a12bcad8f631ffc6958",
      "parents": [
        "3a074e1ca4faa1f1018e28d20f4d4e9f02034cf3",
        "d0a0b3e189e6f46d410d61dab4d0cce113be41d5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Dec 05 23:08:58 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 05 23:09:00 2014 +0000"
      },
      "message": "Merge \"Fix arm unwind data for art code.\""
    },
    {
      "commit": "a89d7ed6f091ac495cd43560ece6988776d14d61",
      "tree": "d416d6035e2061005e201d7d101890f81bed82a6",
      "parents": [
        "ab74d3eae37de79444edd1edd70400970d5e85ad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 05 10:57:13 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 05 13:11:12 2014 -0800"
      },
      "message": "Add pointer size logic to InitFromImageInterpretOnly\n\nPreviously we didn\u0027t have this logic which broke dex2oat if passed\n--runtime-option -Xint flag.\n\nAlso we now no longer call InitFromImageInterpretOnlyCallback if\nwe are the compiler.\n\nBug: 18631640\nChange-Id: Ie84fceeb85cabeeec7a5fedefd73dd919cca8e5e\n"
    },
    {
      "commit": "d02bd695a024f98ea926db924a9bcb8c325c8c6b",
      "tree": "78265334074716714176f101903163e52b46f4c7",
      "parents": [
        "ab74d3eae37de79444edd1edd70400970d5e85ad",
        "0a7993ee8796e75ea7f251b7cb9e32f2f4335333"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 05 19:37:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 05 19:37:19 2014 +0000"
      },
      "message": "Merge \"ART: Fix typo\""
    },
    {
      "commit": "0a7993ee8796e75ea7f251b7cb9e32f2f4335333",
      "tree": "452019b4d87d9a27b10709240ec46f3ef12a5d81",
      "parents": [
        "aad9c0767a8f8ae6250a7b4edee52cfb6d598687"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 05 11:16:26 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 05 11:16:26 2014 -0800"
      },
      "message": "ART: Fix typo\n\nChange-Id: Ie9a242240511adae9fcdbaae8d6b5be61fb5075b\n"
    },
    {
      "commit": "edfdaf37d5520a3c3a858b6b3fba4f759c60dadc",
      "tree": "4b08c00ba9bc427771413a758c669df56dbba62d",
      "parents": [
        "e652b62c581a3d68b1fc82e0b04e3a59dd633e52"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Dec 05 16:12:21 2014 +0000"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Dec 05 16:12:21 2014 +0000"
      },
      "message": "Revert \"Re-enable one thread dumping the native stack of another.\"\n\nThis reverts commit e652b62c581a3d68b1fc82e0b04e3a59dd633e52.\n\nChange-Id: Ida56d2c23849c1ede82a22100df402877256e270\n"
    },
    {
      "commit": "e652b62c581a3d68b1fc82e0b04e3a59dd633e52",
      "tree": "42cba0668fe1898cec136dc8a8b6f3f4ff45878c",
      "parents": [
        "c5454372f23da8248c84c29e251fb1b21c421a63"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 04 20:11:48 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 04 20:11:48 2014 -0800"
      },
      "message": "Re-enable one thread dumping the native stack of another.\n\nBug: 15446488\nChange-Id: I49d4d283f7b7d04b9d8c940313d6c5107ba9f99d\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": "d0a0b3e189e6f46d410d61dab4d0cce113be41d5",
      "tree": "2a18b6467fa5f3df9f6e4acbe8b76d291de8367a",
      "parents": [
        "8b9a97e8b6ed97ff1991596cbd0f7ce78f004766"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 30 19:04:13 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 04 12:20:31 2014 -0800"
      },
      "message": "Fix arm unwind data for art code.\n\nBug: 17392751\nChange-Id: Ic85d4468b0f931aa9e38dee12d466a1e04ebf944\n"
    },
    {
      "commit": "d4605cb8e8260fdec8a05f675788b154f486baa4",
      "tree": "4baef6f0dce66d25154d6df7ee18b38ae1ba6bde",
      "parents": [
        "b510c82ebaf11cf6f4f215f6237ee6a44861ef10",
        "5567c11b9157eec110c0631aa2bff5836631e868"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 04 19:57:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 04 19:57:01 2014 +0000"
      },
      "message": "Merge \"Make Barrier robust against spurious wakeups\""
    },
    {
      "commit": "5567c11b9157eec110c0631aa2bff5836631e868",
      "tree": "6385002190e857aa2cedd813f461bb6b038fe4c5",
      "parents": [
        "27478e627e08ab42c43d5d934da9ea336ccaf628"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Dec 02 18:31:31 2014 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 04 10:20:12 2014 -0800"
      },
      "message": "Make Barrier robust against spurious wakeups\n\nFix Barrier implementation so that Wait cannot return prematurely\ndue to a spurious condition variable wakeup or interrupted futex call.\n\nDocument the resulting semantics of barrier.h, which are a bit surprising,\nbut appear to be exactly what current clients need.\n\nFix the test so that it actually passes with the fixed barrier.h,\nand no longer tests for properties that can\u0027t be correctly satisfied.\n\nImprove comment for InitTimeSpec, which we almost used.\n\nBug:18509123\n\nChange-Id: I0b25f33bcd22322ba04e3951cd484843788c2bf5\n"
    }
  ],
  "next": "b510c82ebaf11cf6f4f215f6237ee6a44861ef10"
}
