)]}'
{
  "log": [
    {
      "commit": "dd9d055ddfe4bd66fcf58fde4e8066670acce011",
      "tree": "a88253b45ce6c9292ab6dfab16452fa7c1b4c8fb",
      "parents": [
        "510abc71bd8a5ba42079a851783aba31036c54ea"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 09 12:57:41 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 12 16:09:38 2015 -0700"
      },
      "message": "ART: More cutouts for unstarted runtime\n\nDex objects keep byte buffers to mapped dex files. For annotation\naccess we create them when compiling, but they must be cleared before\nwriting an image.\n\nAdd some Memory functions.\n\nBug: 19542228\nChange-Id: I995791b43f2b09192d88645821d9e55b45f1b606\n"
    },
    {
      "commit": "0aa50ce2fb75bfc2e815a0c33adf9b049561923b",
      "tree": "9a3f9603ab30d5cbc7fc21aee0ceb48bbb0dd25a",
      "parents": [
        "e8e42f3548fd894f860912bb1b71ce6fa2d7daf3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 11:03:29 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 14:51:11 2015 +0000"
      },
      "message": "Remove ThrowLocation.\n\nNote that this is a cleanup change, and has no functionality change.\nThe ThrowLocation had no use anymore.\n\nChange-Id: I3d2126af1dc673cec3a0453ff3d56a172663a5f6\n"
    },
    {
      "commit": "14691c5e786e8c2c5734f687e4c96217340771be",
      "tree": "7c2156671b323c70ffdd1d48d5e2f1d1de79c5fc",
      "parents": [
        "3d7d2af4c6502b771b032ee9bf3ab30e78f9c60d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 05 10:40:17 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 10:09:33 2015 +0000"
      },
      "message": "Compute the right catch location for the debugger.\n\nAlso remove tls ThrowLocation, it is not needed anymore.\n\nChange-Id: I78fddf09ce968ca475e39c17fa76d699c589c8d9\n"
    },
    {
      "commit": "3d7d2af4c6502b771b032ee9bf3ab30e78f9c60d",
      "tree": "cc15416fa8208661fe98a19055fa4c98010a0e53",
      "parents": [
        "87896b3a1f97c815fe02c7490c1f27951c58bbbf",
        "7642cfc90fc9c3ebfd8e3b5041915705c93b5cf0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 04 11:13:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 04 11:13:17 2015 +0000"
      },
      "message": "Merge \"Change how we report exceptions to the debugger.\""
    },
    {
      "commit": "e15ea086439b41a805d164d2beb07b4ba96aaa97",
      "tree": "465ee3780acd8b7cb35c8a7f42a1f3c5df3d26ec",
      "parents": [
        "0b25c71ac93fb10c484dbacb9e23db505a8e2353"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Feb 09 17:11:42 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 03 17:33:18 2015 -0800"
      },
      "message": "Reserve bits in the lock word for read barriers.\n\nThis prepares for the CC collector to use the standard object header\nmodel by storing the read barrier state in the lock word.\n\nBug: 19355854\nBug: 12687968\nChange-Id: Ia7585662dd2cebf0479a3e74f734afe5059fb70f\n"
    },
    {
      "commit": "7642cfc90fc9c3ebfd8e3b5041915705c93b5cf0",
      "tree": "807b3c797483310ac23954c5eddb7441b91749c5",
      "parents": [
        "dc47e986941b1a3754447fabea272485f3f0f382"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 26 10:56:09 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 03 17:50:49 2015 +0000"
      },
      "message": "Change how we report exceptions to the debugger.\n\nThis is only a refactoring/cleanup. Bug fixes with respect\nto catch location, and more cleanups will follow.\n\nChange-Id: I30d3c6260b0c8f8115a811621397225b88f2063a\n"
    },
    {
      "commit": "e5f13e57ff8fa36342beb33830b3ec5942a61cca",
      "tree": "02e370ecc4e0d955f28bfc71a41015f94fbb19b7",
      "parents": [
        "354d58ba776866ea7b1c71f0d0848d5aaa013ae3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 09:37:21 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 10:47:02 2015 -0800"
      },
      "message": "Revert \"Revert \"Add JIT\"\"\n\nAdded missing EntryPointToCodePointer.\n\nThis reverts commit a5ca888d715cd0c6c421313211caa1928be3e399.\n\nChange-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af\n"
    },
    {
      "commit": "a5ca888d715cd0c6c421313211caa1928be3e399",
      "tree": "bdb08a2cbcf277ab7f02626a23b52a3fdf272ffe",
      "parents": [
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "message": "Revert \"Add JIT\"\n\nSorry, run-test crashes on target:\n0-05 12:15:51.633 I/DEBUG   (27995): Abort message: \u0027art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast\u003cuintptr_t\u003e(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc\u003d71e3366b code\u003d0x71e3362d size\u003dad000000\u0027\n10-05 12:15:51.633 I/DEBUG   (27995):     r0 00000000  r1 0000542b  r2 00000006  r3 00000000\n10-05 12:15:51.633 I/DEBUG   (27995):     r4 00000006  r5 b6f9addc  r6 00000002  r7 0000010c\n10-05 12:15:51.633 I/DEBUG   (27995):     r8 b63fe1e8  r9 be8e1418  sl b6427400  fp b63fcce0\n10-05 12:15:51.633 I/DEBUG   (27995):     ip 0000542b  sp be8e1358  lr b6e9a27b  pc b6e9c280  cpsr 40070010\n10-05 12:15:51.633 I/DEBUG   (27995): \n\nBug: 17950037\nThis reverts commit 2535abe7d1fcdd0e6aca782b1f1932a703ed50a4.\n\nChange-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3\n"
    },
    {
      "commit": "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4",
      "tree": "140026ff9638ff34050680b6c706b82fa1740b56",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 17 10:38:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 16:45:49 2015 -0800"
      },
      "message": "Add JIT\n\nCurrently disabled by default unless -Xjit is passed in.\n\nThe proposed JIT is a method JIT which works by utilizing interpreter\ninstrumentation to request compilation of hot methods async during\nruntime.\n\nJIT options:\n-Xjit / -Xnojit\n-Xjitcodecachesize:N\n-Xjitthreshold:integervalue\n\nThe JIT has a shared copy of a compiler driver which is accessed\nby worker threads to compile individual methods.\n\nAdded JIT code cache and data cache, currently sized at 2 MB\ncapacity by default. Most apps will only fill a small fraction of\nthis cache however.\n\nAdded support to the compiler for compiling interpreter quickened\nbyte codes.\n\nAdded test target ART_TEST_JIT\u003dTRUE and --jit for run-test.\n\nTODO:\nClean up code cache.\nDelete compiled methods after they are added to code cache.\nAdd more optimizations related to runtime checks e.g. direct pointers\nfor invokes.\nAdd method recompilation.\nMove instrumentation to DexFile to improve performance and reduce\nmemory usage.\n\nBug: 17950037\n\nChange-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca\n"
    },
    {
      "commit": "a5afcfc73141e5e378d79a326d02c5c2039fb025",
      "tree": "424add9558fb816c4f1d2f4edd128f4f2a086d9a",
      "parents": [
        "5a3399deaf448c8434d9ba0916ff799b1b791d95"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Jan 29 20:06:46 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 12 11:54:37 2015 +0000"
      },
      "message": "Be more lenient with 4 byte UTF-8 sequences.\n\nAccept 4 byte sequences and convert them into surrogate\npairs instead of expecting 2 separate 3 byte sequences\neach encoding one half of a surrogate pair.\n\nNote that in addition to supporting 4 byte sequences in\nstrings from JNI, we also tolerate them in dex files. This\nis mainly for consistency, and there\u0027s no need to claim any\nsort of official support.\n\nbug: 18848397\nbug: https://code.google.com/p/android/issues/detail?id\u003d81341\nChange-Id: Ibc98d29e59d98803e640f2489ea4c56912a59b29\n"
    },
    {
      "commit": "966c3ae95d3c699ee9fbdbccc1acdaaf02325faf",
      "tree": "7a9bd5dbfb8b02f8bb7e3387876be0c1f7844063",
      "parents": [
        "85ed6bdd890c08f50c205d7f0604b5a35603b13e"
      ],
      "author": {
        "name": "Mark P Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Jan 27 15:45:27 2015 +0000"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Jan 27 17:00:21 2015 -0500"
      },
      "message": "Revert \"Revert \"ART: Implement X86 hard float (Quick/JNI/Baseline)\"\"\n\nThis reverts commit 949c91fb91f40a4a80b2b492913cf8541008975e.\n\nThis time, don\u0027t clobber EBX before saving it.\n\nRedo some of the macros to make register usage explicit.\n\nChange-Id: I8db8662877cd006816e16a28f42444ab7c36bfef\n"
    },
    {
      "commit": "949c91fb91f40a4a80b2b492913cf8541008975e",
      "tree": "45c840d1d6fd0ab71d96cb6c61931f468b3a0adf",
      "parents": [
        "aeb47bb12420e65b4b5f61164e6396ea93734a0a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 27 10:48:44 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 27 13:41:29 2015 +0000"
      },
      "message": "Revert \"ART: Implement X86 hard float (Quick/JNI/Baseline)\"\n\nAnd the 3 Mac build fixes. Fix conflicts in context_x86.* .\n\nThis reverts commits\n  3d2c8e74c27efee58e24ec31441124f3f21384b9 ,\n  34eda1dd66b92a361797c63d57fa19e83c08a1b4 ,\n  f601d1954348b71186fa160a0ae6a1f4f1c5aee6 ,\n  bc503348a1da573488503cc2819c9e30807bea31 .\n\nBug: 19150481\nChange-Id: I6650ee30a7d261159380fe2119e14379e4dc9970\n"
    },
    {
      "commit": "ebb3cbc5869f78170f08ffdb1e782b3b3371e638",
      "tree": "050de6bdf59c5986e249ffa3c32e6a5f1922265a",
      "parents": [
        "2dadc9df0ffb822870a150f81257792b83241c77",
        "3d2c8e74c27efee58e24ec31441124f3f21384b9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 26 12:44:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 26 12:44:45 2015 +0000"
      },
      "message": "Merge \"ART: Implement X86 hard float (Quick/JNI/Baseline)\""
    },
    {
      "commit": "2cd334ae2d4287216523882f0d298cf3901b7ab1",
      "tree": "b72d3d07e5a04151caca96cae345075b6e4452b0",
      "parents": [
        "604e2828896fbb8663897d1e75112da7305ead4c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 09 14:03:35 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 23 14:07:32 2015 -0800"
      },
      "message": "More of the concurrent copying collector.\n\nBug: 12687968\nChange-Id: I62f70274d47df6d6cab714df95c518b750ce3105\n"
    },
    {
      "commit": "3d2c8e74c27efee58e24ec31441124f3f21384b9",
      "tree": "416a60f70414b026395e3660edeee5e1cb10b6f7",
      "parents": [
        "d834380c94af85b498560f3b5feae21ef7fab1ed"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Jan 13 17:32:55 2015 -0500"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Jan 23 12:53:45 2015 -0500"
      },
      "message": "ART: Implement X86 hard float (Quick/JNI/Baseline)\n\nUse XMM0-XMM3 as parameter registers for float/double on X86.  X86_64\nalready uses XMM0-XMM7 for parameters.\n\nChange the \u0027hidden\u0027 argument register from XMM0 to XMM7 to avoid a\nconflict.\n\nAdd support for FPR save/restore in runtime/arch/x86.\n\nMinimal support for Optimizing baseline compiler.\n\nBump the version in runtime/oat.h because this is an ABI change.\n\nChange-Id: Ia6fe150e8488b9e582b0178c0dda65fc81d5a8ba\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "7380c3175b443cdc6f12a2a3a91df188eaaa5a61",
      "tree": "b79b791111f7cafc1e2d2c481a9fdc142961e98e",
      "parents": [
        "fa04842818fe2d0086872dea311db14a732d52f0"
      ],
      "author": {
        "name": "tony.ys_liu",
        "email": "tony.ys_liu@htc.com",
        "time": "Fri Jan 16 19:16:45 2015 +0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 16 13:36:22 2015 -0800"
      },
      "message": "Fix infinite loop in GenerateIdentityHashCode\n\nRoot Cause:\n  If no one changes the seed, it will become infinite loop due to below condition\n    (expected_value \u0026 LockWord::kHashMask) \u003d\u003d 0\n\nSolution:\n  Changes the seed before entering the next loop\n\nAdded test.\n\nBug: 19046417\n\nChange-Id: I7d1c377dd1bda780681514b24d61ebc776bc80ab\n"
    },
    {
      "commit": "e34fa1df67fbe0173b4ea9abddcc3ae3d0537037",
      "tree": "a5148f079b5671a95f60910c41981ebf91db3a02",
      "parents": [
        "9f06b1946ae3ef1d2fd75bbf7f0a288bc611fe58"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 14 14:55:47 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 15 12:23:28 2015 -0800"
      },
      "message": "Print more info in MarkSweep::VerifyRoot\n\nRefactored old root callback to use a new class called RootInfo.\nRootInfo contains all the relevant info related to the root\nassociated with the callback. The MarkSweep::VerifyRoot function\nnow uses this info to print the StackVisitor\u0027s described location\nif the GC root is of the type kRootJavaFrame.\n\nSome other cleanup.\n\nExample output:\nE/art     (12167): Tried to mark 0x123 not contained by any spaces\nE/art     (12167): Attempting see if it\u0027s a bad root\nE/art     (12167): Found invalid root: 0x123 with type RootJavaFrame\nE/art     (12167): Location\u003dVisiting method\n\u0027void java.lang.Runtime.gc()\u0027 at dex PC 0xffffffff (native PC 0x0)\nvreg\u003d0\n\n(cherry picked from commit 12f7423a2bb4bfab76700d84eb6d4338d211983a)\n\nBug: 18588862\nChange-Id: Ic5a2781f704e931265ffb3621c2eab4b2e25f60f\n"
    },
    {
      "commit": "fbef44de596d298dc6430f482dffc933a046dd28",
      "tree": "57345e86b7dda80b82a263069230b7e312db5ef2",
      "parents": [
        "603104b5b5c3759b0bc2733bda2f972686a775a3"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Dec 23 09:48:51 2014 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jan 13 16:32:34 2015 -0800"
      },
      "message": "Use unique_ptr to track ownership of dex files.\n\nBug: 18809837\nChange-Id: Ie571eae8fc19ee9207390cff5c7e2a38071b126a\n"
    },
    {
      "commit": "3e0acf673ce1fbb3932d288d7b52a6dc551a920f",
      "tree": "04713128c17bcdc4495c5d2a28ad6301be3b302c",
      "parents": [
        "553727e466942a10e11ee39dcb67e3f9562b471e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 08 09:41:25 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 08 10:45:04 2015 -0800"
      },
      "message": "Add VerifyObject to StackHandleScope::SetReference\n\nHelps catch GC bugs. Also moved some of the HandleScope logic to the\ninl file.\n\nBug: 13054004\nChange-Id: I81b9dd717092b6a467fcd28b4df0089ec075dd44\n"
    },
    {
      "commit": "1cc7dbabd03e0a6c09d68161417a21bd6f9df371",
      "tree": "8557bdff971e366909351af95a7c8ead82792986",
      "parents": [
        "5e0a9849d4e353c3726095b65ab07cefce40a636"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 17 18:43:01 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 29 10:52:02 2014 -0800"
      },
      "message": "ART: Reorder entrypoint argument order\n\nShuffle the ArtMethod* referrer backwards for easier removal.\n\nClean up ARM \u0026 MIPS assembly code.\n\nChange some macros to make future changes easier.\n\nChange-Id: Ie2862b68bd6e519438e83eecd9e1611df51d7945\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "baede348efa86600e64fb9db43cec1eef07c86d9",
      "tree": "7ab2c2a69c72b7cd2ce1b7bf1ed9d26b07e4fd7e",
      "parents": [
        "989210eb453898bd94bf3527f18f6146b07aa4bb",
        "6963e44331258b131bcc0599b868ba15902d6d22"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Dec 04 10:21:02 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 04 10:21:02 2014 +0000"
      },
      "message": "Merge \"JDWP: fix breakpoint for method in the image\""
    },
    {
      "commit": "6963e44331258b131bcc0599b868ba15902d6d22",
      "tree": "24ef16e739e99d3e9d980f2acde8dd301c236c37",
      "parents": [
        "220526b05d4365a1820a694c98527eda2d3dc980"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Nov 26 22:11:27 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Dec 04 10:20:24 2014 +0100"
      },
      "message": "JDWP: fix breakpoint for method in the image\n\nWhen we set a breakpoint in a compiled method, we deoptimize it by\nchanging its entrypoint so it is executed with the interpreter.\nHowever, methods in the image can be called with their direct code\npointer, ignoring the updated entrypoint. In that case, the method\nis not executed with the interpreter and we miss the breakpoint.\n\nThis CL avoids that situation by forcing a full deoptimization so\neverything runs with the interpreter. However, if the image has been\ncompiled in PIC mode, we keep using selective deoptimization because\ndirect code pointer is not used in this mode.\n\nBug: 17965285\nChange-Id: Icaf8cbb7fe9ad01d36f7378c59d50d9ce42ae57f\n"
    },
    {
      "commit": "1a102189c1782e003f27e95ce093e854408767f3",
      "tree": "36b874dcd5d5c8bb7a2c30aa70cff58faaed19a3",
      "parents": [
        "b5fb207ed5e3570ec14e18811b3fa066168fe493"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 17:49:19 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 18:00:07 2014 -0800"
      },
      "message": "Remove MethodHelper.\n\nMove use as a shorty processor to only use in portable.\nMove GetNumberOfReferenceArgsWithoutReceiver to mirror::ArtMethod.\n\nChange-Id: I7ded3d05315c84bce4ab19cb330ef74289da4bb3\n"
    },
    {
      "commit": "b5fb207ed5e3570ec14e18811b3fa066168fe493",
      "tree": "a964e9039b303cae03654085146d34b279427fae",
      "parents": [
        "b5af2641acf9d2e247baaa2ac7674f91b801878d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 17:22:02 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 17:31:32 2014 -0800"
      },
      "message": "Remove MethodHelper::HasSameSignatureWithDifferentClassLoaders.\n\nMove sole use to a static function within class_linker.cc.\nRemove unused MutableMethodHelper and empty method_helper.cc.\n\nChange-Id: Ia26bc76674ed2ee7c9c546de820cc181005fed77\n"
    },
    {
      "commit": "f2247513a54300cfa6a2f23fdbbafead115c99b2",
      "tree": "16d40b270b8a248ae9464d9aca9cd432c284b135",
      "parents": [
        "384f729a465d0ab3a76faa7ec8fa05ced82b4a85"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 16:17:08 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 16:27:15 2014 -0800"
      },
      "message": "Remove MethodHelper::HasSameNameAndSignature.\n\nMove sole use to a static method with art_method.cc.\n\nChange-Id: I2e7994cc1c31b5ca74df5d7be5538003d4ed0150\n"
    },
    {
      "commit": "a0485607a4a4d8c683a9849f6f20902c4e1da7a4",
      "tree": "bbfa8e6182b702f161ea07efd53975fab1b6b736",
      "parents": [
        "08f1f50d6c2e8f247b8f5f19711d75a792851c7a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 15:48:04 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 15:57:13 2014 -0800"
      },
      "message": "Move GetClassFromTypeIdx to ArtMethod.\n\nMove GetClassFromTypeIdx out of MethodHelper into ArtMethod in\npreparation for the removal of MethodHelper.\n\nChange-Id: I9c03dd8c821944c606ea08cdf92afc80c4275247\n"
    },
    {
      "commit": "08f1f50d6c2e8f247b8f5f19711d75a792851c7a",
      "tree": "dca490545d56168f7f9ae4a4616199b1b1c8ba0c",
      "parents": [
        "8443637f71a777a13317fe7635028d758a0adf97"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 15:04:37 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 15:12:27 2014 -0800"
      },
      "message": "Remove FieldHelper.\n\nChange-Id: I2d74e2d5b3c35a691c95339de0db9361847fca11\n"
    },
    {
      "commit": "e0a02dabedd7db2c511a513fb48d7e39ed3dd9c0",
      "tree": "70ee0e4caa2cc26c661b6cb0231b8423506e50fa",
      "parents": [
        "e94652f1e321b2c8b71acbe5b07d2ebf69fbdb99"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 14:10:53 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 14:21:56 2014 -0800"
      },
      "message": "Move FindDexMethodIndexInOtherDexFile into ArtMethod.\n\nMove FindDexMethodIndexInOtherDexFile out of MethodHelper into ArtMethod in\npreparation for the removal of MethodHelper.\nTidy ClassLinker::ResolveMethod so that all exception paths flow through the\nexception pending assertion.\nTidy artQuickResolutionTrampoline to be more explicit about variable names and\nonly update the dex cache if necessary.\n\nChange-Id: I3e48eb4f6c1291533067c1b53efe90c53bfcaea8\n"
    },
    {
      "commit": "e94652f1e321b2c8b71acbe5b07d2ebf69fbdb99",
      "tree": "b4c2a4435800222fa740a5ae57fa217b6aed0875",
      "parents": [
        "f25c2ec6b63e116f24f359a10b59c78768fde67a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 11:13:19 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 11:13:49 2014 -0800"
      },
      "message": "Remove MethodHelper from the interpreter.\n\nUse ShadowFrame to get the executing method to avoid a handle for the current\nmethod.\nVarious associated bits of header file clean-up and removal of an unnecessary\nuse of MethodHelper in CompilerDriver.\n\nChange-Id: I3b6f4413701e8fc6b0c58b0041a0dd15472bedaa\n"
    },
    {
      "commit": "3ac90da48e9cd56eb4b392c7f176e9267d146500",
      "tree": "f2ef3b42669aa52130e19b3709afc3239998fdeb",
      "parents": [
        "98646a3d98075da05f9959b2cecea849183dbd27"
      ],
      "author": {
        "name": "Pavel Vyssotski",
        "email": "pavel.n.vyssotski@intel.com",
        "time": "Tue Dec 02 19:54:50 2014 +0600"
      },
      "committer": {
        "name": "Pavel Vyssotski",
        "email": "pavel.n.vyssotski@intel.com",
        "time": "Tue Dec 02 20:53:17 2014 +0600"
      },
      "message": "Fix OOM throwing if it happens in finalizer reference (take 2)\n\nThe Class::Alloc should return null if OOM happened during\nadding finalizer reference, even if finalizable object is\nallocated succesfully.\n\nAdded new more reliable test.\n\nChange-Id: Id5fed3bdb16297d6d3a2b14ce62cc305aa703d60\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\nSigned-off-by: Pavel Vyssotski \u003cpavel.n.vyssotski@intel.com\u003e\n"
    },
    {
      "commit": "91a6dc41003cdd22073e72fd5425df8e95b1c172",
      "tree": "fb0dcbccd5365f7e9d8ddb461dca72dd20310fc4",
      "parents": [
        "dde815ab8e1a1997ad01cb7f63dd10ef26597f46"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 01 10:31:15 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 01 11:25:40 2014 -0800"
      },
      "message": "Set dex_cache_strings_ when we call Class::SetDexCache\n\nEnsures that these two variables never get out of sync. The error\nwas presumably related to not doing this for proxy classes. This\ncaused java code which was looking at the dex_cache_strings_ field\nto incorrectly access a null array.\n\nBug: 18548887\n\n(cherry picked from commit ea1c3d77b92b30ec527f2ca5bfe316a882b698e0)\n\nChange-Id: I022d9311b38b61e160ed70e3c5d9639797adb29c\n"
    },
    {
      "commit": "cd195fe131842ad9ca7909203d479d325feaf9dd",
      "tree": "951be836646a63d4b7300466718d1cd222d01e11",
      "parents": [
        "3c17775c45277e90da10296d90f0f474f4a1b84a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 25 18:36:01 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 26 11:16:28 2014 -0800"
      },
      "message": "Add a way to change the IMT size\n\nUseful for having smaller imts on memory constrainted devices.\nSetting ART_IMT_SIZE\u003dx will change the size of the IMT.\n\n(cherry picked from commit 8ee96437f8cd24e1eb0b2adc6cef3346ed4b6a98)\n\nChange-Id: Ia74946ffc57ad32de5a8d60be3412462f19f8076\n"
    },
    {
      "commit": "eace45873190a27302b3644c32ec82854b59d299",
      "tree": "73fbf327839263b6847bdc4359ac1dbea2b897e3",
      "parents": [
        "8ac8d5556fae9c728bcebcc9036a1bbf40087c76"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 24 18:29:54 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 25 16:02:04 2014 -0800"
      },
      "message": "Move dexCacheStrings from ArtMethod to Class\n\nAdds one load for const strings which are not direct.\n\nSaves \u003e\u003d 60KB of memory avg per app.\nImage size: -350KB.\n\nBug: 17643507\nChange-Id: I2d1a3253d9de09682be9bc6b420a29513d592cc8\n\n(cherry picked from commit f521f423b66e952f746885dd9f6cf8ef2788955d)\n"
    },
    {
      "commit": "957ca1cd025104fccb0b08928f955f9bdb4ab91c",
      "tree": "913ceffe992bb25898ac79977b47dc2af8b3354b",
      "parents": [
        "4d3ed1a6f34bd31ed30faaca0433cf2a4b19bb7b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 21 16:51:29 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 24 10:44:33 2014 -0800"
      },
      "message": "Delete ArtMethod gc_map_ field\n\nMoved the gc_map field from OatMethod to OatQuickMethodHeader.\nDeleted the ArtMethod gc_map_ field.\n\nBug: 17643507\n\nChange-Id: Ifa0470c3e4c2f8a319744464d94c6838b76b3d48\n\n(cherry picked from commit 807140048f82a2b87ee5bcf337f23b6a3d1d5269)\n"
    },
    {
      "commit": "022b46cb09a6189797fb3e77dbe7673a3d59249f",
      "tree": "f3440544c000174e72508ff3561e0e984f9f09f9",
      "parents": [
        "124cd8f768436e082ca0dfed8f1e4f4713220e44",
        "e14f2b3047fd310c5df65cf13470aa2786522a3b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Nov 22 02:13:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 22 02:13:21 2014 +0000"
      },
      "message": "Merge \"Fixed ArtMethod::GetQuickFrameInfo() for proxy methods\""
    },
    {
      "commit": "a7dd0386f35c0ba4aef3f5b16bc84c6f4e2fc702",
      "tree": "86bcc8c05fb3f868dbdae3dcacbf95de880d4d64",
      "parents": [
        "af6dad6cbb6685f92d7274f9e8c45baa98232c79"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 20 17:08:58 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 21 10:11:41 2014 -0800"
      },
      "message": "Fix oatdump to use OatHeader pointer size\n\nBug: 18473190\nChange-Id: If505b4f62105899f4f1257d3bccda3e6eb0dcd7c\n\n(cherry picked from commit c934e483ceabbd589422beea1fa35f5182ecfa99)\n"
    },
    {
      "commit": "2d7210188805292e463be4bcf7a133b654d7e0ea",
      "tree": "7705a3bf841ae44b2396728fa22ed0b5dcb44dbf",
      "parents": [
        "e0491682d101c69bf88c3c24a965312129cbfa38"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 10 11:08:06 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 18 12:27:37 2014 -0800"
      },
      "message": "Change 64 bit ArtMethod fields to be pointer sized\n\nChanged the 64 bit entrypoint and gc map fields in ArtMethod to be\npointer sized. This saves a large amount of memory on 32 bit systems.\nReduces ArtMethod size by 16 bytes on 32 bit.\n\nTotal number of ArtMethod on low memory mako: 169957\nImage size: 49203 methods -\u003e 787248 image size reduction.\nZygote space size: 1070 methods -\u003e 17120 size reduction.\nApp methods: ~120k -\u003e 2 MB savings.\n\nSavings per app on low memory mako: 125K+ per app\n(less active apps -\u003e more image methods per app).\n\nSavings depend on how often the shared methods are on dirty pages vs\nshared.\n\nTODO in another CL, delete gc map field from ArtMethod since we\nshould be able to get it from the Oat method header.\n\nBug: 17643507\n\nChange-Id: Ie9508f05907a9f693882d4d32a564460bf273ee8\n\n(cherry picked from commit e832e64a7e82d7f72aedbd7d798fb929d458ee8f)\n"
    },
    {
      "commit": "fd04b6f89238af5da682805aa11899639fb4ee07",
      "tree": "e1c2fc7eed43c7d644003c6cc3ec7311624a3dfe",
      "parents": [
        "d777112c261696f60536c1b9cd2a407722a90137"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 14 19:34:18 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 17 14:43:21 2014 -0800"
      },
      "message": "Combine image string char arrays into single array\n\nHaving one giant char array shared between all the strings saves memory\nsince it avoids the 12 bytes of array overhead per image string. Also\nadded substring finding based on prefixes, strings are added into the\narray in reverse sorted length.\n\nImage size goes from 11767808 -\u003e 11100160.\n\nBug: 17643507\n\nChange-Id: I2a7f177b40d0458d5c50640643d8f16b0030bdce\n\n(cherry picked from commit 23c1d0ca7ab63f4adad88631bddefb769d0dcc2c)\n"
    },
    {
      "commit": "76649e8d775519fe19f2b14d18ac488c13296054",
      "tree": "a899ec37ce51672c9e14d2954b2a7af7397e63da",
      "parents": [
        "d94a0a1d2868baaab49f4d2835bca086d98cf763"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 10 18:32:59 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 14 11:33:53 2014 +0000"
      },
      "message": "Keep original order of fields in Class.\n\nThe fields of a class are ordered alphabetically in the dex\nfile. Keep the same order in the field arrays so that we can\ndo binary search lookups by name. Those lookups will be\nimplemented in a subsequent change in libcore/.\n\nBug: 18211592\n\n(cherry picked from commit bfa3ed0ad988e1da13626ddbaf6dcae0c58ea79e)\n\nChange-Id: I8f979de62ffe37d1c7d5c721717d2f3501e7c9e6\n"
    },
    {
      "commit": "5f9a95423dda3a2f945c81a04107fedf18e2c2c1",
      "tree": "27f55e828ea076674f9bc510523c675fe6caf3b5",
      "parents": [
        "974bc2747b345667e07692109d63675ec50955a3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 07 18:38:47 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 10 10:07:57 2014 -0800"
      },
      "message": "Delete unused imtable field\n\nBug: 17643507\n\nChange-Id: I1fc7ca2d3bdf1810bcc3b46f867b68a4a6d28ed3\n\n(cherry picked from commit f2d556401ec1d82fec31c0b29d712de18d838282\n"
    },
    {
      "commit": "de58ab2c03ff8112b07ab827c8fa38f670dfc656",
      "tree": "c872bfbcad1e90845008140bbddcc43e56dc19d2",
      "parents": [
        "3ed86e4e98dfe1b05c9a03aa2aee42c145a018c3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 05 12:46:03 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 06 16:49:52 2014 +0000"
      },
      "message": "Implement try/catch/throw in optimizing.\n\n- We currently don\u0027t run optimizations in the presence of a try/catch.\n- We therefore implement Quick\u0027s mapping table.\n- Also fix a missing null check on array-length.\n\nChange-Id: I6917dfcb868e75c1cf6eff32b7cbb60b6cfbd68f\n"
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "575e78c41ece0dec969d31f46be563d4eb7ae43b",
      "tree": "16906df0ba0912a6cb01b3139ba7c60d5f9d09b7",
      "parents": [
        "2998e9cdc9f19c30c4944a4726ed9f147de79ebd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 23:41:03 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 23:41:03 2014 -0800"
      },
      "message": "ART: Replace COMPILE_ASSERT with static_assert (runtime)\n\nReplace all occurrences of COMPILE_ASSERT in the runtime tree.\n\nChange-Id: I01e420899c760094fb342cc6cb9e692dd670a0b2\n"
    },
    {
      "commit": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "2b0fa5ba4a8f07ee243452003bf93418d30e9448",
      "tree": "3fb41e59c663ad861ea65c6032f875cf4bf406b7",
      "parents": [
        "9a41fb1616df7e966e58cabc2abc1b5d90c9e14f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 31 18:12:30 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 10:22:23 2014 -0800"
      },
      "message": "ART: Add miranda checking\n\nAdd a test for resolution of miranda methods across dex-files. See\nCL 112688 and b/18193682 for the code change.\n\nFix the test script to support no-verify again.\n\nWeaken the dex cache check to a check whether the found method is a\nmiranda method. This will penalize miranda methods, as they will\nalways have to be resolved by name, but does not require the multi-step\nload of the method\u0027s dex cache.\n\nBug: 18193682\nChange-Id: I1dae2a9ec0985dc8625acd7dd5686a5d3cdc8888\n"
    },
    {
      "commit": "f322c4cb1290a53e3fc4dca4217810484ecc8f20",
      "tree": "e185062a7136e978d48dcd28413f162db43284a1",
      "parents": [
        "57b4d1c44e246dfd4aaef2d23b20a696a0c5e57e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 31 00:01:54 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 31 11:55:17 2014 -0700"
      },
      "message": "Fix FindDeclaredVirtualMethod(DexCache...) for miranda methods\n\nIf a class in classes.dex implements an interface from classes2.dex,\nthe miranda method will be in the dex cache for classes2.dex, but\npointed to by the virtual methods of the class in the dex caches for\nclasses.dex.\n\nTherefore the fast path for DexCache::ResolveMethod that searches via\nclass and superclass virtual methods should ensure that any method\nmatching on dex method_idx should be from the same dex cache as the\nclass itself, which is not the case for miranda methods.\n\nBug: 18193682\n\n(cherry picked from commit 9a783d6a0cb437fc0d9ffcc84502912f3d1cb73b)\n\nChange-Id: Ia44f72c2ed2701e48153d14d2c5ca4ccc4959b30\n"
    },
    {
      "commit": "2a4e71ca268f8a5b3d8424116a7a8650265d8774",
      "tree": "ea7f3c0a1f38b42affef0e59a0c4008e4c1a7181",
      "parents": [
        "45664c995b99e81f6d425206d7a43cb3b898daab",
        "bbcd30bf9a39e40879426ec703985c96df1d7491"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 22:42:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 30 22:42:27 2014 +0000"
      },
      "message": "Merge \"Avoid signed integer overflow in identity hash code.\""
    },
    {
      "commit": "bbcd30bf9a39e40879426ec703985c96df1d7491",
      "tree": "bb2ffc6c685b2afc333477396856ce05697d3e19",
      "parents": [
        "a8825e4b38ae01fa77d255ca423ab2f2b77c6097"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 15:25:36 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 15:25:36 2014 -0700"
      },
      "message": "Avoid signed integer overflow in identity hash code.\n\nCaught by -ftrapv.\n\nChange-Id: Ib8dbb31440ccce88a3c3ce7ea3b2394621616eff\n"
    },
    {
      "commit": "9f3629df89b7f2b4f7a599bdc5f7eeb748330582",
      "tree": "3ed0e8d389c027331e3bb27035e93429b305318f",
      "parents": [
        "d99865e11d9fb88567da3e68163d275982fd6cba"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 28 18:23:02 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 30 15:19:25 2014 -0700"
      },
      "message": "Add hash table to link virtual methods\n\nAdded a hash table for turning the O(m*n) lookup average case to\nO(m+n) average case. There is probably still some room for improvement.\n\nBefore:\nWaitTime: 2121\nWaitTime: 2051\nWaitTime: 2134\nWaitTime: 2104\nWaitTime: 2237\nWaitTime: 2391\n4.99% art::MethodNameAndSignatureComparator::HasSameNameAndSignature(art::mirror::ArtMethod)\n1.65% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle\u003cart::mirror::Class\u003e)\n\nAfter:\nWaitTime: 2038\nWaitTime: 1965\nWaitTime: 1979\nWaitTime: 1976\nWaitTime: 1957\nWaitTime: 2004\n0.46% art::MethodNameAndSignatureComparator::HasSameNameAndSignature(art::mirror::ArtMethod*)\n1.39% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle\u003cart::mirror::Class\u003e)\n\nBug: 18054905\nBug: 16828525\n\n(cherry picked from commit a9ca9ac444ceb2cf5e8bd5c98c1ed47f2a9a94dd)\n\nChange-Id: If847afb7194daa05ace38d15862e4b871dfffae1\n"
    },
    {
      "commit": "6b14d55c812ee3438e87db249d5a144e0397fb3b",
      "tree": "6ed2472193e930269a33fbc50ccb1e4d4c2d43a7",
      "parents": [
        "ded66a01f81812e0129d17c3d08d5eda18433062"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 28 21:50:58 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 28 21:50:58 2014 -0700"
      },
      "message": "Move GetNameAsString out of MethodHelper into ArtMethod.\n\nChange-Id: I98b8ed9d91741267659616cb76ce5f6fec4feae8\n"
    },
    {
      "commit": "ded66a01f81812e0129d17c3d08d5eda18433062",
      "tree": "74a3f7bad1c020b0136d6c173633a361a479f5cb",
      "parents": [
        "e0205d519dd417f749243b42b8711dfa313e5390"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 28 18:12:55 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 28 18:36:32 2014 -0700"
      },
      "message": "Move MethodHelper::GetReturnType to mirror::ArtMethod.\n\nAlso, fix missing handle in HasSameSignatureWithDifferentClassLoaders.\n\nChange-Id: I9e1ffd09be950ecc8346fc3c485760d82d9ecab3\n"
    },
    {
      "commit": "03b6eafba8ace9a9c4d5ee9c47723d1910ccd7a8",
      "tree": "3451b85f23b14cd78ab6bd1257528ba2eb6769e5",
      "parents": [
        "4816ecfc1b2d544685ec5edcdeaad6870f6bfd7e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 28 09:34:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 28 11:04:43 2014 -0700"
      },
      "message": "Tidy MethodProtoHelper.\n\nMove to place of only use, class_linker.cc. Be lazy in computing the name.\n\nChange-Id: I1438efbda58369ddd0ac36eda8a5a0a6c6fdff77\n"
    },
    {
      "commit": "2d2621a1463d2f3f03fa73503fa42e43657cdcfc",
      "tree": "1f7cf393693d72db5c186f99b04ac511958c6418",
      "parents": [
        "ac293277b69882105810fabd6c53f55de58823fe"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 23 16:48:06 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 27 16:49:43 2014 -0700"
      },
      "message": "Optimize method linking\n\nAdded more inlining, removed imt array allocation and replaced it\nwith a handle scope. Removed some un-necessary handle scopes.\n\nAdded logic to base interface method tables from the superclass so\nthat we dont need to reconstruct for every interface (large win).\n\nFacebook launch Dalvik KK MR2:\nTotalTime: 3165\nTotalTime: 3652\nTotalTime: 3143\nTotalTime: 3298\nTotalTime: 3212\nTotalTime: 3211\n\nFacebook launch TOT before:\nWaitTime: 3702\nWaitTime: 3616\nWaitTime: 3616\nWaitTime: 3687\nWaitTime: 3742\nWaitTime: 3767\n\nAfter optimizations:\nWaitTime: 2903\nWaitTime: 2953\nWaitTime: 2918\nWaitTime: 2940\nWaitTime: 2879\nWaitTime: 2792\n\nLinkInterfaceMethods no longer one of the hottest methods, new list:\n4.73% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle\u003cart::mirror::Class\u003e)\n3.07% art::DexFile::FindClassDef(char const*) const\n2.94% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)\n2.90% art::DexFile::FindStringId(char const*) const\n\nBug: 18054905\nBug: 16828525\n\n(cherry picked from commit 1fb463e42cf1d67595cff66d19c0f99e3046f4c4)\n\nChange-Id: I27cc70178fd3655fbe5a3178887fcba189d21321\n"
    },
    {
      "commit": "3e3364e267117462894e0c3b7d9b413b25d28057",
      "tree": "b5f96ac99323be3e210156de8d97a61af7e1a19c",
      "parents": [
        "c57a66d5aadfd682c63e34ec1b1f304260f8c333",
        "2c4257be8191c5eefde744e8965fcefc80a0a97d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Oct 25 00:14:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 25 00:14:26 2014 +0000"
      },
      "message": "Merge \"Tidy logging code not using UNIMPLEMENTED.\""
    },
    {
      "commit": "5667fdbb6e441dee7534ade18b628ed396daf593",
      "tree": "a06fe0a79b3465571556d13f509daf1f664fc614",
      "parents": [
        "b62ff579cd870b0bf213765b07d7b404d15ece7b"
      ],
      "author": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Thu Oct 23 18:29:55 2014 +0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 24 16:27:22 2014 -0700"
      },
      "message": "ARM: Use hardfp calling convention between java to java call.\n\nThis patch default to use hardfp calling convention. Softfp can be enabled\nby setting kArm32QuickCodeUseSoftFloat to true.\n\nWe get about -1 ~ +5% performance improvement with different benchmark\ntests. Hopefully, we should be able to get more performance by address the left\nTODOs, as some part of the code takes the original assumption which is not\noptimal.\n\nDONE:\n1. Interpreter to quick code\n2. Quick code to interpreter\n3. Transition assembly and callee-saves\n4. Trampoline(generic jni, resolution, invoke with access check and etc.)\n5. Pass fp arg reg following aapcs(gpr and stack do not follow aapcs)\n6. Quick helper assembly routines to handle ABI differences\n7. Quick code method entry\n8. Quick code method invocation\n9. JNI compiler\n\nTODO:\n10. Rework ArgMap, FlushIn, GenDalvikArgs and affected common code.\n11. Rework CallRuntimeHelperXXX().\n\nChange-Id: I9965d8a007f4829f2560b63bcbbde271bdcf6ec2\n"
    },
    {
      "commit": "2c4257be8191c5eefde744e8965fcefc80a0a97d",
      "tree": "9db3e1f1c60f2df29638ba3ce9d5d5bb8b26ca2c",
      "parents": [
        "98c271d517bc4d25fc6879b4b8e35ea93885d9e2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 24 14:20:06 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 24 14:23:42 2014 -0700"
      },
      "message": "Tidy logging code not using UNIMPLEMENTED.\n\nChange-Id: I7a79c1671a6ff8b2040887133b3e0925ef9a3cfe\n"
    },
    {
      "commit": "cf7f19135f0e273f7b0136315633c2abfc715343",
      "tree": "ffa4d9efd9c45f4b6789acc1f534bb9327052b7e",
      "parents": [
        "aea6888b056be21adf762e066c7f33b8939b8a06"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:06:39 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:21:57 2014 -0700"
      },
      "message": "C++11 related clean-up of DISALLOW_..\n\nMove DISALLOW_COPY_AND_ASSIGN to delete functions. By no having declarations\nwith no definitions this prompts better warning messages so deal with these\nby correcting the code.\nAdd a DISALLOW_ALLOCATION and use for ValueObject and mirror::Object.\nMake X86 assembly operand types ValueObjects to fix compilation errors.\nTidy the use of iostream and ostream.\nAvoid making cutils a dependency via mutex-inl.h for tests that link against\nlibart. Push tracing dependencies into appropriate files and mutex.cc.\nx86 32-bit host symbols size is increased for libarttest, avoid copying this\nin run-test 115 by using symlinks and remove this test\u0027s higher than normal\nulimit.\nFix the RunningOnValgrind test in RosAllocSpace to not use GetHeap as it\nreturns NULL when the heap is under construction by Runtime.\n\nChange-Id: Ia246f7ac0c11f73072b30d70566a196e9b78472b\n"
    },
    {
      "commit": "4918e1ca05d0ec1510c7e997c5ae94cf6ce52045",
      "tree": "816879c68f070d72e003db18ac17685b17382e88",
      "parents": [
        "845087a9934d3d2169fdbd21f07909b84ee74781",
        "f4c15a18eb055735857a280856be5b142e0c1113"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Oct 21 23:23:16 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 21 23:23:16 2014 +0000"
      },
      "message": "Merge \"Fix a DCHECK failure IsResolved() || IsErroneous().\""
    },
    {
      "commit": "f4c15a18eb055735857a280856be5b142e0c1113",
      "tree": "02a8121007ab1cfe7755d07ccd003c93db8635e1",
      "parents": [
        "1c1786f193323d3bd706463894001117f3471595"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Oct 20 16:56:58 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Oct 21 16:22:06 2014 -0700"
      },
      "message": "Fix a DCHECK failure IsResolved() || IsErroneous().\n\nBug: 17914035\nChange-Id: I90877d31fdce3d3bf7b5f22f7759f9536ab14d03\n"
    },
    {
      "commit": "1d8cdbc5202378a5f1a4b3a1fba610675ed4dcd5",
      "tree": "6a1b0f49aee5a97b513bd0becc734d284aa7fb65",
      "parents": [
        "1c1786f193323d3bd706463894001117f3471595"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 22 22:51:09 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 20 16:01:28 2014 -0700"
      },
      "message": "Refactor quick entrypoints\n\nRemove FinishCalleeSaveFrameSetup.\nAssembly routines write down anchor into TLS as well as placing runtime\nmethod in callee save frame.\nSimplify artSet64InstanceFromCode by not computing the referrer from the\nstack in the C++ code.\nMove assembly offset tests next to constant declaration and tidy arch_test.\n\nChange-Id: Iededeebc05e54a1e2bb7bb3572b8ba012cffa1c8\n"
    },
    {
      "commit": "e14f2b3047fd310c5df65cf13470aa2786522a3b",
      "tree": "1bb4ae00f0fd9b1057e3af550d28dcf86a9992c7",
      "parents": [
        "8946e41dcce414dc3359c23d93e001f91d186612"
      ],
      "author": {
        "name": "Daniel Mihalyi",
        "email": "daniel.mihalyi@mattakis.com",
        "time": "Fri Oct 10 18:24:11 2014 +0200"
      },
      "committer": {
        "name": "Daniel Mihalyi",
        "email": "daniel.mihalyi@mattakis.com",
        "time": "Mon Oct 20 12:37:36 2014 +0200"
      },
      "message": "Fixed ArtMethod::GetQuickFrameInfo() for proxy methods\n\nIf we call ArtMethod::GetQuickFrameInfo() on a proxy constructor when\ninstrumentation stubs are installed, the entry point returned by\nInstrumentation::GetQuickCodeFor() would be a artQuickProxyInvokeHandler,\nand not a regular quick oat code pointer. This patch adds special handling\nfor proxy constructors to always compute frame info from the regular quick\ncode entry point. (These entry points are never updated by instrumentation\nfor proxy methods.)\n\nChange-Id: I8e51f5622b6d327037d5c968b07505b2bf4ac737\nSigned-off-by: Daniel Mihalyi \u003cdaniel.mihalyi@mattakis.com\u003e\n"
    },
    {
      "commit": "b144fce20290535fd362df8e79106c9c35ae9efb",
      "tree": "56cd22716e1d682ec5fb385025bf97133153d1f7",
      "parents": [
        "fb0566b28a0453bc5605db8abd521c22038c6a7f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 16 22:02:23 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 16 22:13:04 2014 -0700"
      },
      "message": "Tracking change to make Class.getDeclaredFields/Methods public\n\n(cherry picked from commit d8bef73723ea2d101b36e857968bc15d0887dcee)\n\nBug: 17375269\nChange-Id: I8a810b4f21eb5a94883415cf7ecc4df273d72688\n"
    },
    {
      "commit": "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3",
      "tree": "f7a20779e4d665f948c5fbcd26dac0071dafb8d4",
      "parents": [
        "2df6840f68dd18d7dd8dbf53f8b6181bbfdc4fc4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 14 17:41:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 19:27:28 2014 -0700"
      },
      "message": "Make ART compile with GCC -O0 again.\n\nTidy up InstructionSetFeatures so that it has a type hierarchy dependent on\narchitecture.\nAdd to instruction_set_test to warn when InstructionSetFeatures don\u0027t agree\nwith ones from system properties, AT_HWCAP and /proc/cpuinfo.\nClean-up class linker entry point logic to not return entry points but to\ntest whether the passed code is the particular entrypoint. This works around\nimage trampolines that replicate entrypoints.\nBug: 17993736\n\nChange-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23\n"
    },
    {
      "commit": "647b1a86f518d8db0331b3d52a96392b7a62504b",
      "tree": "7370f795ef3c7fbdd2695d23bc6f8171f40f43f1",
      "parents": [
        "acfbbd4df2fc1c79a7102587bebf398f95b5e5de"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 11:02:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 12:26:02 2014 -0700"
      },
      "message": "Fix 2 new sets of clang compiler warnings.\n\nFix issues that are flagged by -Wfloat-equal and -Wmissing-noreturn.\nIn the case of -Wfloat-equal the current cases in regular code are deliberate,\nso the change is to silence the warning. For gtest code the appropriate fix is\nto switch from EXPECT_EQ to EXPECT_(FLOAT|DOUBLE)_EQ.\nThe -Wmissing-noreturn warning isn\u0027t enabled due to a missing noreturn in\ngtest. This issue has been reported to gtest.\n\nChange-Id: Id84c70c21c542716c9ee0c41492e8ff8788c4ef8\n"
    },
    {
      "commit": "6cdedf0332d707f89a867a8f358d09b3262bf5e0",
      "tree": "2b6361252ec31acd9c2c58b3eb803ac59e93a5a5",
      "parents": [
        "13735955f39b3b304c37d2b2840663c131262c18"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 16:29:40 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 16:29:40 2014 -0700"
      },
      "message": "Fix object header size for baker read barrier.\n\nChange-Id: I2b4a61488b9017d22210d79a07f485f9afef3b42\n"
    },
    {
      "commit": "13735955f39b3b304c37d2b2840663c131262c18",
      "tree": "0a731ac42b8230f9929172fa3e3d8051874e2b18",
      "parents": [
        "25b18bbdaa36ff936eb44f228f0518d4223e9d52"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 12:43:28 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 16:05:58 2014 -0700"
      },
      "message": "stdint types all the way!\n\nChange-Id: I4e4ef3a2002fc59ebd9097087f150eaf3f2a7e08\n"
    },
    {
      "commit": "cdc1aaffabbdf417d29b203b2cd2763ed2d623f8",
      "tree": "ff56b9bbaa3ce0305c0ef71c055d3664dddfe93a",
      "parents": [
        "bbb1fc6e95f46470979936450b0d3f1e020c5904"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 13:21:38 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 14:31:29 2014 -0700"
      },
      "message": "Simplify instance reference offsets.\n\nDon\u0027t encode Object\u0027s class. Use trailing rather than leading zeroes to give\noffset position.\n\nChange-Id: I1ae74e7a01f63696429644adf81cdf6ee58832fe\n"
    },
    {
      "commit": "7e70b002c4552347ed1af8c002a0e13f08864f20",
      "tree": "79d5ee5444a5be70130d9a75dd51831c4b15687b",
      "parents": [
        "edc34c88b8f8abd04f9c4668787403608cf0b2d4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 11:47:24 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 11:57:59 2014 -0700"
      },
      "message": "Header file clean up.\n\nRemove runtime.h from object.h.\nMove TypeStaticIf to its own header file to avoid bringing utils.h into\nallocator.h.\nMove Array::DataOffset into -inl.h as it now has a utils.h dependency.\nFix include issues arising from this.\n\nChange-Id: I4605b1aa4ff5f8dc15706a0132e15df03c7c8ba0\n"
    },
    {
      "commit": "74d6a8221c11ac4aa72808863db423aca44117f2",
      "tree": "4f344df6ec2612d8ddbf0a00e2b49a39a7501249",
      "parents": [
        "6d7729d6ae8b2ac3800e92092d61390ce4e3b6d7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 03 10:54:19 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 03 10:54:19 2014 +0000"
      },
      "message": "Revert \"Fix OOM throwing if it happens in finalizer reference\"\n\nThis reverts commit 6d7729d6ae8b2ac3800e92092d61390ce4e3b6d7.\n\nChange-Id: I3e863b7372657ee85b0e48029c3a3e2b4ba75a7c\n"
    },
    {
      "commit": "6d7729d6ae8b2ac3800e92092d61390ce4e3b6d7",
      "tree": "6952c8a01e0b071b404a78b91fc536b89a22930c",
      "parents": [
        "8283e079a209e81caafd123a12a525922368fd34"
      ],
      "author": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Wed Oct 01 13:31:58 2014 +0700"
      },
      "committer": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Thu Oct 02 12:06:38 2014 +0700"
      },
      "message": "Fix OOM throwing if it happens in finalizer reference\n\nThe Class::Alloc should return null if OOM happened during\nadding finalizer reference, even if finalizable object is\nallocated succesfully.\n\nChange-Id: I66c1cdda50228bf1302839785ce4d4889b676f5b\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\n"
    },
    {
      "commit": "07140838a3ee44a6056cacdc78f2930e019107da",
      "tree": "4f344df6ec2612d8ddbf0a00e2b49a39a7501249",
      "parents": [
        "f9098ea6d7326b4d8de2860d18adf74046b80855"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 30 15:43:59 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 30 15:43:59 2014 -0700"
      },
      "message": "Enable -Wunreachable-code\n\nCaught bugs in DeoptimizeStackVisitor and assemble_x86 SIB encoding.\nAdd UNREACHABLE macro to document code expected to be unreachable.\nBug: 17731047\n\nChange-Id: I2e363fe5b38a1246354d98be18c902a6031c0b9e\n"
    },
    {
      "commit": "76433275dbe39e5ced1c223b006d1b900b1937f6",
      "tree": "a72c101defa86ceff8b633cf2eaa606c87f783eb",
      "parents": [
        "88adf36315237947d3a5d10b28fdf8b9da7794a4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 26 14:32:37 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 26 19:54:39 2014 -0700"
      },
      "message": "Optimize get/set reflection performance\n\nSpeedups mostly from reducing how often access checks are needed,\nand adding more inlining, and adding templates.\n\nField_getInt from ~850ns -\u003e 350ns.\nField_setInt from ~900ns -\u003e 370ns.\n\nBug: 14063288\n\n(cherry picked from commit ffc788cb7b5b9f53734d7bb8af2d5e45d885546b)\n\nChange-Id: I2441581ff3478c6ae43b6aa49939ff3f07555ec8\n"
    },
    {
      "commit": "acc7798973a21df5b9944348b371f0e1ceffab80",
      "tree": "d64cb3fd7495df4cc289d3c5a9babf5a0089b370",
      "parents": [
        "4aa2ec15878c77bfb33927cfa7b3d0103d70ffd0",
        "6b604a1b0289e5e7211c2e5f8c4f395f51de7c3d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 25 23:53:21 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 25 23:53:21 2014 +0000"
      },
      "message": "Merge \"Fix Class::IsInSamePackage to not read beyond the end of a StringPiece.\""
    },
    {
      "commit": "6b604a1b0289e5e7211c2e5f8c4f395f51de7c3d",
      "tree": "2789123796907a61bdfbc9c6f5727ac6cda8f559",
      "parents": [
        "e7e34d08cffbd9a43ca9b097f8c7fdd54fbeaa27"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 25 15:35:37 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 25 16:51:29 2014 -0700"
      },
      "message": "Fix Class::IsInSamePackage to not read beyond the end of a StringPiece.\n\nFix length of string piece to be size_type rather than int because expecting\nnegatively sized strings is a bad idea and we should use unsigned types to\ndefensively guard against mistakes.\nRemove max_size and capacity since the return type is inconsistent between\nGoogle and the STL, and we don\u0027t need the functions.\nAdd a bound check in libartd to operator[] accesses.\n\nChange-Id: I1b87a03d8fbd95e7dbb106745e304d1083898075\n"
    },
    {
      "commit": "f0edfc355893d53d1104b05501c99ad5ccf305c4",
      "tree": "7e1fa49875759512f5d02b1c45435d3e3366b920",
      "parents": [
        "1ed5b27ee329208fd8ae22b8a9a61d708e2c1ffb"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 25 11:46:46 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 25 15:53:54 2014 -0700"
      },
      "message": "Some optimizations for the array alloc path.\n\n- Force Array::Alloc() to be inlined.\n- Simplify the array size overflow check.\n- Turn fill_usable into a template parameter.\n- Remove a branch in Array::DataOffset() and avoid\n  Primitive::ComponentSize(), which has a switch, in the array alloc\n  path.\n- Strength reductions in the array size computation by using component\n  size shifts instead of component sizes. Store component size shift\n  in the upper 16 bits of primitive_type field.\n- Speedup: ~4% (3435-\u003e3284) in MemAllocTest on N4.\n\nBug: 9986565\n\nChange-Id: I4b142ffac4ab8b5b915836f1660a949d6442344c\n"
    },
    {
      "commit": "e982f0b8e809cece6f460fa2d8df25873aa69de4",
      "tree": "df729d47439f7243b498dd4503a5f7aa41a4818b",
      "parents": [
        "f031724abf4f215e1627ff837f87cad5d7a25165"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 13 02:11:24 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 09:53:50 2014 +0100"
      },
      "message": "Implement invoke virtual in optimizing compiler.\n\nAlso refactor 004 tests to make them work with both Quick and\nOptimizing.\n\nChange-Id: I87e275cb0ae0258fc3bb32b612140000b1d2adf8\n"
    },
    {
      "commit": "5a4b8a236030460651a3136397d23ca6744e7eb7",
      "tree": "0e43891398e416d3fa77c7de391bf4db4408e8ee",
      "parents": [
        "19f7c95491a053b818f914137fa73df0517b8792"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 11 08:30:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 15 19:50:12 2014 -0700"
      },
      "message": "ART: Rename Handle hierarchy\n\nBring the names in line with normal OO principles: ConstHandle\nbecomes Handle, and Handle becomes MutableHandle.\n\nChange-Id: I0f018eb7ba28bc422e3a23dd73a6cbe6fc2d2044\n"
    },
    {
      "commit": "7b078e8c04f3e1451dbdd18543c8b9692b5b067e",
      "tree": "414229c6b87eb20ea24c40780752da5a3999a49a",
      "parents": [
        "f79ba17defbd9342e44ab9f3de0807054673d3c9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 10 14:44:24 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 12 14:57:53 2014 -0700"
      },
      "message": "Compile time performance improvements focusing on interpret-only.\n\nReduce virtual method dispatch in the method verifier and make more code\ninline-able.\nAdd a StringPiece with const char* equality operator to avoid redundant\nStringPieces and strlens.\nRemove back link from register line to verifier and pass as argument to reduce\nsize of RegisterLine.\nRemove instruction length from instruction flags and compute from the\ninstruction, again to reduce size.\nAdd suspend checks to resolve and verify to allow for more easy monitor\ninflation and reduce contention on Locks::thread_list_suspend_thread_lock_.\nChange ThrowEarlierClassFailure to throw pre-allocated exception.\nAvoid calls to Thread::Current() by passing self.\nTemplate specialize IsValidClassName.\nMake ANR reporting with SIGQUIT run using checkpoints rather than suspending\nall threads. This makes the stack/lock analysis less lock error prone.\nExtra Barrier assertions and condition variable time out is now returned as a\nboolean both from Barrier and ConditionVariable::Wait.\n\n2 threaded host x86-64 interpret-only numbers from 341 samples:\nBefore change: Avg 176.137ms 99% CI 3.468ms to 1060.770ms\nAfter change: Avg 139.163% 99% CI 3.027ms to 838.257ms\nReduction in average compile time after change is 20.9%.\nSlow-down without change is 26.5%.\n\nBug: 17471626 - Fix bug where RegTypeCache::JavaLangObject/String/Class/Throwable\ncould return unresolved type when class loading is disabled.\nBug: 17398101\n\nChange-Id: Id59ce3cc520701c6ecf612f7152498107bc40684\n"
    },
    {
      "commit": "f397866ce6d446d3ec5d12a6d002a3ee2d34b9c7",
      "tree": "dda43ad7a2b096d9f8e823a851b6ebc20ae8b305",
      "parents": [
        "b30e0c644d1f15cf7f048ce733131e7ac70772ae"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 11 12:21:04 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 11 12:21:04 2014 -0700"
      },
      "message": "Fix cpplint issue.\n\nChange-Id: I57f70381b005a3601bba1ab4d646e974860af1c4\n"
    },
    {
      "commit": "967e1a56df7675c8d38d411736fc081039f1a9f9",
      "tree": "62151b066b7531bbe78bfd6fe3c375ea31d3d2bc",
      "parents": [
        "4a4dafe9bbf3fd1b15d85d76c3af7dd581647ace",
        "46f0e97fcd4521db8b98a62eb977095b884659db"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Sep 11 18:10:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 11 18:10:04 2014 +0000"
      },
      "message": "Merge \"Add some comments for retired class.\""
    },
    {
      "commit": "48498591b90a8ff7b24b1ce05c220e3bc42013df",
      "tree": "39ca61335fafc57cbcf91c5087335f367ccbedc4",
      "parents": [
        "b9620f305c79914f5159cf9279a7ccd173af1186"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 10 19:48:05 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 11 08:04:35 2014 -0700"
      },
      "message": "ART: Correctly make methods preverified\n\nBug: 16828525\n\n(cherry picked from commit df1532b9ba0cda2d00b78fbdef461f8a6cf8a737)\n\nChange-Id: I66756348b2aa50e41dacca59769b6810a91c73b0\n"
    },
    {
      "commit": "46f0e97fcd4521db8b98a62eb977095b884659db",
      "tree": "ea0b3bf38138c4c806452382d5daad4b8a6b9923",
      "parents": [
        "73f7d79c1755f85b2be590aa9d9b18e054f76a1a"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Sep 10 15:16:19 2014 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Sep 10 15:17:09 2014 -0700"
      },
      "message": "Add some comments for retired class.\n\nChange-Id: I9208ddc9a73ce751d5bfba786cf0496faba8e126\n"
    },
    {
      "commit": "faff0f05fef90577c9744505555675185832aacd",
      "tree": "40b5130526b80fe0a59f815f19dc2b87b0a9f879",
      "parents": [
        "05382d22a2ebbc95142ec2fc46e2d56b23e699ee"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Sep 10 12:03:22 2014 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Sep 10 14:40:37 2014 -0700"
      },
      "message": "Remove reference_static_offsets used for iterating through class static fields.\n\nSince static fields are contiguous in class object and there is no need to\ntraverse super classes, it\u0027s not meaningful to use reference_static_offsets.\nAlso especially with embedded vtable/imt, static field offset can\u0027t be encoded\nwith an unsigned integer anyway.\n\nA corresponding change is made to Class.java to remove the member field.\n\nBug: 16236588\nChange-Id: I1fde3cd9efce884945876f0658c63d992164fd94\n"
    },
    {
      "commit": "6bcae8fa93684af581d16400f360541d39e5b5e6",
      "tree": "88f99458a0141805acee3f730a0709542283698e",
      "parents": [
        "30cbbee37d9fcca1a39b3681434180102ee5251a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 04 18:33:17 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 08 18:14:42 2014 -0700"
      },
      "message": "Add fast path for FindClass using the type dex file.\n\nIf we are using the PathClassLoader with a BootClassLoader\nparent, we can handle the common case in the FindClass function\nwithout needing to go back to java code.\n\nAround 10% speedup measured of maps launch, could be noise due to\nlarge variation of app launch times. Eliminates defineClassNative\nfrom being anywhere near the top of sampling profiles.\n\nBug: 17397179\nBug: 16828525\n\n(cherry picked from commit 8a39e7fe02e9a81853dc7a75cb50d9ece07a9b37)\n\nChange-Id: I1f31de76c1b1a53e32173b1e61a59b0e2f267c98\n"
    },
    {
      "commit": "3946844c34ad965515f677084b07d663d70ad1b8",
      "tree": "0d85bfba2ff69c34a2897351d1e50a1464509305",
      "parents": [
        "e2c23739c6395a83b30ece38f8a2e9e1bf7cf3ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 02 15:17:15 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 08 12:15:07 2014 +0100"
      },
      "message": "Runtime support for the new stack maps for the opt compiler.\n\nNow most of the methods supported by the compiler can be optimized,\ninstead of using the baseline.\n\nChange-Id: I80ab36a34913fa4e7dd576c7bf55af63594dc1fa\n"
    },
    {
      "commit": "7b3dd82bfaa2b3558587f1614144ad8ccfdbd7a9",
      "tree": "d7a615b6b5b9aa440998a031cb2337556a8b3e7a",
      "parents": [
        "236287039744ee1938f4a4e3fd1fe48090c359d0",
        "805bab1738549b2477b3ad4d9d57fd7c681451b9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 04 14:22:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 04 14:22:45 2014 +0000"
      },
      "message": "Merge \"ART: Fix computation of frame size for direct proxy methods\""
    },
    {
      "commit": "805bab1738549b2477b3ad4d9d57fd7c681451b9",
      "tree": "1bace39c095672c3719706703b800695cfd2d1d0",
      "parents": [
        "519af184ae2d1245ed73004c1a1a457a400f66d5"
      ],
      "author": {
        "name": "Serguei Katkov",
        "email": "serguei.i.katkov@intel.com",
        "time": "Fri Aug 29 18:20:15 2014 +0700"
      },
      "committer": {
        "name": "Serguei Katkov",
        "email": "serguei.i.katkov@intel.com",
        "time": "Thu Sep 04 12:52:11 2014 +0700"
      },
      "message": "ART: Fix computation of frame size for direct proxy methods\n\nProxy method has only one direct method and it is a constructor which\nis cloned from java.lang.reflect.Proxy class together with code.\nAs a result its body is a compiled quick code and frame size should be\ncomputed accordingly in contrast with other virtual methods which are\ninvoked through stub.\n\nChange-Id: I0ac99b2f567b281c9342152bad1149dd6cd39480\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\n"
    },
    {
      "commit": "cdfd39f579574a75b98e7ad48c69826b00361b27",
      "tree": "0f057472d19bf290766e20ea3ad63d0b28ee83a1",
      "parents": [
        "9a4f02722051955e536d6aacb776d637a6713545"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 29 18:16:58 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 02 14:39:49 2014 -0700"
      },
      "message": "Change intern table to unordered set.\n\nIntern table active used bytes goes from 430k to 317k on system\nserver. Similar %wise savings on other apps.\n\nBug: 16238192\n\n(cherry picked from commit d910fcef539e12ab181e56ec80684f39c4e95733)\n\nChange-Id: Ic70395124435c6f420a77e6d8639404a160f395a\n"
    },
    {
      "commit": "381e4ca3cc9fc6405ff20e1de873a56d78d51923",
      "tree": "d526a0a141f6141c941cc6862be30f64eaa4735c",
      "parents": [
        "a0a0da29e7d4d5c1bd471c49f1a4b6ec98fb767a"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Mon Aug 25 17:24:27 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Thu Aug 28 12:00:07 2014 -0700"
      },
      "message": "Filling hole between subclass and superclass.\n\nSubclasses no longer need to be 4-byte aligned at the end. Any gaps\nbetween a superclass and its subclasses will be filled in by halfword\nor byte fields if possible.\n\nRefactored the alignment and shuffling methods to use a priority queue\nin order to reduce the amount of logic when laying out objects.\n\nChange-Id: Ifed71af534e0c5e77bb14555c44b973fe66df6da\n"
    },
    {
      "commit": "654881ffd780066fe1160320059ae629416b4652",
      "tree": "1e2b78526db944590266967054f02cddafbe7963",
      "parents": [
        "3531973c770269d82ea36a65b5738b1587c4d513",
        "8f252e64c75b22dfdfea490751929732653f848c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 26 17:09:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 26 17:10:00 2014 +0000"
      },
      "message": "Merge \"ART: Fix IncompatibleClassChange check for ArtMethod\""
    },
    {
      "commit": "8f252e64c75b22dfdfea490751929732653f848c",
      "tree": "2f0075b78b18d9964258388834a24deb856028ff",
      "parents": [
        "e18aa4316eb9a15cd6b1051f27a1ce49967c170e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 25 20:46:31 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 26 10:05:52 2014 -0700"
      },
      "message": "ART: Fix IncompatibleClassChange check for ArtMethod\n\nIn case of kSuper we should complain sometimes.\n\nBug: 17265201\n\n(cherry picked from commit 249907fe09afd9243c9675a67b157b98378fa3cf)\n\nChange-Id: Ifad903a750495963c7128296713fbd7c4add71cd\n"
    },
    {
      "commit": "37f05ef45e0393de812d51261dc293240c17294d",
      "tree": "7c7793862efa52e1deb42babbdcb652c245ab941",
      "parents": [
        "e25826e28ea65d9c1aa23f84788a091c677b20c7"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Wed Jul 16 18:38:08 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Mon Aug 25 11:16:53 2014 -0700"
      },
      "message": "Reduced memory usage of primitive fields smaller than 4-bytes\n\nReduced memory used by byte and boolean fields from 4 bytes down to a\nsingle byte and shorts and chars down to two bytes. Fields are now\narranged as Reference followed by decreasing component sizes, with\nfields shuffled forward as needed.\n\nBug: 8135266\nChange-Id: I65eaf31ed27e5bd5ba0c7d4606454b720b074752\n"
    }
  ],
  "next": "bf99f77dda749e2b653e8c45259b1fb56e7bb012"
}
