)]}'
{
  "log": [
    {
      "commit": "2bd842872a0231b691cdff2833014413845937e7",
      "tree": "7fce87b7533c57b276da0b87e49bee769f6495ce",
      "parents": [
        "e4cdd4dbcbc75e373917d22214cd431643cd3610"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 05 12:37:36 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 05 13:58:15 2016 -0800"
      },
      "message": "ART: Move boot-image loading to ImageSpace\n\nMove the complete loading sequence for multi-image into ImageSpace.\nThis simplifies Heap initialization.\n\nTest: m test-art-host\nChange-Id: I5a9ee818ce26f205c641e96288f5b4c42257e202\n"
    },
    {
      "commit": "ab1b1c06a782f18d9594e6a4ff4b2c4b895ecee6",
      "tree": "58a8376b44f1f5e4fcba6d98673ef091900c9d86",
      "parents": [
        "8205d17159057da7193726ca70e5ee0c0582f2f3",
        "a82769c1168d38fb4d36eaecfc186aecb17d4b16"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Dec 05 19:00:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 05 19:00:37 2016 +0000"
      },
      "message": "Merge \"Dump more debug info for b/33006388.\""
    },
    {
      "commit": "a82769c1168d38fb4d36eaecfc186aecb17d4b16",
      "tree": "ae5056ff9a92f17b54e40f3410626198772b1612",
      "parents": [
        "5eb1e1e7341f4e7febf77c04f8649a9566b31c03"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Dec 02 17:01:51 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Dec 02 18:15:10 2016 -0800"
      },
      "message": "Dump more debug info for b/33006388.\n\nBug: 33006388\nBug: 12687968\nTest: test-art-host with CC.\nChange-Id: Id9d67bc603c6ff7bc8e346e181e3e09ffbda43b3\n"
    },
    {
      "commit": "a9033d73a118536ece62c7f90d7f56064b4298ab",
      "tree": "44c32268130b1d31fb7e65f13eab1e1bc39a73d5",
      "parents": [
        "5d0c3009fc56afdb4aeae5ee6dd98c3d1d2e7711"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 01 17:41:17 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 02 11:55:39 2016 -0800"
      },
      "message": "Add more detail to rosalloc fragmentation OOME\n\nAlso include total number of free page bytes, space footprint, and\nspace max capacity.\n\nSample output:\nThrowing OutOfMemoryError \"Failed to allocate a 7012 byte allocation\nwith 103464 free bytes and 101KB until OOM; failed due to\nfragmentation (required continguous free 8192 bytes, largest\ncontiguous free 4096 bytes, total free pages 4096 bytes, space\nfootprint 268435456 bytes, space max capacity 268435456 bytes)\n\nAdded a basic test to ensure the allocator coalesces properly.\n\nBug: 32997082\n\nTest: test-art-host\n\nChange-Id: I642b6ad34b98f6d98c10f242a6f6e926e0b42acc\n"
    },
    {
      "commit": "07ab8831ff6025f91f927cc9e60c04801583666c",
      "tree": "908a6ea9f01c47f11cb9fb7d9cd78e107ea15493",
      "parents": [
        "7874c0c9265b827393f49201d003fd6e6fcef9c0",
        "5ace201d84adb7753680bf4c7877b3b71558da82"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 21:02:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 21:02:26 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert CC related changes.\"\""
    },
    {
      "commit": "5ace201d84adb7753680bf4c7877b3b71558da82",
      "tree": "4687d41f5a1c8358e8356066d1e1b43b231b6037",
      "parents": [
        "304f2d3a1d090846a7a55a0016efc9fc8eb14078"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 10:15:41 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 11:01:52 2016 -0800"
      },
      "message": "Revert \"Revert CC related changes.\"\n\nDisable entrypoint switching in ResetQuickAllocEntryPointsForThread\ninstead of callers. Fixes bug where instrumentation would switch\nto non CC entrypoints for non X86_64 architectures causing aborts.\n\nBug: 31018974\n\nTest: test-art-host\nTest: test/run-test 099\n\nThis reverts commit 96172e0172c5fca6e9a5ad4b857a24d8c7b064e5.\n\nChange-Id: If206694ae35ff4446c6a8a97bfbcbf2dac35e3f9\n"
    },
    {
      "commit": "a8131266b8371667f2412fb2d1c9864f038411b9",
      "tree": "ccbad195c81bff77a03549fd08f7ac3f543a8bd6",
      "parents": [
        "304f2d3a1d090846a7a55a0016efc9fc8eb14078"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 17:55:19 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 09:57:13 2016 -0800"
      },
      "message": "Add release fence after copying object\n\nTry to ensure that the field CAS in ConcurrentCopying::Process will\nnever reorder before the object copy.\n\nMay fix a bug where null classes are seen.\n\nTest: test-art-host CC\n\nBug: 33210571\nChange-Id: I71ab937b7ca60c88c5f69698731edac6a8f2e91a\n"
    },
    {
      "commit": "c9e2fc27c57d4c007d26081a8e60b244ecba8665",
      "tree": "cd59bdb099bf2342f4400c37cfbf6ea827a56632",
      "parents": [
        "9ebca690fdfb36fe1a689fd32c3d05d999497768",
        "e51ca8bfa8a193b64901ad214842f213adca92eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "message": "Merge \"Move inline caches GC handling in JitCodeCache.\""
    },
    {
      "commit": "96172e0172c5fca6e9a5ad4b857a24d8c7b064e5",
      "tree": "04bb8fe644c9bc961c8ac33e609c1b162ec45222",
      "parents": [
        "626b839f881f09a1481377a76712d08580c47a16"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 11:52:19 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 11:52:19 2016 +0000"
      },
      "message": "Revert CC related changes.\n\nRevert: \"X86_64: Add allocation entrypoint switching for CC is_marking\"\nRevert: \"Fix mips build in InitEntryPoints\"\nRevert: \"Fix mac build in ResetQuickAllocEntryPoints\"\n\nTest: test-art-target-run-test\nChange-Id: If38d44edf8c5def5c4d8c9419e4af0cd8d3be724\n"
    },
    {
      "commit": "f5ba1152d7d45a3b8a829358a9fec93acba584b6",
      "tree": "f9f484a5c53bcf27294ba4d987fcb80637587614",
      "parents": [
        "10096becf60af4f0164db861d91e239177e1f47e",
        "fc80ff7d8025d720906ee43b793d07bd916ec160"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 01:07:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 01:07:05 2016 +0000"
      },
      "message": "Merge \"Improve invalid object logging\""
    },
    {
      "commit": "ab191538a1d9eee6ec96bc3fa86dde36a007a6f5",
      "tree": "64c4ffaf96a8cf0aeb27bf8cbbbd5cfa42d1ff40",
      "parents": [
        "8fb28dcf0e83f7153e76e176671cd4ad1f20205b",
        "f5de23265360e15fcfceb7d07bdadca0e5bb5f0a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 21:32:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 21:32:12 2016 +0000"
      },
      "message": "Merge \"X86_64: Add allocation entrypoint switching for CC is_marking\""
    },
    {
      "commit": "e51ca8bfa8a193b64901ad214842f213adca92eb",
      "tree": "b07b2534edc592d68b5461a3bdb8a31241892d54",
      "parents": [
        "eb9c58e88f8e0f4a0a413efce04b49b183ad23e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 14:49:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 21:05:51 2016 +0000"
      },
      "message": "Move inline caches GC handling in JitCodeCache.\n\nMake the classes they hold weak references and visit\nthem during SweepJitRoots.\n\nThis fixes the newly introduced deadlock:\n\nThread1:\n1) Lock JitCodeCache lock to create Profiling info for\n  ArtMethod m.\n2) m is a copied method, we need to track the actual holder,\n   needing to decode a weak reference.\n3) Weak references are not accessible due to GC.\n\nGC Thread:\n- Disallow weak reference access.\n- Wait for checkpoint.\n\nThread2:\n- Try to lock JitCodeCache lock\n- Deadlock, as Thread1 owns the JitCodeCache lock.\n\nTest: test-art-host\nbug: 31289185\nbug: 33198826\n\nChange-Id: I7ee17631015450ace8d2a0264415a81c5a902bb8\n"
    },
    {
      "commit": "fc80ff7d8025d720906ee43b793d07bd916ec160",
      "tree": "8e3819626496189299cfb952448b53cbca9a71f5",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 28 13:13:28 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 12:40:11 2016 -0800"
      },
      "message": "Improve invalid object logging\n\nPrioritize holder logging instead of maps and stack traces.\n\nTest: test-art-host\n\nBug: 31441673\n\nChange-Id: Ibc0523ffe5a8f8ba207c2643eae65d44599dcc86\n"
    },
    {
      "commit": "f5de23265360e15fcfceb7d07bdadca0e5bb5f0a",
      "tree": "1bf893445a4c6fb35c430a68d79f66fa02fe4d2b",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 15 17:56:15 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 16 23:26:16 2016 +0000"
      },
      "message": "X86_64: Add allocation entrypoint switching for CC is_marking\n\nOnly X86_64 done so far. Use normal TLAB allocators if GC is not\nmarking.\n\nAllocation speed goes up by ~8% based on perf sampling.\n\nWithout change:\n1.19%: art_quick_alloc_object_region_tlab\n\nWith change:\n0.63%: art_quick_alloc_object_tlab\n0.47%: art_quick_alloc_object_region_tlab\n\nBug: 31018974\nBug: 12687968\n\nTest: test-art-host-run-test\n\nChange-Id: I4c4d9eb229d4ad2f41b856ba5c2958a5eb3b7ffa\n"
    },
    {
      "commit": "96de579b8cb24e87ad0a0ec33b0507c95765a951",
      "tree": "1437a34fd4fb060222802b1b1b825c45c7ddcc6c",
      "parents": [
        "82d44f1408d0108270f4a305a7fe0123bcc53405",
        "1b0adbf7b14973c3f110976de046d75a7d4ed934"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 16 22:39:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 16 22:39:44 2016 +0000"
      },
      "message": "Merge \"Ensure CC GC is used for the read barrier config.\""
    },
    {
      "commit": "1b0adbf7b14973c3f110976de046d75a7d4ed934",
      "tree": "35e0e3effe140748982b0ccf295b123c4952dbe8",
      "parents": [
        "26c8f54be31ccf99540906746b17fc8bba1bab9a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Nov 14 17:35:12 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 16 12:04:19 2016 -0800"
      },
      "message": "Ensure CC GC is used for the read barrier config.\n\nTo prevent the -Xgc option from causing unsupported GC types to run.\n\nBug: 12687968\nTest: test-art-host with CC.\nChange-Id: I10b42190c0888342e9127c52e863ddae82e4d7a1\n"
    },
    {
      "commit": "6beced4c017826f7c449f12fac7fa42403657f2b",
      "tree": "f53614eeeaa92be9a7398e262d9440f59e3384a5",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 15 15:51:31 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 16 10:41:40 2016 -0800"
      },
      "message": "Change iftable to never be null\n\nSimplifies code generation by removing a null check. The null case\nis rare.\n\nRitzperf code size: 13107624 -\u003e 13095336\n\nAlso addressed comments from previous CL.\n\nBug: 32577579\n\nTest: test-art-host, run ritzperf both with CC\n\nChange-Id: I2b31e800867112869d7f0643e16c08826296979e\n"
    },
    {
      "commit": "e07b0b44d4162864ff279e683274ed3553ed1269",
      "tree": "a3121a07c97d26ef3d6c569512cd67ed042d1ef7",
      "parents": [
        "8f2af0cab9010eac1d29730e50bd021053638d81",
        "22c8e40d4d7c46867cf67462319503640167a125"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 14 23:08:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 14 23:08:34 2016 +0000"
      },
      "message": "Merge \"Change 64 bit atomic counter to size_t\""
    },
    {
      "commit": "a2d1b28599e38ee0180f0f7130a879eac5be9dec",
      "tree": "94de92d540432d35bf94e37db91e318a20e09d38",
      "parents": [
        "5a92027262a216614c82ec841adcfc6b4627d07b"
      ],
      "author": {
        "name": "neo.chae",
        "email": "neo.chae@lge.com",
        "time": "Tue Nov 08 08:40:46 2016 +0900"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 11 16:56:25 2016 -0800"
      },
      "message": "Add visiting for class loaders in StickyMarkSweep\n\nStickyMarkSweep clear the mark stack,\nBecause all reachable objects must be referenced by a root or a dirty card.\nBut, there are some marking hole for class object.\n\nIf some object is marked and the object and it\u0027s class object is not dirty,\nThen class object cannot be marking by card table.\n\nIn previous OS including mashmellow,\nClass table was maintaned by class linker\nand all class object was marked with kVisitRootFlagAllRoots flag.\n\nIn N OS,\nClass object is not marked with kVisitRootFlagAllRoots.\nSo, I added new flag to mark class object and using it StickyMarkSweep.\n\nAdded regression test in 141-class-unload.\n\nTest: test-art-host\n\nChange-Id: I57599e6db53b260f4c5ef466b63962141b8da5c3\nSigned-off-by: Hyangseok Chae \u003cneo.chae@lge.com\u003e\n"
    },
    {
      "commit": "39ce7d2907edb978f1ab6cd75884be48ab11cd77",
      "tree": "7d2f0c56bd8a7dd483b5c1ede7047b623d0e35d7",
      "parents": [
        "5302bd999afee6db5b0cfd63e6a49b0fcbf92dd4",
        "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "message": "Merge \"Make empty checkpoint work while weak ref access is disabled.\""
    },
    {
      "commit": "fe814e89965ddf9a8b603863bd28259f8dd7be35",
      "tree": "32ecc282f176d0e2a98f41f6e4b116d26cf58bee",
      "parents": [
        "977919fbcbfbf0c1c3fa97e51490bc678da646d2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 14:32:49 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 10 14:41:28 2016 -0800"
      },
      "message": "Use entrypoint switching to reduce code size of GcRoot read barrier\n\nSet the read barrier mark register entrypoints to null when the GC\nis not marking. The compiler uses this to avoid needing to load the\nis_gc_marking boolean.\n\nCode size results on ritzperf CC:\narm32: 13439400 -\u003e 13242792 (-1.5%)\narm64: 16380544 -\u003e 16208512 (-1.05%)\n\nImplemented for arm32 and arm64. TODO: Consider implementing on x86.\n\nBug: 32638713\nBug: 29516974\n\nTest: test-art-host + run ritzperf\nChange-Id: I527ca5dc4cd43950ba43b872d0ac81e1eb5791eb\n"
    },
    {
      "commit": "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a",
      "tree": "19e2d9d5e8476bf526dd5924ef05b1d727b75f8b",
      "parents": [
        "e7b46e22c7f4f6f503501b3b2ad99113289d142b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Nov 03 13:06:52 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 09 18:14:08 2016 -0800"
      },
      "message": "Make empty checkpoint work while weak ref access is disabled.\n\nFix a potential race on PushOntoMarkStack for CC by running an empty\ncheckpoint (while weak ref access is disabled).\n\nBug: 32508093\nBug: 12687968\nTest: test-art-host with CC/CMS, libartd boot with N9, Ritz EAAC.\nChange-Id: I3749bb525e7734804307ee16262355f3fc730312\n"
    },
    {
      "commit": "689a331aded82340d2ab144d0adb9bbbbd4b53ff",
      "tree": "a913a80fb57d2f2d8b20538edc5f323bcf71cb54",
      "parents": [
        "67381d6298edf18760b0c9b3d16572dc3894e551",
        "def4ee67bbff3b2a7280b93cca383c645984a710"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 08 02:26:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 08 02:26:41 2016 +0000"
      },
      "message": "Merge \"ART: Extend Object tag table to be explicitly lockable\""
    },
    {
      "commit": "6f198e3fde6fe0009c1f333c283c6d1cb4fa9b55",
      "tree": "3ee9f75dd0906be955de1bceab1a397aecf1a201",
      "parents": [
        "a840d6155dd3332a1bef42facb1a5d2a3a524c5e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 03 11:15:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 07 12:57:49 2016 -0800"
      },
      "message": "Add forwarding address checks for X86, arm, arm64\n\nAdded to READ_BARRIER_MARK_REG.\n\nBug: 30162165\n\nTest: test-art-host, test-art-target\n\nChange-Id: I15cf0d51ed3d22fa401e80ffac3877d61593527c\n"
    },
    {
      "commit": "def4ee67bbff3b2a7280b93cca383c645984a710",
      "tree": "fb2befdecb6a5ad31826e5c3de29c21cad8907ff",
      "parents": [
        "d98b4ed7a73af40f5292337495333616d9974da0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 07 10:10:21 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 07 10:10:59 2016 -0800"
      },
      "message": "ART: Extend Object tag table to be explicitly lockable\n\nExpose the lock for the system weak holder. Add functions to lock\nand unlock the object tagging table, and add accessors that assume\nthe table is already locked.\n\nBug: 31385354\nTest: m test-art-host\nChange-Id: I5a4328b0d439d13e6ace7965e22f01bbf8130f20\n"
    },
    {
      "commit": "22c8e40d4d7c46867cf67462319503640167a125",
      "tree": "4b7dda237c3545b7694e589833a5f92a2388eb24",
      "parents": [
        "a840d6155dd3332a1bef42facb1a5d2a3a524c5e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Nov 05 13:32:08 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Nov 05 13:41:27 2016 -0700"
      },
      "message": "Change 64 bit atomic counter to size_t\n\nThere was a 64 bit cas that was showing up as very expensive on 32\nbit X86. The counter was for Region::objects_allocated_. This change\nmoves it to be size_t.\n\nX86 GC time: 13.6s -\u003e 11.1s\nX86 perf: ConcurrentCopying::Copy 14.07% -\u003e 3.73% of samples\n\nBenchmark score unmeasured.\n\nBug: 12687968\n\nTest: test-art-host\n\nChange-Id: I9db969fc9f2649a14ff755ab4a43d287c2b47958\n"
    },
    {
      "commit": "4c481a4245aebe6821914237249f11d03e687bf9",
      "tree": "87ef976688f64b28ba132c98c03e1bfef7e5fc94",
      "parents": [
        "44fd235d1babc62725f09b042e629352f463199f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 03 08:21:59 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 03 11:16:36 2016 -0700"
      },
      "message": "ART: Make some variables references\n\nAvoid copying values.\n\nBug: 32619234\nTest: m\nChange-Id: I86bc206d6f6fccdf730c62c60317a7a4ae26c11b\n"
    },
    {
      "commit": "c64789734890c86ac772b1963b35ad21d17e44c3",
      "tree": "84a64ece6fefe4880c711b6015acbb8ef46efad6",
      "parents": [
        "faf34776cdc4c77b82609b63d9b032f4ccb32748",
        "1cf194f055b7152fde817787fcdadeea1fb1067c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 03 18:14:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 03 18:14:56 2016 +0000"
      },
      "message": "Merge \"Check for forwarding address in READ_BARRIER_MARK_REG\""
    },
    {
      "commit": "12b58b23de974232e991c650405f929f8b0dcc9f",
      "tree": "bc08011e3b9f4c132fc605dc54d1d5f50c932a29",
      "parents": [
        "b0b2080b4cea8365052d1be973e927f8ee85f609"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Nov 01 11:55:29 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 02 16:31:04 2016 -0700"
      },
      "message": "Clean up the runtime read barrier and fix fake address dependency.\n\n- Rename GetReadBarrierPointer to GetReadBarrierState.\n- Change its return type to uint32_t.\n- Fix the runtime fake address dependency for arm/arm64 using inline\n  asm.\n- Drop ReadBarrier::black_ptr_ and some brooks code.\n\nBug: 12687968\nTest: test-art with CC, Ritz EAAC, libartd boot on N9.\nChange-Id: I595970db825db5be2e98ee1fcbd7696d5501af55\n"
    },
    {
      "commit": "1cf194f055b7152fde817787fcdadeea1fb1067c",
      "tree": "b47da959af7a1f0138d92fe9989ae299462fed96",
      "parents": [
        "77a0e4541a29c26dba21ed8c1ed1c29ef8d0ce4c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 20:13:24 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 02 14:27:06 2016 -0700"
      },
      "message": "Check for forwarding address in READ_BARRIER_MARK_REG\n\nWhen the object is in the from-space, the mark bit is not set.\nIn this case, we can also check the lock word for being a forwarding\naddress. The forwarding address case happens around 25% of the time.\nThis CL adds the case for forwarding address lock words to\nREAD_BARRIER_MARK_REG.\n\nReduces total read barriers reaching runtime on ritzperf:\nSlow paths: 20758783 -\u003e 15457783\n\nDeleted the mark bit check in MarkFromReadBarrier since most of the\ncallers check the bit now.\n\nPerf:\nReadBarrier::Mark: 2.59% -\u003e 2.12%\nart_quick_read_barrier_mark_reg01: 0.79% -\u003e 0.78%\nart_quick_read_barrier_mark_reg00: 0.54% -\u003e 0.50%\nart_quick_read_barrier_mark_reg02: 0.31% -\u003e 0.25%\n\nOnly X86_64 for now, will do other archs after.\n\nBug: 30162165\n\nTest: test-art-host\n\nChange-Id: Ie7289d684d0e37a887943d77710092e380457860\n"
    },
    {
      "commit": "41ba35dbf0cf4610588716dcb331ff558c48f1ae",
      "tree": "f83d3158eb1903a66dee1545ea268eeb8ce24b9b",
      "parents": [
        "384cb6674b967a9c58da9ad70fd6f98caa1d8691"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 27 11:50:18 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 27 11:50:18 2016 -0700"
      },
      "message": "ART: Add missing PrettyCause\n\nAdd missing name. Refactor so that build breaks next time anyone\nforgets adding this.\n\nBug: 31385027\nTest: m test-art-host\nChange-Id: I7f5a510b56829aa39e8ca6bcff11c3e9eee95000\n"
    },
    {
      "commit": "5a81e84013eeb4ba143747b044ed9ab4e5a33ab5",
      "tree": "f27628d7b53ceea899c6e5d723124b30f96df747",
      "parents": [
        "1458e0c09fe0a3b9fa5fd7beb9b6077d1fc46b1d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 26 16:46:46 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 26 16:46:46 2016 -0700"
      },
      "message": "Fix bad auto merge conflict resolution in CC\n\nWe should not be clearing the region space since:\nhttps://android-review.googlesource.com/#/c/294708/\n\nBug: 12687968\n\nTest: test-art-host CC baker\nChange-Id: I78050c61c8cdcc0b777d3324ba3f7ded80b2cf52\n"
    },
    {
      "commit": "1458e0c09fe0a3b9fa5fd7beb9b6077d1fc46b1d",
      "tree": "810cdfb04eb8ba7104203fd83ad8232f6f1099a0",
      "parents": [
        "97b0cfaf63cc3276d6d5a05c177c9f968764ef3b",
        "4af14174ee8cc2c443c92e263bba59cfe8e41a85"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 26 21:27:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 26 21:27:59 2016 +0000"
      },
      "message": "Merge \"Avoid unnecessarily clearing/resetting region_space_ for each GC.\""
    },
    {
      "commit": "4af14174ee8cc2c443c92e263bba59cfe8e41a85",
      "tree": "a657e042cd359930cc0881bfcb7698549aa5ddca",
      "parents": [
        "c0ada4a0911758b69e55bd5b3246ed1d35e2d4be"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Oct 25 11:55:10 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Oct 25 11:56:23 2016 -0700"
      },
      "message": "Avoid unnecessarily clearing/resetting region_space_ for each GC.\n\nBug: 12687968\nTest: test-art-host with CC.\nChange-Id: Idf8e6753ba9de23866e15634a093b47ae6a5c239\n"
    },
    {
      "commit": "208aaf0b4815b9675d5b0c6e88b1aafad49be18d",
      "tree": "33f26788ebb0a4fd62bb28c2df7e2f6841043f9c",
      "parents": [
        "e2923d98070a162c8a87c44e7b19aef2f20239f2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 25 10:45:08 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 25 11:30:42 2016 -0700"
      },
      "message": "Fix race with LOS Begin() and End()\n\nThere was a race for the first large object allocation that cause\ncallers of Begin() and End() to see a null End() and non-null\nBegin(). The fix is to hold the lock and get both Begin() and End().\n\nBug: 32387879\n\nTest: test-art-host CC\n\nChange-Id: I6173bf3a55d3ba017ffa5b5e9f566025c65b7555\n"
    },
    {
      "commit": "6e6078ab06e16bb4032b363316360f3b76685e30",
      "tree": "539b5b28159f2b8e6a3893b03915c65c91474761",
      "parents": [
        "3209925b7c0e173741885e63f747af16dac78469"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 24 15:45:41 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 24 19:23:06 2016 -0700"
      },
      "message": "Clear (madvise) card table for CC\n\nSince the cards are not really used, we can madvise them to reduce\nRAM. Image and zygote cards are cleared in pause to prevent races\nbetween with mutators.\n\nPause time goes up by only 1.5us on N6P maps:\n(Paused)ClearCards: Sum: 755us 99% C.I. 0.250us-28us Avg: 1.540us Max: 28us\n\nAOSP N6P before (60s after boot system wide CC):\n4,194K: .GC\n4,172K: .GC\n4,110K: .GC\n\nAfter:\n3,253K: .GC\n3,205K: .GC\n3,245K: .GC\n\nBug: 12687968\n\nTest: test-art-host\n\nChange-Id: I3194b5b8044c2dca427302c32d9974920fecb289\n"
    },
    {
      "commit": "9b8c5880de9b0f7dd8b1b863520714a9700a8dc2",
      "tree": "9b1e4cadc0cad1d5643fd62c41d0b977485659c6",
      "parents": [
        "776e473ec7ff0dd426a648ae7f996f3b69fd6925"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 21 15:27:46 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 24 13:58:50 2016 -0700"
      },
      "message": "ART: Add GC callbacks\n\nAdd start and end of pause callbacks.\n\nFix setup and missing functions in test 907.\n\nBug: 31684633\nTest: m test-art-host\nTest: m test-art-host-run-test-908-gc-start-finish\nChange-Id: I1d8872ef9cd6914de7fb033cd873f8d5cb48ea17\n"
    },
    {
      "commit": "7ec38dcb84d61f6172bbb5a303bd5ab7139f7409",
      "tree": "9facc157658bcc2d3d0beeefd9fe055c10598051",
      "parents": [
        "c89f9776a107ca20d0146c16fa881db91c4f8266"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 07 15:24:46 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 19 13:22:41 2016 -0700"
      },
      "message": "Persistent bitmap for region space\n\nFix bug where region space was not safely walkable due to holes\nin the unevac regions possibly having dangling class pointers.\n\nNo preformance change, RAM overhead 1.1-1.2% .Heap (non LOS).\n\nTest: test-art-host\nTest: https://android-review.googlesource.com/#/c/288907/\n\nBug: 31522820\n\nChange-Id: Ic4f8b7175e117689cb1ce3e28b082cf63f1f7b5a\n"
    },
    {
      "commit": "709b070044354d9f47641f273edacaeeb0240ab7",
      "tree": "3a8ac051d7c35076303984d0d892cdd396b60427",
      "parents": [
        "1a4de6a2453a3ad0310aca1a44e7e2d3b6f53bc1"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 13 09:12:37 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Oct 18 14:10:04 2016 -0700"
      },
      "message": "Remove mirror:: and ArtMethod deps in utils.{h,cc}\n\nThe latest chapter in the ongoing saga of attempting to dump a DEX\nfile without having to start a whole runtime instance.  This episode\nfinds us removing references to ArtMethod/ArtField/mirror.\n\nOne aspect of this change that I would like to call out specfically\nis that the utils versions of the \"Pretty*\" functions all were written\nto accept nullptr as an argument.  I have split these functions up as\nfollows:\n1) an instance method, such as PrettyClass that obviously requires\nthis !\u003d nullptr.\n2) a static method, that behaves the same way as the util method, but\ncalls the instance method if p !\u003d nullptr.\nThis requires using a full class qualifier for the static methods,\nwhich isn\u0027t exactly beautiful.  I have tried to remove as many cases\nas possible where it was clear p !\u003d nullptr.\n\nBug: 22322814\nTest: test-art-host\nChange-Id: I21adee3614aa697aa580cd1b86b72d9206e1cb24\n"
    },
    {
      "commit": "1a4de6a2453a3ad0310aca1a44e7e2d3b6f53bc1",
      "tree": "4e77a3c70cb326ded7ea70e55a12812d7bc3dee7",
      "parents": [
        "63104356aac6511791cf0d7c18b628a558f357e1",
        "c93f71263555642006d28beb1e8f671309971655"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 18 20:39:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 18 20:39:29 2016 +0000"
      },
      "message": "Merge \"Update the Begin() of LargeObjectMapSpace\""
    },
    {
      "commit": "9248a8105c2361eda9ac0293d613cb025b72973d",
      "tree": "b5ff277ce80a60c8f8003ebc00f66a7e40e981bf",
      "parents": [
        "3da7190bae7c1d75edbc87f01343652c246639f2",
        "11a66e40891234c4e54fb4c4e37f45f1651af770"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 18 15:15:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 18 15:15:56 2016 +0000"
      },
      "message": "Merge changes I7061c450,Ie8f8f24b,Ia6cee2cb\n\n* changes:\n  ART: Do not free allocation listener in heap destructor\n  ART: Fix allocation entrypoint instrumentation\n  ART: Fix lock order issue in allocation tracking\n"
    },
    {
      "commit": "3e2e2f1bfb01d9e0066fd737d2a94e1782ed8d2b",
      "tree": "d79fc7d8bbf116a8709b6bb6a755bf46cc9e771f",
      "parents": [
        "9fbeb7e4adc72bfcb5ccd42dd994f8a8be4a549f",
        "7fe56583220d813980f2241e0df13f5aa6627611"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Oct 18 09:23:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 18 09:23:04 2016 +0000"
      },
      "message": "Merge \"Fix handling of dex cache arrays for method types.\""
    },
    {
      "commit": "c93f71263555642006d28beb1e8f671309971655",
      "tree": "acad5da001fd2ada0a70e1aeee7c95fd4b3f4e4f",
      "parents": [
        "a3344e8349b6abf2d31d8b973627248706382970"
      ],
      "author": {
        "name": "tony.ys_liu",
        "email": "tony.ys_liu@htc.com",
        "time": "Mon Oct 17 11:18:09 2016 +0800"
      },
      "committer": {
        "name": "tony.ys_liu",
        "email": "tony.ys_liu@htc.com",
        "time": "Tue Oct 18 13:04:27 2016 +0800"
      },
      "message": "Update the Begin() of LargeObjectMapSpace\n\nRoot cause:\n  LargeObjectMapSpace\u0027s begin_ is initialized by nullptr.\n  so, it\u0027s always 0 after std::min\n\nSolution:\n  Consider the nullptr case when update begin_\n\nNotes:\n  Remove the nullptr check for end_ since it\u0027s not needed\n\nTest: make test-art-host-gtest-large_object_space_test\n\nChange-Id: I9918c30916e5d359f0ab23ec2bdb0fc9f093a85f\n"
    },
    {
      "commit": "11a66e40891234c4e54fb4c4e37f45f1651af770",
      "tree": "31edd3b36951fa3ea64cf3173f587e9bec91057d",
      "parents": [
        "157c77eb9a5d6a7fe6ebcc29afa7f1913a877c87"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 17 17:46:15 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 17 17:46:15 2016 -0700"
      },
      "message": "ART: Do not free allocation listener in heap destructor\n\nDo not deallocate on exit. Libraries are freed only after the heap\nhas already been destroyed.\n\nBug: 31684277\nBug: 31684920\nTest: m test-art-host\nChange-Id: I7061c4500a9ad314e2c00d7d722bb3372dff4810\n"
    },
    {
      "commit": "31e88225b2ef68e7f32f11186acf922c74ddabab",
      "tree": "ca50f60634854056bb652e7c375e5ccca2def5cd",
      "parents": [
        "602142692643d8cd2c48d9aaeece26470f702e3b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 14 18:43:19 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 17 11:36:39 2016 -0700"
      },
      "message": "Move most mirror:: args to ObjPtr\n\nFixed possible moving GC bugs in ClinitImageUpdate class.\n\nBug: 31113334\n\nTest: test-art-host\nChange-Id: I0bf6578553d58b944aaa17665f1350bdf5ed15ec\n"
    },
    {
      "commit": "7fe56583220d813980f2241e0df13f5aa6627611",
      "tree": "3d89b9a43c162cfd613e7538302115d9ca3d08d0",
      "parents": [
        "cfdff144f154df876987fefb340058a975c43381"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 14 18:49:12 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 17 16:29:32 2016 +0100"
      },
      "message": "Fix handling of dex cache arrays for method types.\n\n- Add support for relocating method type dex cache arrays.\n- Add missing call to MethodTypeDexCachePair::Initialize in the\n  class_linker.\n- Fix alignment calculation for method_types in\n  DexCacheArraysLayout.\n- Removed unused MethodTypeOffset(uint32_t) method.\n\nFixes tests with --pic.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I2bba7228762b9e9834e7659fe62090be78afdfa8\n"
    },
    {
      "commit": "5d3f73aef1b778d81ba101ece41935adee259cf2",
      "tree": "fec0c2fdbb88df0a366e29b6470d1274aa6e2ec1",
      "parents": [
        "cfdff144f154df876987fefb340058a975c43381"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 14 14:28:47 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 14 14:38:43 2016 -0700"
      },
      "message": "Move reference processor and mirror::Reference to ObjPtr\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I2c7c3dfd88ebf12a0de271436f8a7781f997e061\n"
    },
    {
      "commit": "28bd2e4f151267b34b8e1eb19c489d8d547bbf5c",
      "tree": "d99ae3fe74ea63b83091898d830d3efe68cd479d",
      "parents": [
        "6e5fa09510c7280168e040382d27dd8b55760d9a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 13:54:57 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 13 10:59:28 2016 -0700"
      },
      "message": "Move mirror::Class to use ObjPtr\n\nLeave the return types as non ObjPtr for now. Fixed moving GC bugs\nin tests.\n\nTest: test-art-host\n\nBug: 31113334\n\nChange-Id: I5da1b5ac55dfbc5cc97a64be2c870ba9f512d9b0\n"
    },
    {
      "commit": "2d8559517759dcfac749a28d6713d36809ec556f",
      "tree": "5fb2530b8c7f181dfc073430926bc02c4217db9a",
      "parents": [
        "000432d9a4f828ed6736d2003a5d78de5484a384"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 12 19:37:59 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 12 20:34:22 2016 -0700"
      },
      "message": "Move Heap::GetInstances to use Handles\n\nPrevent moving GC bugs from VisitObjects. Fix JDWP tests.\n\nTest: art/tools/run-jdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --debug\n\nBug: 31113334\nChange-Id: Ie7f51f1980ec0c1eddc3b59c3e49564eacb3be85\n"
    },
    {
      "commit": "aea9bfb051bb197fdfb63d56ff0f3d63b36eb499",
      "tree": "d43263caa4e04ac524297421329a68ef8dd78c65",
      "parents": [
        "a9daa3a26900cd0f0f9ee7dab72980fc990adda6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 12 19:19:56 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 12 19:21:40 2016 -0700"
      },
      "message": "Use handles for GetReferringObjects\n\nRequired since VisitObjects may cause thread suspension. Fixes\nfailing jdwp tests.\n\nTest: test-art-host\nTest: art/tools/run-jdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --debug\n\nBug: 31113334\nChange-Id: Ic11780b3778c83e7812bc90c0723a293537f376c\n"
    },
    {
      "commit": "172ec8e37505727a1c514f5f5981bd1b3dbe44f3",
      "tree": "ca4d2aa8651a019cac837ee96cc5667628400a2f",
      "parents": [
        "3d9f2834ba7be001e49f51637b91fd4667b036e1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 12 13:50:20 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 12 13:50:20 2016 -0700"
      },
      "message": "ART: Fix typo\n\nFollow-up to commit 27fa96c285c4aa2f64e9bb63a3f38ffdc98c282a.\n\nBug: 31684277\nTest: m test-art-host\nChange-Id: I165b350f6c1a216ed6a7ca648abd6004c662c1cb\n"
    },
    {
      "commit": "3d9f2834ba7be001e49f51637b91fd4667b036e1",
      "tree": "321bd4842351e874c549404b74cd6b2573afaf58",
      "parents": [
        "dbeceb34094a4a94a23916c53e1f83445276ef42",
        "3b1d1b7727ed9166c4ee7d0f66dec56d511bac83"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 12 20:42:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 12 20:42:57 2016 +0000"
      },
      "message": "Merge \"Fix the CC monkey crashes.\""
    },
    {
      "commit": "3b1d1b7727ed9166c4ee7d0f66dec56d511bac83",
      "tree": "cb06c908eb1e85254d2c6572ce1e58e830939eca",
      "parents": [
        "f0ab2ec6008bbd495e59bb9bf81ac399d864f38b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 12 11:53:57 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 12 12:02:38 2016 -0700"
      },
      "message": "Fix the CC monkey crashes.\n\nAdd ScopedGCCriticalSection around the monitor deflation to avoid race\nconditions on the lock word.\n\nBug: 31773180\nBug: 31712602\nBug: 31712174\nBug: 31712601\nBug: 31712256\nBug: 31710993\nBug: 12687968\nTest: test-art host/N9, N9 libartd boot, Ritz EAAC.\nChange-Id: Id05c6502fb08ca2e0770af4940b737038c3412d6\n"
    },
    {
      "commit": "9d156d500801accee919b6d51e22d6ddcdcd4a05",
      "tree": "92129562c0ba1673c660297f26444a4a2ad31459",
      "parents": [
        "078483d4dfd049d5b3f192a99e2dfdc355e4754f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 17:44:26 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 12 09:49:49 2016 -0700"
      },
      "message": "Move Heap parameters to ObjPtr\n\nDeleted some unused object dumping code.\n\nTest: test-art-host\n\nBug: 31113334\n\nChange-Id: I747220caafe6679591fd4b361d7f50383a046164\n"
    },
    {
      "commit": "27fa96c285c4aa2f64e9bb63a3f38ffdc98c282a",
      "tree": "bece47e22bf5b8a212da88019dfed5eee01f7b88",
      "parents": [
        "77708d9149b0a00247eb69ea4d5386cae4e40287"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 07 15:05:24 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 10 13:27:45 2016 -0700"
      },
      "message": "ART: Add allocation callback\n\nBug: 31684277\nTest: m test-art-host\nChange-Id: I959f44e23ca5fe55ed678315708895faf0aadb04\n"
    },
    {
      "commit": "a058fdf0cf7435a13a6e8cae5e3a9bfa1513828d",
      "tree": "85de1316f29f661372841d5feee16c370375fc16",
      "parents": [
        "c4f3925490a73da8dc74884a1deb965d4ecaf14e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 15:13:58 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 15:53:58 2016 -0700"
      },
      "message": "Move mirror::Object setters to ObjPtr\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I2c4c84645e194c3c435a4a6fd670176b0e98671f\n"
    },
    {
      "commit": "c4f3925490a73da8dc74884a1deb965d4ecaf14e",
      "tree": "7fe566827f8ab903af1acb5697c86a6efe3187b3",
      "parents": [
        "18f7de841fee3ca6f0c04e7caa57c3ce76b36231"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 18:32:08 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 13:55:58 2016 -0700"
      },
      "message": "Move remaining jobject related functions to use ObjPtr\n\nAlso added ObjPtr::DownCast.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I59c253211dc435579ffdfd49f856861ab13d262c\n"
    },
    {
      "commit": "1cc62e4ea24828fdb3f3da0b8603f0b107d09a04",
      "tree": "718e322f3d05ac095770d4dc2a68b824bf3974a7",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 18:01:28 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 10:46:16 2016 -0700"
      },
      "message": "Rename ObjPtr::Decode to ObjPtr::Ptr\n\nDone to prevent ambiguity with ScopedObjectAccess::Decode.\n\nBug: 31113334\n\nTest: test-art-host\nChange-Id: I07a2497cc9cf66386311798933547471987fc316\n"
    },
    {
      "commit": "2f8eebb10545dc08d27535a4c86f3ae089087d0d",
      "tree": "b6184fda48dafee64135bb828cda75c34ad5061a",
      "parents": [
        "4f0cabfe1324fd42190df29245f33897510b74fd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 10:59:32 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 11:00:09 2016 -0700"
      },
      "message": "Delete some unused bitmap walking code\n\nNo longer required with newer versions of the image writer.\n\nTest: mm -j32\n\nChange-Id: I496bc49c80d84bfa3aada39f8c6e3e4e4dfb15d4\n"
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "a59d9b228b1eda3bf71a81b6201ec64e26086c23",
      "tree": "91adf9f0e282eec50ccb28aa2dbc432a5e28d13f",
      "parents": [
        "05ce52b406dcf6b9a24287d14f0e611211e0db3d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 26 18:13:17 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 16:10:35 2016 -0700"
      },
      "message": "Use ObjPtr for reflection.cc/h/inl\n\nChanged Pretty helpers to use this to reduce usage of Decode. The\neventual goal is not have almost any calls to ObjPtr::Decode.\n\nMoved ObjPtr out of mirror namespace for convenience. Added more\nPoisonObjectPointers calls in class linker, thread suspension.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I44d08db5143d95ed1b65e2f00f9749ef5cf379f7\n"
    },
    {
      "commit": "3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0",
      "tree": "f38d8d8aae51f53e7ee6b474f47597b784fc2316",
      "parents": [
        "0cfe19af3b7395658210ea6044a65c9811962a7a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 13 10:47:28 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 10:59:22 2016 -0700"
      },
      "message": "ART: Use libbase logging\n\nMove most of our logging infrastructure over to system/core/base.\nRetain VLOG.\n\nUsing unified Android infrastructure has two main advantages. First,\nit reduces the complexity/maintenance burden in ART. Second, it\nallows to detach logging for the cases where we do not want or need\na runtime, e.g., dexdump, the disassembler, etc. As a part of the\nlatter, libbase is also supported for all hosts (including Windows).\n\nFrom a developer viewpoint, there are minor behavior changes for the\nLOG statements (see above), but otherwise usage is the same. Explicit\nseverity enum items are in the android::base namespace now.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: I5abcb2f45f5b03d49951874c48544f72a283a91b\n"
    },
    {
      "commit": "c16672a0262a0269af9c91b5c2b67e485bbef59b",
      "tree": "58af5ca1c3319adbef58b932856f6a8f5401f283",
      "parents": [
        "304533ed8475e9438e6ca7ef5fa644fd5dab5e97",
        "bfa1f8dcfe2a6172709928768143299ddb7627eb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 23 17:05:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 23 17:05:41 2016 +0000"
      },
      "message": "Merge \"Add CanWriteToDalvikCache() check before writing a boot marker or image cache.\""
    },
    {
      "commit": "866d874c4fca90385251a1df28eed0eb6e1b88e2",
      "tree": "ae853738fe345523af56be0a021f46bc90e0d2ed",
      "parents": [
        "be0f728348139a9185b08d4d5c5adfa806bee00b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 21 15:24:18 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 21 18:43:45 2016 -0700"
      },
      "message": "Make image test multi image\n\nRequired for testing multi image layout in future CLs.\n\nBug: 28640955\n\nTest: clean-oat-host, test-art-host, device booting\n\n(cherry picked from commit 25adcfb7dc81131add3a0a681ae18bced6f7a0e0)\n\nChange-Id: I14809f56e711b4a87e01056c327eddbbd087f4ee\n"
    },
    {
      "commit": "bfa1f8dcfe2a6172709928768143299ddb7627eb",
      "tree": "e2be8a78edb83b0da34f77697405aa53f9962e32",
      "parents": [
        "8cb366a7ba8f02094c7c3bd21e217fff52f6ad17"
      ],
      "author": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Mon Aug 15 15:21:09 2016 -0400"
      },
      "committer": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Wed Sep 21 11:17:38 2016 -0400"
      },
      "message": "Add CanWriteToDalvikCache() check before writing a boot marker or image cache.\n\nA new zygote process, the webview_zygote, will spawn isolated_app children,\nbut the process itself does not run as root and cannot write to the dalvik\ncache. In order to not print SELinux avc errors, check for file-write\npermission when testing to see if a boot marker or cache image or should be\nwritten.\n\nTest: m test-art\nTest: angler boots\n\nBug: 21643067\nChange-Id: I9f797fe7332a21ef4c6b83d2210b1673af09de1b\n"
    },
    {
      "commit": "be3a3ee02f148345ba6e1a0361532a3f7e8c0002",
      "tree": "b8235dcb24ceffe2c77ebb38c73486ad6a368094",
      "parents": [
        "c6eced06a8592e2077cf7c894c8e05702571bf4d",
        "febd0cf9b5070ecc54ba433b951b65e14a54ccde"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 16 17:59:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 16 17:59:10 2016 +0000"
      },
      "message": "Merge \"Fix a deadlock in the CC collector.\""
    },
    {
      "commit": "febd0cf9b5070ecc54ba433b951b65e14a54ccde",
      "tree": "75d96af58e255b442a45e2fa611e62851a1dc0ce",
      "parents": [
        "26ead4975e1752e8ae2f5ed6fda73876c4f9ff59"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 14 19:31:25 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 15 18:00:09 2016 -0700"
      },
      "message": "Fix a deadlock in the CC collector.\n\nFix a deadlock between CC GC disabling system weaks and thread attach.\n\nSee 31500969#2 for more details.\n\nBug: 31500969\nBug: 12687968\nTest: test-art-host with CC. N9 libartd boot. Ritz EAAC.\nChange-Id: Ic9a8bfb1c636643a03f4580b811fe890273576b6\n"
    },
    {
      "commit": "d818adbd958219655cee380a3a1f6049d78bbcde",
      "tree": "da86923519a5b8ae9727fe3b8755b14254ae0e4c",
      "parents": [
        "6b4d988feb18559204f7175914851baf28febd8c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 15 13:12:47 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 15 14:52:41 2016 -0700"
      },
      "message": "Avoid using memcpy for object header in ConcurrentCopying::Copy\n\nMemcpy can do per byte copy, this occasionally caused tearing in\nthe lockword when read from the source resulting in incorrect\nvalues.\n\nTest: test-art-host CC baker\n\nBug: 31423258\nChange-Id: I13f856835125a3aa331530fb1f16db45d1955c8a\n"
    },
    {
      "commit": "a5931185c97c7b17981a9fc5016834a0bdd9480b",
      "tree": "22f1a57647d7113c7c5aa5e0f0db5937380f2739",
      "parents": [
        "fce42f486d9a607fb4fb472ec142a82ceccb6b5f"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 01 15:08:13 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 15 09:09:35 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings in art.\n\n* Add explicit keyword to conversion constructors,\n  or NOLINT for implicit converters.\nBug: 28341362\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I1e1ee2661812944904fedadeff97b620506db47d\n"
    },
    {
      "commit": "26ead4975e1752e8ae2f5ed6fda73876c4f9ff59",
      "tree": "2ce1b047f54bfb4287483de8eaf79cd12f6058b6",
      "parents": [
        "79f6d706185714dccf80aca20d9f3261337473ae",
        "268764da8022cafa5661c5b514eaa343c5257e57"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 14 16:55:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 14 16:55:56 2016 +0000"
      },
      "message": "Merge \"Make ScopedAssertNoThreadSuspension no overhead for non-debug\""
    },
    {
      "commit": "268764da8022cafa5661c5b514eaa343c5257e57",
      "tree": "7c4b46847a6dcfac7a1492edd79b434fb1a0d6ea",
      "parents": [
        "f9decf915f6fa5b33fceba7c10c119e4cad481e5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 12:09:38 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 15:18:29 2016 -0700"
      },
      "message": "Make ScopedAssertNoThreadSuspension no overhead for non-debug\n\nPreviously it required Thread::Current() which may not be free.\nThe plan is to add a lot more ScopedAssertNoThreadSuspension in\nthe codebase.\n\nAlso cleaned up callers.\n\nBug: 31458474\nChange-Id: I5a1621a5435476504d22266cc01a9bf26aab7568\n"
    },
    {
      "commit": "dfcd6f4f9bcbceb065ccb7e51da249afffd41ab2",
      "tree": "31434e9b0cbe278bfc5d95c505d0cd1565439ca0",
      "parents": [
        "f9decf915f6fa5b33fceba7c10c119e4cad481e5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 10:02:48 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 11:07:19 2016 -0700"
      },
      "message": "Add more logging for checking in to-space for CC copy\n\nTrying to debug occasionally failing CHECK.\n\nBug: 31423258\n\nTest: test-art-host CC baker\n\nChange-Id: I00963eb4f529811090e485184bb48a28287e77d3\n"
    },
    {
      "commit": "fda5714edb368270b7ef639054f4cba1d5f4874c",
      "tree": "154e3575910441f76ba121c72b47b04f2069f3dc",
      "parents": [
        "97750797e1195651228698877724ae8599eb1e44"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 08 20:29:18 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 12 12:52:22 2016 -0700"
      },
      "message": "ART: Add generic system-weak holder infrastructure\n\nAdd an \"interface\" for a generic system-weak holder that is\nintegrated with the well-known instances in Runtime. Add a\nsimple implementation handling synchronization.\n\nAdd a test.\n\nBug: 31385027\nTest: m test-art-host-gtest-system_weak_test\nTest: m ART_USE_READ_BARRIER\u003dtrue test-art-host-gtest-system_weak_test\nTest: m ART_DEFAULT_GC_TYPE\u003dSS test-art-host-gtest-system_weak_test\nTest: m ART_DEFAULT_GC_TYPE\u003dGSS test-art-host-gtest-system_weak_test\nChange-Id: I1100e2cbd9ee57860993d0039de73d197681c542\n"
    },
    {
      "commit": "34cf832a68af33cdb1e13db658cf636ef1abae38",
      "tree": "8f4321331f65e5a65cb09cc98769b4fa1fd3f314",
      "parents": [
        "ba0d6388d4b6ad9b1417bc5be036d394237186e7"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 06 12:24:52 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 06 12:25:44 2016 -0700"
      },
      "message": "Disable the from-space memory protection under host debug build.\n\nTemporarily for diagnosing the odd memory protection issue on the build\nserver.\n\nBug: 31172841\nTest: test-art-host with SS\nChange-Id: I31aaf3ae5b1d3bda901c6c739933b5a4751058c1\n"
    },
    {
      "commit": "ba0d6388d4b6ad9b1417bc5be036d394237186e7",
      "tree": "a3e80e8166ad61b5b60f1907b38bf1ac09082369",
      "parents": [
        "f9aafcd269e56ebb4413c6733ea3458d7adc3030"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 06 12:20:26 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 06 12:23:27 2016 -0700"
      },
      "message": "Revert \"Disable the from-space memory protection under debug/gcstress.\"\n\nBug: 31172841\nThis reverts commit 7a2d267b907000c56f401ab3c51f155cee9752a9.\n\nChange-Id: I8ef4639f255118aba278f8051adf356271116507\n"
    },
    {
      "commit": "f94a4cf18946bda4a4f19378436d2bf131a492ca",
      "tree": "b53a39fa7118eb34f2541caf9e1ede75a2ed17e0",
      "parents": [
        "8d8d61249fbb95d2733167a28431e56aadae413d",
        "7a2d267b907000c56f401ab3c51f155cee9752a9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 02 03:09:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 02 03:09:44 2016 +0000"
      },
      "message": "Merge \"Disable the from-space memory protection under debug/gcstress.\""
    },
    {
      "commit": "7a2d267b907000c56f401ab3c51f155cee9752a9",
      "tree": "3246f0b6fb9e2f7b77210534a585c660e405eee0",
      "parents": [
        "9495e0c56b25349220aed7adb997d81f9b0c86cc"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 01 14:27:25 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 01 14:43:40 2016 -0700"
      },
      "message": "Disable the from-space memory protection under debug/gcstress.\n\nTemporarily for diagnosing the odd memory protection issue on the build\nserver.\n\nBug: 31172841\nTest: test-art-host with SS and with SS/gcstress.\nChange-Id: I915fcdc451ee92b5487c1fcbf8186767830ef1ad\n"
    },
    {
      "commit": "dec50eb2da7c8559a01d69260ed8981a5a5eda30",
      "tree": "0206d9ba9f17d2b2fbe08b77ab29ab070e0d073d",
      "parents": [
        "79c3e4e558215ffae1601fc6d5f1626e063a4b22",
        "e74fe1e92de5edb4f4737d9f7ca7518c6abfe3c7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 01 09:50:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 01 09:50:44 2016 +0000"
      },
      "message": "Merge \"Avoid decrementing iterator to std::set\u003c\u003e::begin() in RosAlloc.\""
    },
    {
      "commit": "e74fe1e92de5edb4f4737d9f7ca7518c6abfe3c7",
      "tree": "2937a239981d02b4412475d863434c8baa0f6a0d",
      "parents": [
        "a2ab404b622c1f3d6daffd70cf7744b3a882ea59"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 31 18:56:04 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 01 10:46:16 2016 +0100"
      },
      "message": "Avoid decrementing iterator to std::set\u003c\u003e::begin() in RosAlloc.\n\nAvoid undefined behavior in the expression\n    free_page_runs_.erase(it--);\nwhen it \u003d\u003d free_page_runs_.begin().\n\nAlso avoid the similar expression\n    free_page_runs_.erase(it++)\neven though it\u0027s always well-defined.\n\nIn practice, the undefined behavior has no observable\nside effects with the std::set\u003c\u003e implementation we use.\nTherefore a regression test is not feasible.\n\nTest: m test-art-host\nChange-Id: I4bdeb6cdd068fe5da416b0e66953d5620ad5e999\n"
    },
    {
      "commit": "14a4fdc6d7d0dc8ead3d2e9d7dd0514a27117c7e",
      "tree": "fcdfa224b62f482dcd72e464fae42b4df2523339",
      "parents": [
        "43ac11487e34eb78fca230f9bad40d42a5b1c6c4",
        "a01d06618b08688472d2609220c3ba9c9d6de6f4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 31 19:59:39 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 31 19:59:39 2016 +0000"
      },
      "message": "Merge \"Fix a check failure in the CC background transition.\""
    },
    {
      "commit": "a01d06618b08688472d2609220c3ba9c9d6de6f4",
      "tree": "94f1320b6664702067c73066e829226ce8fe0d7d",
      "parents": [
        "9495e0c56b25349220aed7adb997d81f9b0c86cc"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Aug 30 17:44:41 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Aug 30 17:51:57 2016 -0700"
      },
      "message": "Fix a check failure in the CC background transition.\n\nIf there\u0027s a process state update from jank perceptible to jank\nin-perceptible and a reverse update right after it, there\u0027s a chance\nthat the heap task daemon sees desired_collector_type \u003d\u003d\nkCollectorTypeCC rather than kCollectorTypeCCBackground in\nDoPendingCollectorTransition() which leads to a !kUseReadBarrier check\nfailure in TransitionCollector(). The fix is to move this check after\nthe early return case where collector_type \u003d\u003d collector_type_ in\nTransitionCollector() like the CMS/Hspace case.\n\nBug: 31039431\nBug: 12687968\nTest: test-art-host, aosp boot with CC, master boot with CC.\n\nChange-Id: I5fe34cb41eaa01c6d8bf80a185253fde6778e852\n"
    },
    {
      "commit": "bdf7f1c3ab65ccb70f62db5ab31dba060632d458",
      "tree": "25cc77adfeb05232d0ab00aa561a693f1d71745c",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 16:38:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 17:02:53 2016 -0700"
      },
      "message": "ART: SHARED_REQUIRES to REQUIRES_SHARED\n\nThis coincides with the actual attribute name and upstream usage.\nPreparation for deferring to libbase.\n\nTest: m\nTest: m test-art-host\nChange-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518\n"
    },
    {
      "commit": "99fd9f39f2cd74864bdc750a3444ddd776da534c",
      "tree": "04d9b32325c1d3b63278468a4ef36ba6267d737b",
      "parents": [
        "66d4779c8381db2dd5c0fbe92b3c3a45a7a57ef3",
        "1a0de6acd03b43a03678b58f47b2f21b5215cc22"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 30 16:20:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 30 16:20:55 2016 +0000"
      },
      "message": "Merge \"Fix clang-tidy warnings in art.\""
    },
    {
      "commit": "84d9425b34e7e4d03b4883ac8858b2cdf4951789",
      "tree": "9cd3b4172527bfed13696f568c3ab5b2bed74d66",
      "parents": [
        "04bbe22d21480fcb4598dcf72e12d0dbe2af7a16"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Aug 27 13:27:06 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 29 11:09:04 2016 -0700"
      },
      "message": "Re-enable evacuation of recently allocated regions\n\nReduces RAM since these regions usually have a low live % per\nthe generational hypothesis. Since these get collected earlier it\nmeans the average heap size goes down.\n\n60s after booting N6P CC before (average of 8 samples):\nDalvik .Heap PSS system wide: 28711K\n\nAfter:\nDalvik .Heap PSS system wide: 18757.5K\n\nEAAC: 1305 -\u003e 1274 (30 samples)\n\nTest: test-art-host CC baker and debug phone bootin\n\nBug: 12687968\nBug: 30124683\n\nChange-Id: I30465be4525855ee3b78e6fafa5577a78d365bf4\n"
    },
    {
      "commit": "1a0de6acd03b43a03678b58f47b2f21b5215cc22",
      "tree": "7d03f89b9d64ebc40ea382011de524d18a004f73",
      "parents": [
        "cc55a7ce2aa0f10c2da9efaa89855cf075e56e20"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 26 15:06:11 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 26 17:52:41 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in art.\n\n* Add parentheses around macro parameters, or\n  use NOLINT to suppress warning.\nBug: 28705665\n\nTest: build with WITH_TIDY\u003d1\nChange-Id: Ifc922c2e66215772042bac372754ea70074f0053\n"
    },
    {
      "commit": "6fb276b5e6ac92a25edde51a6f5f4c70eb3e2cf8",
      "tree": "c29e5dd111402c2682ca918e9a30e9566c038c6c",
      "parents": [
        "cc55a7ce2aa0f10c2da9efaa89855cf075e56e20"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Aug 26 10:39:29 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Aug 26 12:01:01 2016 -0700"
      },
      "message": "Fix a race condition on GC timing logger data.\n\nThe GC timing logger data is thread local to the GC thread and\nshouldn\u0027t be used by a mutator. The original intention was to have a\nsystrace scope.\n\nThis should fix the 004-JniTest failures.\n\nBug: 30980189\nBug: 29517059\nBug: 12687968\nTest: test-art-host\nChange-Id: Ibc8cfbfdd64d85ff65bf220d3022fc8fdf1064f2\n"
    },
    {
      "commit": "d9cf6d5ef6fa36a08e6036516034bd084178c95e",
      "tree": "8971e4d5e59709b2a746c1656aa564b1983e75df",
      "parents": [
        "912883db925ab9f0fec0290a81a4a5ce87d013a5",
        "60985b7a56d4fa7170721808734093a3affc41c6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 26 02:01:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 26 02:01:06 2016 +0000"
      },
      "message": "Merge \"Background full compaction for CC.\""
    },
    {
      "commit": "60985b7a56d4fa7170721808734093a3affc41c6",
      "tree": "5d6ece230901d43318da00d51848063644dafa62",
      "parents": [
        "ebb5d0f3bcc1e7cb1a2cd4362dccb68cbdf8bbb4"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Aug 24 13:53:12 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Aug 25 17:36:17 2016 -0700"
      },
      "message": "Background full compaction for CC.\n\nInvoke a full compaction with the CC collector when an app goes to the\nbackground like the HSpace compaction for the CMS collector.\n\nBug: 31039431\nBug: 12687968\nTest: test-art, Ritz EAAC, N9 libartd.so device boot with CC\nChange-Id: I119aa26c1d3c167b12983fffcb16164929bf8f68\n"
    },
    {
      "commit": "c381c36aacf977f7e314e6a91e47b31b04639f62",
      "tree": "15d70c007bf5523c47337a4ca7f0af0a1100b03e",
      "parents": [
        "47ec97259fefc03978517814a14e07ea4c09d472"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 23 13:27:53 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 24 13:34:32 2016 -0700"
      },
      "message": "Avoid CAS for marking region space bitmap for baker\n\nOnly have the GC thread mark it. This occurs when popping from the\nmark stack. The race where an object may be pushed to the mark\nstack twice is handled by not scanning if it is already marked.\n\nAlso avoid checking is_active when marking from the GC.\n\nEAAC: 1263 -\u003e 1253 (average of 30 runs)\nGC time: 7.21s -\u003e 6.83s (average of 18 runs)\n\nTimings on 960 mhz N6P.\n\nBug: 12687968\n\nChange-Id: I47e98c3e258829d2ba0babd803a219c82a36168c\nTest: test-art-host, debug N6P booting with baker CC.\n"
    },
    {
      "commit": "e99331f7a430b0b72142dd0b8b0689421489dcf6",
      "tree": "96370ab574532b2682408f5eeca8337c81147a17",
      "parents": [
        "6fe59410770c1f509f95c26015470ed56f6681e5",
        "44c8ed6a78b2f18e71d9e72f6d8330d85d69d0dc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 23 23:55:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 23 23:55:42 2016 +0000"
      },
      "message": "Merge \"ART: Validate oat file for cache-only images\""
    },
    {
      "commit": "ee23582af60b36f982de2ad16f485a61f35ae817",
      "tree": "ae35b6885b345e210c66acdd992103e345202131",
      "parents": [
        "bf042503dc2c2d328a6331baf33697a7d06acccf"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Aug 19 17:03:27 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Aug 22 11:33:58 2016 -0700"
      },
      "message": "Revert \"Revert \"Improve the thread flip.\"\"\n\nThis reverts commit db3204f87c3f7c4de89762ce9e8502a9dc25c2d8.\n\nImprove the thread flip.\n\n- In addition to the threads that are suspended in FullSuspendCheck(),\n  prioritize the resume of threads that are blocking for the thread\n  flip at the JNI critical section entry and threads are about to\n  transition to runnable (eg. blocking at the SOA entry from JNI).\n- Shorten the length of the thread flip critical\n  section (ThreadFlipBegin/End).\n- Add some systrace scopes.\n- Add a read barrier for the locked objects during the thread dump in\n  case the thread is in the middle of flipping.\n\nBug: 30980189\nBug: 29517059\nBug: 12687968\nTest: test-art-host, Ritz EAAC, N9 libartd boot\nChange-Id: I3a903c47c0fcc746664ec376cc31dee8af3c3ecb\n"
    },
    {
      "commit": "44c8ed6a78b2f18e71d9e72f6d8330d85d69d0dc",
      "tree": "c82e25ba471994215d3734130da32bd59cb3299d",
      "parents": [
        "bf042503dc2c2d328a6331baf33697a7d06acccf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 19 16:43:00 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 19 16:43:00 2016 -0700"
      },
      "message": "ART: Validate oat file for cache-only images\n\nSimplify ImageSpaceLoader::Load to pass single parameter for\nvalidation. Fix (\u003dforce) validation setting for cache-only images.\n\nBug: 30974799\nChange-Id: Ica22ed114d81a18ae144c924feb3a2b2fbdd4767\nTest: m test-art-host\n"
    },
    {
      "commit": "bf042503dc2c2d328a6331baf33697a7d06acccf",
      "tree": "160ccff4ec3a0c00c0b31fa382ae0ebfd9349b1b",
      "parents": [
        "7a687680e2127d351bbdb3b301ec5d27b68c7d14",
        "db3204f87c3f7c4de89762ce9e8502a9dc25c2d8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 19 22:12:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 19 22:12:40 2016 +0000"
      },
      "message": "Merge \"Revert \"Improve the thread flip.\"\""
    },
    {
      "commit": "db3204f87c3f7c4de89762ce9e8502a9dc25c2d8",
      "tree": "abb3aa17279c6a9edc9dd1c0691738a7f7c69a10",
      "parents": [
        "e61e6fdd404b8f04bd33fc3ea49e38e92e31ad69"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Aug 19 17:56:11 2016 +0000"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Aug 19 17:56:11 2016 +0000"
      },
      "message": "Revert \"Improve the thread flip.\"\n\nThis reverts commit e61e6fdd404b8f04bd33fc3ea49e38e92e31ad69.\n\nThreadStress failing.\n\nBug: 29517059\nBug: 12687968\nChange-Id: I0ee8ef04f77c5f9378e4bd21c5dedb4e435a2dc6\n"
    },
    {
      "commit": "9c07ab332b8ebbcb1586c311bfcb75e19b8a35b4",
      "tree": "26a300b803f77e64c17e3d239a1880a4c5960666",
      "parents": [
        "6670bd2098264d4c4e19750ab4741121da7ee54b",
        "bf44e0e5281de91f2e38a9378b94ef8c50ad9b23"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 19 17:33:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 19 17:33:03 2016 +0000"
      },
      "message": "Merge \"ART: Implement a fixed size string dex cache\""
    },
    {
      "commit": "f606c3a687e3eae94296ba74d2d820b6e37692ff",
      "tree": "dabcc702018af666b912dee5057ee51ce9e9b13a",
      "parents": [
        "96954301ee5b6603a4423854d02d87b28b6f4721",
        "e61e6fdd404b8f04bd33fc3ea49e38e92e31ad69"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 19 01:29:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 19 01:29:51 2016 +0000"
      },
      "message": "Merge \"Improve the thread flip.\""
    },
    {
      "commit": "bf44e0e5281de91f2e38a9378b94ef8c50ad9b23",
      "tree": "bb6e65a3434806dc58f286ee75ad3b78ba9d6c36",
      "parents": [
        "d99565069c64fefc069005286de04599dc2619b8"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 18 10:37:42 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 18 16:18:36 2016 -0700"
      },
      "message": "ART: Implement a fixed size string dex cache\n\nPreviously, the string dex cache was dex_file-\u003eNumStringIds() size, and\n@ruhler found that only ~1% of that cache was ever getting filled. Since\nmany of these string dex caches were previously 100,000+ indices in\nlength, we\u0027re wasting a few hundred KB per app by storing null pointers.\nThe intent of this project was to reduce the space the string dex cache\nis using, while not regressing on time that much. This is the first of a\nfew CLs, which implements the new fixed size array and disables the\ncompiled code so it always goes slow path. In four other CLs, I\nimplemented a \"medium path\" that regresses from the previous \"fast path\"\nonly a bit in assembly in the entrypoints. @vmarko will introduce new\ncompiled code in the future so that we ultimately won\u0027t be regressing on\ntime at all. Overall, space savings have been confirmed as on the order\nof 100 KB per application.\n\nA 4-5% slow down in art-opt on Golem, and no noticeable slow down in the\ninterpreter. The opt slow down should be diminished once the new\ncompiled code is introduced.\n\nTest: m test-art-host\n\nBug: 20323084\n\nChange-Id: Ic654a1fb9c1ae127dde59290bf36a23edb55ca8e\n"
    },
    {
      "commit": "e61e6fdd404b8f04bd33fc3ea49e38e92e31ad69",
      "tree": "a7d97c2a67dc1f8337f002a6748f50c9d32e303e",
      "parents": [
        "d16ae7fe70d74091778e5952b7920df14866287f"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Aug 02 16:03:06 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Aug 17 20:24:46 2016 -0700"
      },
      "message": "Improve the thread flip.\n\n- In addition to the threads that are suspended in FullSuspendCheck(),\n  prioritize the resume of threads that are blocking for the thread\n  flip at the JNI critical section entry and threads are about to\n  transition to runnable (eg. blocking at the SOA entry from JNI).\n- Shorten the length of the thread flip critical\n  section (ThreadFlipBegin/End).\n- Add some systrace scopes.\n\nBug: 29517059\nBug: 12687968\nTest: test-art-host, Ritz EAAC, N9 libartd boot.\nChange-Id: Idecec9936ae432c23d5f83321ba13339852018df\n"
    },
    {
      "commit": "c6efcaa17319e9f81def246c277fec523f5b85e0",
      "tree": "ee1d26910f2995e2e73f58f0b0a26cf8d3a096f3",
      "parents": [
        "d99565069c64fefc069005286de04599dc2619b8",
        "5bb4b0b4fcf230d8e4e45cd3fdec820f0b44141a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 17 23:58:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 17 23:58:47 2016 +0000"
      },
      "message": "Merge \"Revert \"Logging improvements for C++ / Java structure issues\"\""
    },
    {
      "commit": "5bb4b0b4fcf230d8e4e45cd3fdec820f0b44141a",
      "tree": "eba2ca0cc99b74bd909cfa9a35dcf83f086c9009",
      "parents": [
        "d833525cfe3ac2086e3156a8b3193c05974d6316"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 17 22:43:52 2016 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 17 22:43:52 2016 +0000"
      },
      "message": "Revert \"Logging improvements for C++ / Java structure issues\"\n\nBug: 30913672\n\nThis reverts commit d833525cfe3ac2086e3156a8b3193c05974d6316.\n\nChange-Id: I4e51591b49d54b8bb3e920fbc221c21aca0084fb\n"
    }
  ],
  "next": "d99565069c64fefc069005286de04599dc2619b8"
}
