)]}'
{
  "log": [
    {
      "commit": "2435a5751431152aaeaa2faaa86b2a30d3eecfe3",
      "tree": "ec5c4a2140364e6342aad6c02606dd8885d0d8be",
      "parents": [
        "dd6aa87f0484c6097df0657f242eeef9ac9ff9e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 16:07:41 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 16:07:41 2012 -0800"
      },
      "message": "Support for single-stepping by line.\n\nPlus various other test fixes.\n\nChange-Id: I2ef923e56a16a14380eda150685b5e3db944616e\n"
    },
    {
      "commit": "a004aa933a58428489e42d77f707c2b063b73747",
      "tree": "1224764c4a524957e94dfe2d27e277d024986668",
      "parents": [
        "573b7c9324b11ff7f42f68c9ad52d26ebc4b6d12"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 08 18:05:09 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 16 17:48:28 2012 -0800"
      },
      "message": "user build support for art (2 of 3)\n\nChange-Id: I4696fee58e43db48540e2442c4235fc4bb02d9e3\n"
    },
    {
      "commit": "7b0c5b4739e3d9df11caa883de01cc5f4ea30753",
      "tree": "b8754300b1de8f3787803aff764463cb1c2879de",
      "parents": [
        "283ed0d9db3084d0fee46d47cd73bf84bd0cfc16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 16 15:29:07 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 16 16:05:30 2012 -0800"
      },
      "message": "Various dex index tweaks to improve verifier performance\n\nChange-Id: I9369443495b69fc8092f6a69118691c056db3188\n"
    },
    {
      "commit": "5b332c89fa3fdd7dc184b22c2587d28af304d019",
      "tree": "f348c63b6756adad52d1e242786df1c9136d6eee",
      "parents": [
        "9cb39392bacbd2a561c6bd840fff821ff7afaa7e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 01 15:02:31 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Feb 03 18:11:56 2012 -0800"
      },
      "message": "Fix checksum verification when opening DexFiles from OatFiles\n\nChange-Id: Ic3d13f3d591c34f159bf0739536a1751c3e7dc75\n"
    },
    {
      "commit": "54c1ceb8f67ee60b22771a76e947c504934ab937",
      "tree": "acb04537f3a238eed322ea1644621743ecbb7bf1",
      "parents": [
        "02fbef0e356ca43b2032044f870d59de4a4ae92a"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 01 11:45:32 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 01 11:45:32 2012 -0800"
      },
      "message": "Fix to return null if dex file fails verification.\n\nChange-Id: Ia80a4ae519b9bda18c218108278d50fe1c1be1d2\n"
    },
    {
      "commit": "f6174e8a1566bb357e82506f7ec97dc359c90eb2",
      "tree": "b74b1fc81d0dc0b2f2da7ab6f5187493f15a0b66",
      "parents": [
        "4d9716c19cc25911e639272048abd0d6702bb082"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 31 16:14:17 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 31 17:48:30 2012 -0800"
      },
      "message": "Fix to prevent a dex file from being verified multiple times.\n\nInstead of verifying a dex file whenever one is initialized, they\u0027re now\nverified when not opened from memory. Also, the way dalvik_system_DexFile\nopens dex files has been changed to check for an existing oat file and\nget the corresponding dex file from there instead.\n\nChange-Id: I75fc26247150107d628e2c4e364ef8a53fbf9481\n"
    },
    {
      "commit": "2faa5f1271587cda765f26bcf2951065300a01ff",
      "tree": "c59557857c36741cfcd1b6bf5ae039886a8ad6e7",
      "parents": [
        "0850c69c88d49efd4075288511b70d6c032bd0c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 30 14:42:07 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 30 16:46:29 2012 -0800"
      },
      "message": "Fix copyright headers.\n\nChange-Id: I5b7bc76a370238d810d78522bd5531600746700f\n"
    },
    {
      "commit": "30fab40ee5a07af6b8c3b6b0e9438071695a57f4",
      "tree": "86514e3535c8b23cf52249a202076b59ac532021",
      "parents": [
        "f3778f66879fa038a7c9ebe46d5bc4167ddef7d8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 23 15:43:46 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 26 17:32:10 2012 -0800"
      },
      "message": "Upgrade to latest dlmalloc. Refactor Heap and related APIs to use STL like naming.\n\nWe fail assertions in the existing heap code, as does Dalvik. This refactoring\nis to clean the heap and space APIs and to reduce duplication of data\nand thereby solve a failing assertion in the card table.\n\nThis change also wires up clearing of soft references including before\nout-of-memory errors are reported.\n\nIn doing this change it was made clear that mspaces are buggy (and\nviolating invariants with the garbage collector). This\nchange upgrades to an un-Android molested version of dlmalloc-2.8.5 and\nimplements a version of the mspace morecore routine under ART control.\n\nrun-test 061-out-of-memory is updated for current heap sizes.\n\nChange-Id: I377e83ab2a8c78afb9b1881f03356929e2c9dc64\n"
    },
    {
      "commit": "10037c866b04550fc5461058c398c2e3e509381a",
      "tree": "91ef9ebf54962b25c2faf6e66e2b9ca4d383cbbe",
      "parents": [
        "20e1ebb6d7b9959971baf0903beb0c7f7169e716"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Jan 23 15:06:23 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jan 25 16:30:59 2012 -0800"
      },
      "message": "Added pass to verify structure of dex file.\n\nWhen a dex file is first opened, this pass runs through to make sure\nsizes and offsets of the various sections of the dex file match the\nheader and don\u0027t overlap.\n\nChange-Id: I4900c9665d6572ccfca2fe5f79d5d48ce7252036\n"
    },
    {
      "commit": "ba8eee10607a524f43b55a6f33c13924fb16d435",
      "tree": "45f3c3728bcaee9ff04baeaf1706693e677757bf",
      "parents": [
        "844f9a072454eb9dca1022299b6bf99ef4294008"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "message": "Remove more lint.\n\nChange-Id: I48714db4169d9ea0536342809361210910ee2091\n"
    },
    {
      "commit": "11d1b0c31ddd710d26068da8e0e4621002205b4b",
      "tree": "8d9c9c0dd5741214466775b86069032d609fd91c",
      "parents": [
        "bbdb1437f55948e5395b4dcb306e25605539a444"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 23 16:57:47 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 23 17:26:10 2012 -0800"
      },
      "message": "Reduce namespace pollution.\n\nThis leaves us with just the mspace stuff and three libdex functions to clean\nup. We deliberately expose the JII API, and I don\u0027t think there\u0027s anything we\ncan really do about the art_..._from_code stuff (and at least that starts with\n\"art_\").\n\nChange-Id: I77e58e8330cd2afeb496642302dfe3311e68091a\n"
    },
    {
      "commit": "7cfb93e40e30710e184c1a41f2419d497a759677",
      "tree": "649c87da08489ae5e1cde446d6f3f576dc408fe5",
      "parents": [
        "b4807ec95e8ba663b47c13da3e065874b1b586e6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 17 19:46:36 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 17 19:46:36 2012 -0800"
      },
      "message": "Disallow DexFile::Open on directories\n\nChange-Id: I003c883a586c12d243cb4fa3c0618ad4f239319f\n"
    },
    {
      "commit": "850162c870d99037c0287d4335e90326a4fc2df3",
      "tree": "cc6060d8c0367b9f12304f953a102de565c3862d",
      "parents": [
        "9f23e24937efe175d24bb712010690a2358e61ca"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 12 18:46:43 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 12 18:46:43 2012 -0800"
      },
      "message": "Include the name of the source when extracting classes.dex in memory.\n\nThis should make it easier to understand crashes from the log.\n\nChange-Id: Ic1d1214da3b8340aa685431439c16cfac9746029\n"
    },
    {
      "commit": "6e3b1d900cc456a2717944f1f562a2f4df000705",
      "tree": "99cfbf6d1ad1f6f550bb74a5613fade809bdc89e",
      "parents": [
        "761bfa80704937024fdbe58c2b6fd4599760efaf"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 11 01:36:32 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 11 11:25:08 2012 -0800"
      },
      "message": "Combine OatDexFile and OatClasses sections of oat file\n\nChange-Id: Ic300c0ee60f9699a2ef351c89121750af637dade\n"
    },
    {
      "commit": "d601af8d9549ca95a911afb2fc67c4e562da661f",
      "tree": "3b4b2e277ecc02533f9e63b889ee501348568990",
      "parents": [
        "769fde14cf82840e458f3ca0b1accdaedc60e837"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 06 10:15:19 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 06 15:25:19 2012 -0800"
      },
      "message": "Move old dex file creation logic to oat file creation\n\nChange-Id: I643adaf918c00bd38c3e85d7622d30b06eab1c68\n"
    },
    {
      "commit": "a6cc893c4b142cd410fc956963b6f5a014e983ad",
      "tree": "72d9542065e45660c7b2f002a7c03dd9ad5a8a78",
      "parents": [
        "89521898b56f2ebc3fb68acfb6bc6dde9b6f5c38"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 04 14:44:07 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jan 05 14:43:21 2012 -0800"
      },
      "message": "Add installd support to dex2oat\n\nChange-Id: Id1a64403ccea7dc2c1e8b8340d33d383d4045a33\n"
    },
    {
      "commit": "89521898b56f2ebc3fb68acfb6bc6dde9b6f5c38",
      "tree": "6811878efd4490f78ae099ec7e14c1a1ffe4d868",
      "parents": [
        "c74a6971fb9a65dbee337d51e7981a37be208a00"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 07 22:05:07 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 04 00:23:07 2012 -0800"
      },
      "message": "Merge art-cache dex files into oat files\n\nChange-Id: I5a327a4e0b678bd9dabb12de4e21ef05e3fefd0b\n"
    },
    {
      "commit": "955724179c6c739524f610023287f56b24dc31de",
      "tree": "64f751693e72173ae0d044d8c54989b01f1195af",
      "parents": [
        "b87f73ea7524f6eb9da6da1af931a3d3fbb833ff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 18:14:20 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 18:14:20 2011 -0800"
      },
      "message": "Don\u0027t default-construct std::strings and then assign them.\n\nChange-Id: I8c994d1e6a8d2ebe52eaa4f0132e0deb2ecfa5f3\n"
    },
    {
      "commit": "2aab947ddafdd7dbabf9858cbf0364c2f68948e1",
      "tree": "7cddfbe294834111af5344b501de3de0bdd1302a",
      "parents": [
        "6ef827a33b04fd5413d2ad88fd4599ca1920c824"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Dec 12 15:21:43 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Dec 12 15:28:10 2011 -0800"
      },
      "message": "Include DexFile::GetLocation() in DexFile LOGs\n\nChange-Id: If5905de4c92fedf984d9c2773c92d6ebf58b0baf\n"
    },
    {
      "commit": "996a72b3b6149abbff1a5bddf2d6af6a77d3082f",
      "tree": "ace779a966efb2b709587262a6570f14366eaf36",
      "parents": [
        "b2d87e5ea5fadeae9188935f95c5ee6b6deb1356"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Dec 12 10:32:52 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Dec 12 11:01:53 2011 -0800"
      },
      "message": "DexFile::OpenZip should give up if correctly extracted filed fails to DexFile::OpenFile\n\nIssue found with cts/tools/vm-tests-tf/src/dot/junit/format/f1/d/T_f1_2.dfh\n\nChange-Id: I286141b0a4f326d52ea2bedfcd9c03e9e708f6e8\n"
    },
    {
      "commit": "61e513c3fc245f12876259a68696fbcd99ff45ec",
      "tree": "515e90a11e6195d9ce77a6f28a9b87b060d9624f",
      "parents": [
        "25798e5bb29494074e212ca0734cf86ccfe800f8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Dec 09 15:30:06 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Dec 09 15:30:06 2011 -0800"
      },
      "message": "Include DexFile::GetLocation() in DexFile [D]CHECKs\n\nChange-Id: I9abe2aa1cfdcb34e40ba1edc5ba5bf9a44207422\n"
    },
    {
      "commit": "6d4d9fcb4f01e287ee29e81cd1c941ee5d11d379",
      "tree": "4c715bef86a3c5a47f9cea43c4a092cf4766ed4b",
      "parents": [
        "86b0010c79ef95b5333cd540b7d3af34a9f1a643"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 30 16:24:48 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 06 14:02:09 2011 -0800"
      },
      "message": "Reduce meta-data object sizes, introduce meta-data helper classes.\n\nChange-Id: Id14ad218f1c74c659701352fdf1a45bf6444daa3\n"
    },
    {
      "commit": "392b1248a79ed440014ad77c28411c9f5c52362a",
      "tree": "2c134c3eac6cdc54ac5546f5b20bbe1d9f5f4bce",
      "parents": [
        "6cb58afbc1cb1cec4220f49febda2177b2c0bfce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 13:55:50 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 13:55:50 2011 -0800"
      },
      "message": "Fix \u0027locals\u0027 for methods with arguments that were compiled without -g:locals.\n\nThis was a transcription error from the original libdex code. That code translated\nthe string index anyway and then checked that against NULL, but I think it\u0027s both\nclearer and closer to the .dex format documentation if we check for NO_INDEX instead.\n\nChange-Id: I1f9c4943641468f5fc2b2c5c5f07f95ac6911677\n"
    },
    {
      "commit": "ae826983f7903bc0a6bbbe8426bf393fb2f6d747",
      "tree": "6fb83f2b19a1a50ade3c93cbf10485cd8fbc793f",
      "parents": [
        "8aa6fc39f5cc0279d4ba2ee064de9758560dfedd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 09 01:33:42 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 29 13:46:50 2011 -0800"
      },
      "message": "Add --image-classes to dex2oat\n\nChange-Id: Ia88f9d302e0f9cd72be2199ee46d212d99864c67\n"
    },
    {
      "commit": "9b1a4f425711c26d0465d54a1cb95ec4a813322a",
      "tree": "07a996d94ad42313f100b3912a608aceead6c6b8",
      "parents": [
        "b861dc0077342d5a1d2dd9cade3f6990620778ec"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 18:35:10 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 18:45:22 2011 -0800"
      },
      "message": "Refactor testing to use dex file find routines.\n\nChange-Id: I0abdbd06c7666f23490241984e4d4340d398e18b\n"
    },
    {
      "commit": "0571d357843c53e042f370f5f2c2e9aa3fe803a9",
      "tree": "197e5b1c0b1bf0ee8cc0e1960470d0a8d203b4af",
      "parents": [
        "33dc7717cd16592bcc825350bea6305be9eb2ea1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 03 19:51:38 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Nov 13 11:57:18 2011 -0800"
      },
      "message": "Refactor the use of Method by the compiler.\n\nRemove the dependence on the Method object in dex2oat, allowing lazier\nresolution.\nIntroduce new find and iterators in DexFile to simplify common\noperations and avoid misuse of class data items.\n\nChange-Id: I39fb8252190f543d89d8b233076355cec310fe08\n"
    },
    {
      "commit": "f87288782e3c2e752c3583645ab5050eda5a2e70",
      "tree": "9a6bc75af6cfb3628f7695e3a8c3005a49be2a6a",
      "parents": [
        "83046073c50f62a7b1fde665c1340170c4624a17"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 28 19:11:13 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 28 19:11:13 2011 -0700"
      },
      "message": "Fixed parsing of debug info in dex files.\n\nSome decoding wasn\u0027t being done when locals weren\u0027t needed. The decoding\nis now unconditional so the pointer can be advanced properly.\n\nChange-Id: I9452afdca3187c802909cbbbab78c55ade35c836\n"
    },
    {
      "commit": "0dd7ddaa36a2cf37490dc166ebc21818364130a7",
      "tree": "e381ae0cc965d2135ad99f07826333ccd03dfe90",
      "parents": [
        "ed6d78ed93c9b5b1988af6ca502a7e2eee0f2aaf"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 15:47:53 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 20:28:07 2011 -0700"
      },
      "message": "Several fixes for proper creation and use of vmap tables\n\nChange-Id: I7696115af4263df18ede0777ae14de7a3a7ada3b\n"
    },
    {
      "commit": "d81871cbbaa34c649e488f94f61a981db33123e5",
      "tree": "a3adf3b7469fee507a4d4c4491942fbd48b4483d",
      "parents": [
        "262bf46ddc91e5b4fbd367127ff21a1877d939f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 03 13:57:23 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 24 11:56:15 2011 -0700"
      },
      "message": "Verifier clean up.\n\nThis is the first part in trying to move to a more rigorous mode of\nasserting the validity of garbage collection maps.\nIn the bring over of the verifier from Dalvik a large class had been\ncreated where all of the Dalvik/Dex functions were static methods of\nthat class. This rewrite introduces 3 key classes, Verifier that\norchestrates the verification of a method, RegisterLine which describes\nthe types associated with registers for a particular PC and RegType\nwhich describes the current type of a register within a line. The\nfunctionality is brought over from Dalvik but cleaned up to not do\nthings like goto. Failing within the verifier is also cleaned up. By\nvirtue of having stateful objects the interfaces between different\naspects of the verifier are greatly simplified.\nTo save space, RegTypes are cached upto a maximum possible 2^16, and\ngiven an Id. As the number of RegTypes is typically small this means\nthat we have a full OO implementation but at a lower space cost than the\ncurrent convention that uses botched together enum values requiring\n32bits of storage in a RegisterLine rather than 16bits (ie half the\nspace requirement per register in a register line). To make use of\nthis space more rigorous monitor verification is brought back, and\nultimately I think we can work around bug 3215458 with richer RegTypes\nthat are aware of literal objects.\nThe code removes short cuts that had been added to Dalvik\u0027s verifier and\nappear illegitimate, it also fixes a large number of bugs in the\ndescription of the verifier.\nWhere possible the spaghetti of code is replaced with straight line\nif-then-elsif.. code that clearly follows the ordering semantics of the\nspecification. The code is also aiming toward having a more type\nrigorous description of the verification process, and when this isn\u0027t\npossible following the description convention of the specification.\n\nChange-Id: Id25b742018a2ad5ea95687973cca610d7e19513c\n"
    },
    {
      "commit": "262bf46ddc91e5b4fbd367127ff21a1877d939f2",
      "tree": "a8c775ccabe058392fb008bc523605e34ed01bdb",
      "parents": [
        "ecbce8f17a80ddc8e5d80b075a8e334f1c2daf3c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Oct 20 18:36:32 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Oct 24 11:23:14 2011 -0700"
      },
      "message": "dex2oat invoked by system if it can\u0027t find an oat file for a dex file.\n\nThis allows the old dalvik tests to be run without ever explicitly\nrunning dex2oat on anything. Just upload the jar files and the system\nwill take care of generating the files it needs.\n\nChange-Id: Iad553bf6f57e28da4edb8eb0df47e62e08a0be44\n"
    },
    {
      "commit": "40381fb9dc4b4cf274f1e58b2cdf4396202c6189",
      "tree": "8281b105d3e8a0850984f0ee182db01c33613f27",
      "parents": [
        "b06631143b944388fc68bedf6679c006dde5f461"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 19 14:13:40 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 20 12:19:25 2011 -0700"
      },
      "message": "Reuse SIRT for C++ references\n\nChange-Id: I8310e55da42f55f7ec60f6b17face436c77a979f\n"
    },
    {
      "commit": "362f9bc807169bcfc8761dde067bbfb79b5ad0fd",
      "tree": "100689aa13a39913b43cb12780ba472897cd665a",
      "parents": [
        "fc86162ce2a3467acb690e18cc8bd9b3daafc606"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 18:56:41 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 20:26:54 2011 -0700"
      },
      "message": "Fix cpplint\u0027s whitespace warnings.\n\nChange-Id: I16b69d773e59b49e8e30227b5aa5cb1959a8930f\n"
    },
    {
      "commit": "a51a3dd5603daf3d368b7735067e1d9eb54c4c40",
      "tree": "2b2acdfa4743b5f28fa2c40364d5b029ebac1ede",
      "parents": [
        "6a21982c960c8fb92ece0483c5b5b6047b0a7f77"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 15:19:26 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 15:28:15 2011 -0700"
      },
      "message": "Add missing \u0027explicit\u0027s on single-argument constructors.\n\nChange-Id: I1494df6e74ec16238971fb4346ba184eb61c37ab\n"
    },
    {
      "commit": "3b6baaa203fa63f1522b2172a1645f90412afdae",
      "tree": "7de428a7d53f2b2b9c2274d49181befd5786b8fa",
      "parents": [
        "7abe9c933402f01d638086b2715b09b64b8595e0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 14 19:13:56 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 11:01:28 2011 -0700"
      },
      "message": "Bring our native stack usage down.\n\nI\u0027d have preferred to have a 512-byte limit, but there are some monsters\nin the verifier; 2000-line functions and the like. I\u0027m also not policing\ntests (except for one silly one). They can use all the stack they like.\n\nThis fixes the IntMath test (the stack overflow test was failing because\nwe were using more than 4KiB to throw!).\n\nChange-Id: I7e53e2fde2b39fde1910f8ee5b1712e8a66069c7\n"
    },
    {
      "commit": "8a05d272ccb2a7ff5a6fe5218205ecdca5e6c21f",
      "tree": "44e44422a0b9e43ab91df32f0000c8251e985d40",
      "parents": [
        "63433ba79fbe063881c263f8b348fb990c25a83e"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Oct 15 18:45:43 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Oct 15 18:45:43 2011 -0700"
      },
      "message": "Another bug fix for line numbers. Line uses signed in advancing.\n\nWhile addres (Dex PC) uses unsigned in advancing, line number uses\nsigned. Now 007-exceptions passes.\n\nChange-Id: Ic65cd5093274c6b4d0e9949e5ea50efcdaf71322\n"
    },
    {
      "commit": "8e1b4ff0870dab12388b7064526a70bdd67082f6",
      "tree": "c69fe2544d53daaea194c66d11949a65e3d407d1",
      "parents": [
        "a10cd94bb77ed66fa0a8b66141c4504045c92d30"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Oct 15 15:43:51 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Oct 15 15:52:09 2011 -0700"
      },
      "message": "Fix line number calculation that deviates from old Dalvik.\n\nIn old Dalvik, adjopcode was declared as int instead of uint8. And\nit\u0027s declared in different scope.\nPass the art-target tests and art-host tests.\n\nChange-Id: Ie65c16a43ca32f1acf425a740bebc02f005f9011\n"
    },
    {
      "commit": "b7bbba49d88eae58223d9878da4069bf6d7140bf",
      "tree": "00d1a0758d762903e648bb550434320822228c46",
      "parents": [
        "30646836b4a1c6e5e80ddaea246cf9669eaa0628"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 13 14:58:47 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 14 00:24:28 2011 -0700"
      },
      "message": "Add oatopt drop in replacement for dexopt\n\nChange-Id: I094375230af2d9a88e30245b390cac71be7b50f4\n"
    },
    {
      "commit": "30646836b4a1c6e5e80ddaea246cf9669eaa0628",
      "tree": "5713b45d0e42e4ec319d8aea75b6d2a6bdb079c3",
      "parents": [
        "95caa791e560da97363c0c0d22bfda4a7e7377c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 13 16:59:46 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 13 16:59:46 2011 -0700"
      },
      "message": "Fix the double-OOME case again.\n\nThe key ingredient to this change is that the NULL check on the NewStringUTF\ncall in ClassLinker::FindClass was accidentally checking the input to the\nfunction (which we know isn\u0027t null) rather than the output (which will be\nif allocation fails).\n\nI\u0027ve also fixed a bunch of places where we were missing null checks on\nallocation, but there\u0027s a lot more to do.\n\nI\u0027ve stopped -Xcheck:jni from trying to dump pending OutOfMemoryError stacks\nbecause that\u0027s highly likely to go horribly wrong and just gets in the way\nof debugging the actual problem. (We could perhaps do better, so I\u0027ve added\na TODO.)\n\nIn DexFile, we were always allocating java.lang.Strings for the names of\neach local variable, even if we were only parsing the debug info for the\npurposes of translating a line number. This was less of a problem in Dalvik\nwhere the names were just const char*s, but since we go straight to Strings,\nthis was causing yet more OOME carnage (and is a lot of wasted effort).\n\nThis fixes the regression we were seeing in 061.\n\nChange-Id: I6241602756db3070b214ccb35e3760b37e1e3d10\n"
    },
    {
      "commit": "a9f19787df870456f5ae654bc9967d319d1bffe0",
      "tree": "103fd896e6db17804fa65e28b9ec6072f3817972",
      "parents": [
        "47a0d5a6f221066c3daf7f67f2122ed9c9cd217c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 13 00:14:47 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 13 09:43:47 2011 -0700"
      },
      "message": "Add support for oat files in /data/art-cache\n\nAlso implement Zygote_nativeForkAndSpecialize\n\nChange-Id: I7dfb257b2897279a4cdac4b1ca194c1ac84eb047\n"
    },
    {
      "commit": "8cef0b8130b75af20fa42912a2b82dacb3dfe5d1",
      "tree": "20bbee3d1b38404ad38b0a1a0541f1b6e153e96a",
      "parents": [
        "c33a32bccc4c66ed82ce3a580b16636399385cb4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 19:24:00 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 19:24:00 2011 -0700"
      },
      "message": "Remove an UNIMPLEMENTED(WARNING) that isn\u0027t worth implementing.\n\nWe _could_ fix this, but it would be ugly, potentially expensive, and it\u0027s\nreally not obvious there\u0027s any point. (At least until we have to worry about\nDexFile*s not owned by the ClassLinker.)\n\nChange-Id: I2404bfe15e36bba0a6d1d362a465f2fccf1223eb\n"
    },
    {
      "commit": "928bf02d2172afdc7162101aa9fa70b0d02243c3",
      "tree": "1015194cd625ac231e356b15a7b302f08811c9b6",
      "parents": [
        "582a7d16bb0db323d8bd730beb61578aa3765f43"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 11 02:48:14 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 11 02:48:14 2011 -0700"
      },
      "message": "Ensure getConstString uses slow path for non-image compilation\n\nChange-Id: If7f0eeb277e1ddc9028c90d4b8fab1621f1ea77e\n"
    },
    {
      "commit": "58ae9416e197ae68ed12ed43d87407d4dfb15093",
      "tree": "9fa93ce844f931155bf4a1d060f091f3285fb205",
      "parents": [
        "4d0207c3ed28bbbb8c583a3c3a37f00d1cd4dedc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 04 00:56:06 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 04 10:39:42 2011 -0700"
      },
      "message": "Simplify command line arguments\n\nChange-Id: I9d6902b0c447fd8fbe5600fd36139791b2ceefb7\n"
    },
    {
      "commit": "33f741eefef8f8012f6c190b39355f2e0430d535",
      "tree": "8d17953423f87d6fec38404dd503b6bfad9ac474",
      "parents": [
        "1afef11c4cfb0ac37db7aba183bf71f938af2520"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 03 11:24:05 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 03 11:24:05 2011 -0700"
      },
      "message": "Remove opening of DexFile from pointer\n\nChange-Id: I158e75e9e72f1dcc579742ff08c80d3f857852b3\n"
    },
    {
      "commit": "e24fa61603a60ade3797e4a0c8b3fccb346cb048",
      "tree": "9ec5ed942eb9ece6d4d261ffd21956c94f9968fe",
      "parents": [
        "06cbeb990e94f9c4576601e27145fe132e34a686"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 29 00:53:55 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 03 10:28:05 2011 -0700"
      },
      "message": "Separate oat from image\n\nChange-Id: If2abdb99826ead14e3465d90ba2acffd89709389\n"
    },
    {
      "commit": "6bf1915f20a11748d8d4b78ad020172bb2e6c946",
      "tree": "6cc01188a48bdb2ac247b4338001dcf57d7a85fb",
      "parents": [
        "5371b18d8ff3cd31895255374f575650df4839f0"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Sep 29 13:12:33 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Sep 29 13:42:49 2011 -0400"
      },
      "message": "Revert \"Reverts to track dalvik and libcore\"\n\nThis reverts commit 53d6ff445706c390c541d10ef11f1b2f19ab14e8.\n\nChange-Id: I7cfff5b532b0dd6ffef010732cd248f58236421b\n"
    },
    {
      "commit": "8e4aac52962d54cb4be2078b9cd95685e067133a",
      "tree": "bb85a52e0326bef05acf9abe5e3d3b396c1d3795",
      "parents": [
        "03f034949fa7b44aa49e6603d8d5e7a55bf07795"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 26 17:03:36 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 26 17:03:36 2011 -0700"
      },
      "message": "Add the \"- waiting on\"/\"- waiting to lock\" lines to the SIGQUIT output.\n\nChange-Id: I0a8ab2e9e54c390e0d499ef464d82c2f2c628cbe\n"
    },
    {
      "commit": "53d6ff445706c390c541d10ef11f1b2f19ab14e8",
      "tree": "f1e863afe6c57bf0bf9b32a2c4642f3707b4ec41",
      "parents": [
        "d8b877a20c87e3c7ebef4a3ddd1d8896b2a5b822"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 23 10:45:07 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 23 11:03:48 2011 -0700"
      },
      "message": "Reverts to track dalvik and libcore\n\nRevert \"Tracking removal of Method.NO_ANNOTATIONS static field from libcore\"\nThis reverts commit c6766ed17d27417bfce62c31b342b3faa47ada5d.\n\nRevert \"Implement Class.getDex.\"\nThis reverts commit 98fb41647a5664922a196fd1f6b343e6bad8e51e\n\nRevert \"Track libcore change.\"\nThis revert commit c3d530c371d5c915f4d4545810d77d391dbbfec9\n\nChange-Id: I7159af63f100fc9810e6c2e5ef18b0c4942acc8b\n"
    },
    {
      "commit": "98fb41647a5664922a196fd1f6b343e6bad8e51e",
      "tree": "8af776aee481d8d0a56d743487ca1eface1d6bc6",
      "parents": [
        "0c64f5ebef8ad6470be87cd2d50934180c91b70a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 15:24:13 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 15:24:13 2011 -0700"
      },
      "message": "Implement Class.getDex.\n\nChange-Id: Iefb1e21a364e3e3b9f32ffd6ba57b55cfaee8c3b\n"
    },
    {
      "commit": "b4df5146854c42bf03c4ca02f441b6db73bfde0c",
      "tree": "8723f6b46da9161ef5a22cc42a7ec0bf2bce47b8",
      "parents": [
        "845490bda68f7d025ea7f45775c847d2932e00dc"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Sep 19 20:25:32 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 20 11:33:51 2011 -0700"
      },
      "message": "Added more checking upon resolution and bytecode rewriting to verifier.\n\nAccess checks are performed when methods and fields are resolved. Also,\nerroring bytecodes are now overwritten in the memory mapped dex file.\nTo do this, the code sets the memory mapped dex file as writable before\nverification and set it back to read only after verification is done.\nThe overwritting occurs only in memory and the original dex file remains\nunchanged.\n\nChange-Id: I054394fb57e83d1ac5b6f200ab993d70cd9f55e6\n"
    },
    {
      "commit": "03c99df35373efa1924d0ab9c0d21f9061afe8ea",
      "tree": "211cd72a2713c6a2d9f99f8c999e651f50432959",
      "parents": [
        "534f045c57532f5689ccad269faa35b655a44f77"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 10:52:00 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 10:52:00 2011 -0700"
      },
      "message": "Fix Class_getDeclaredConstructorOrMethod to look at direct as well as virtual methods\n\nChange-Id: Ibc34e3e55b408b2ef04e439960c63fb6e98d06eb\n"
    },
    {
      "commit": "5b8e4c810a97c9dc417142b8c6e07871ae15c797",
      "tree": "1a28a30bfca5e29d2abb33ad8fa27e66ab9beae9",
      "parents": [
        "3a7b4f26387b3529899f3cf16cdd6f1e200ded80"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 01:38:59 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 01:56:40 2011 -0700"
      },
      "message": "Change Class::component_type_ and implement reflect.Array\n\nChange-Id: I9e06f31577551c738eca2621146c8d2328119442\n"
    },
    {
      "commit": "380fac057eb6c3554aebef48519e7045ee264ddb",
      "tree": "f76410e1bdef7407db6cfbcca5b0b46661bd05fd",
      "parents": [
        "08125a079f921df703daaccb715291d1a88d4167"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 16:01:07 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 16:01:07 2011 -0700"
      },
      "message": "Failure to create/find the art-cache directory should be fatal.\n\nOtherwise -- experience now shows -- we carry on for a surprisingly long\ntime and crash somewhere non-obvious.\n\nChange-Id: Idf8298a9948c3038484247f481f6673207e1df0f\n"
    },
    {
      "commit": "78128a63b2615744760b7f8ab83df9764a5d4a95",
      "tree": "544b24f88e1f8d3df2ab28ec2973476ad1b85a97",
      "parents": [
        "d03935aea5192b32e3ca60a94db90b78c6702046"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 17:21:19 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 16 10:07:10 2011 -0700"
      },
      "message": "oatdump\n\nFROM MAKE:\nmm dump-boot-oat\n\nON HOST:\noatdump --dex-file\u003d$ANDROID_PRODUCT_OUT/system/framework/core.jar --image\u003d$ANDROID_PRODUCT_OUT/system/framework/boot.oat --strip-prefix\u003d$ANDROID_PRODUCT_OUT\noatdump --boot-dex-file\u003d$ANDROID_PRODUCT_OUT/system/framework/core.jar --boot\u003d$ANDROID_PRODUCT_OUT/system/framework/boot.oat --dex-file\u003d$ANDROID_PRODUCT_OUT/system/framework/art-test-dex-HelloWorld.jar --image\u003d$ANDROID_PRODUCT_OUT//system/framework/art-test-dex-HelloWorld.oat --strip-prefix\u003d$ANDROID_PRODUCT_OUT\n\nON TARGET:\nadb shell oatdump --dex-file\u003d/system/framework/core.jar --image\u003d/system/framework/boot.oat\nadb shell oatdumpd --boot-dex-file\u003d/system/framework/core.jar --boot\u003d/system/framework/boot.oat --dex-file\u003d/system/framework/art-test-dex-HelloWorld.jar --image\u003d/system/framework/art-test-dex-HelloWorld.oat\n\nChange-Id: Iad2ae40a9cf2dc28799ff5dc5222d50f1bc6b39f\n"
    },
    {
      "commit": "161928613d3f097108319de60494fab1aab8d48a",
      "tree": "4a77aeca94c70e008ff7e1921e0104df9cb1ce92",
      "parents": [
        "93868217589caa3302a3886f55b99447db78e093"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 12 17:50:06 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 10:04:31 2011 -0700"
      },
      "message": "Add oat file generation and tests to build\n\n- Currently builds boot.oat for host and target\n  and target oat files for art tests.\n- Added cross compilation support via --strip-prefix option to dex2oat\n- Reduced output to prevent build log spam (Compiler::verbose_)\n- Added image roots for recovering important pointers on image load\n- Redid JNI stub creation and made the stub array an image root\n- Fixed JNI stub test by making JNI stub array executable\n- Fixed JNI UnregisterNative to having it reinstall the JNI stub\n- Fixed ARM JNI stub to generate PIC code (with irogers)\n- Fixed JniCompiler to generate PIC code (with irogers)\n- Fixed FindNativeMethod to handle recursive calls\n- Finished checkFieldType to use Object::InstanceOf\n- Fixed thread unsafe access to ClassLinker::{dex_files_,dex_caches_}\n- Added ResolvedMethod variant for use with Method* for context\n- Fixed ImageWriter to call FixupMethod\n- Fixed ImageWriter to rewrite JNI stub references\n- Improved error reporting on lack of ANDROID_DATA dir or art-cache dir\n- Fixed Runtime::Start to InitLibraries before creating thread peer\n- Implemented Space::IsCondemned to skip spaces loaded from images\n- Implemented artFindInterfaceMethodInCache,\n  allowing interface invocation from managed code\n\nChange-Id: I603e97fa0ac44508ae05a2e47c1cdb4481678d7b\n"
    },
    {
      "commit": "69b15fb098162f19a4c20e6dccdcead04d9c77f0",
      "tree": "84fdfc26f560fb618b652a0aff98347f875a2653",
      "parents": [
        "109bd6a38d0cd7c4b7797a9f2db8324c797d1368"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 03 12:25:21 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 06 15:28:47 2011 -0700"
      },
      "message": "Working dex2oat and oatexec\n\nadb shell dex2oatd --dex-file\u003d/system/framework/core.jar     --image\u003d/system/framework/boot.oat --base\u003d0x50000000 \"\u0027--method\u003dLjava/lang/System;logI(Ljava/lang/String;)V\u0027\" \"\u0027--method\u003dLjava/lang/System;log(CLjava/lang/String;Ljava/lang/Throwable;)V\u0027\"\nadb shell dex2oatd --boot-dex-file\u003d/system/framework/core.jar --boot\u003d/system/framework/boot.oat --dex-file\u003d/system/framework/art-test-dex-HelloWorld.jar --image\u003d/system/framework/art-test-dex-HelloWorld.oat\nadb shell oatexecd -Xbootclasspath:/system/framework/core.jar -Xbootimage:/system/framework/boot.oat -classpath /system/framework/art-test-dex-HelloWorld.jar -Ximage:/system/framework/art-test-dex-HelloWorld.oat HelloWorld\n\n09-05 17:58:18.912  2385  2385 I System  : Hello, world!\n\nChange-Id: I53e534068584f0c3a837313e4d517a0e4a7154fc\n"
    },
    {
      "commit": "d92bec457dc6c506c80e9da6b8e0c958266b5cdc",
      "tree": "50f28fd96411f68d4b91cc5943d159a00fcf88cb",
      "parents": [
        "4cdeec9686e1cd2d0118c96443e8c882dc849b7f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 02 17:04:36 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 02 17:40:19 2011 -0700"
      },
      "message": "More SIGQUIT handling, various Thread fixes.\n\nChange-Id: I3233c300d1c838c2eee0ba9be6018b7fbd907386\n"
    },
    {
      "commit": "0cfe1fb7060576d047f7f894fc0d8b87de84fcab",
      "tree": "4255eae2034dcb0febe28411c50cba76189f39ae",
      "parents": [
        "a09576416788b916095739e43a16917e7948f3a4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 26 03:29:44 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 02 14:48:01 2011 -0700"
      },
      "message": "Use accessor methods for Object fields.\n\nEnsure that Object fields are modified via accessors so that it\u0027s easy\nto insert barriers (make all fields within Objects private). Add validity\nchecks to Field and Method accessors to ensure they are accessed when a\nClass is in a suitable state. Add validity checks to all Object\naccessors to check heap isn\u0027t corrupted. Remove hacked in strings from Field\nand Method; make type fields used the dex cache that is lazily initialized.\nClean up various other TODOs and lint issues.\n\nChange-Id: Iac0afc515c01f5419874d9cdcdb9a7b45443e3fb\n"
    },
    {
      "commit": "ad7c2a3b4daa2abd707375444f4b0db7d69a3838",
      "tree": "66f9fea013f4fa9ac4a23a467f7c47302470c538",
      "parents": [
        "1f87008b165d26541d832ff805250afdc89c253d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 31 11:58:10 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 31 11:58:10 2011 -0700"
      },
      "message": "Add infrastructure for registering built-in native methods.\n\nWhile I\u0027m here, make fiddling with Thread state easier.\n\nChange-Id: I3d215a3a852aa8970c3974b2edefce9dd261ccd7\n"
    },
    {
      "commit": "1f87008b165d26541d832ff805250afdc89c253d",
      "tree": "a84122b3757b8f856eb0656a951ed6621b6d01a8",
      "parents": [
        "c5bfa8f49d8548d7c685a99b411311ef56bedffa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 23 16:02:11 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 31 09:46:57 2011 -0700"
      },
      "message": "Add HeapTest and make GC work enough to pass it\n\nChange-Id: If06eaef2921b64b3226bfd347acaec60ec993e67\n"
    },
    {
      "commit": "90a3369d3b6238f1a4c9b19ca68978dab1c39bc4",
      "tree": "b66ec9b2cced5713bd5902c499d57b533d2e7a9a",
      "parents": [
        "34023801bd544e613d6e85c9a5b2e743f3710e8f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 30 13:27:07 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 30 13:27:45 2011 -0700"
      },
      "message": "Switch to UniquePtr.\n\nOnly one use of scoped_ptr was incorrect (but then again, I spent an afternoon\nwith valgrind finding and fixing them just last week).\n\nChange-Id: If5ec1c8aa0794a4f652bfd1c0fffccf95facdc40\n"
    },
    {
      "commit": "ff0f9bea6355fe0c420815f9b894e6bb634fe764",
      "tree": "9e975b6d42f754e8202e627ca0a76833881c3894",
      "parents": [
        "9b576b4ed1dbe035952f3106d8f4b6993125ed6f"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Aug 29 15:43:53 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Aug 29 16:17:56 2011 -0700"
      },
      "message": "Fix DexFile\u0027s line number and test EH and StackTraceElement in 3 ways.\n\nTesting exception handling: 1. Walking stack 10 levels and then check\ndepth \u003d\u003d 10. 2. Check if correct stack trace is being generated. 3. For\nnative frame, lineno should be -2 to indicate it is native. Note that\n\"line number \u003d\u003d -2\" is how libcore tells from StackTraceElement.\n\nChange-Id: If38c16a59624f259985bcfcebc337b73b0582460\n"
    },
    {
      "commit": "9f30b38d74990286ce27c3a45368f73dbe3638f0",
      "tree": "81bddd7b70e4b58aadce258cc25bba64de030deb",
      "parents": [
        "4417536522fd2a9d8215d8672331984769c9520b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 28 22:41:38 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 29 09:50:10 2011 -0700"
      },
      "message": "Externalize test code\n\nChange-Id: Iab19397c7a72fb9a3ca63bfd0bc4eaf1a98138ba\n"
    },
    {
      "commit": "55df06be4369f5d8ab5eb61a5d22809255171036",
      "tree": "32515b13b01ac3d359a6c171377f5c95599049bb",
      "parents": [
        "e27955ca3ca960928d4dbd6cb79711fce06950b3"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Aug 26 14:39:27 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Aug 26 16:45:52 2011 -0700"
      },
      "message": "Stack Trace Element with its unit test added too.\n\nThe unit test passes.\n\nChange-Id: I6f6af771cae1387c60c3b511148a347fe3237345\n"
    },
    {
      "commit": "0c424cb96c8e7d6d5e5c9399036481619eba556c",
      "tree": "1f1e15e2abe3a5670f3e16858c139e93d9cb96c6",
      "parents": [
        "20cfffabdc9e02b2df798bc4e6b6035d14bf4e36"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 26 10:16:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 26 10:16:25 2011 -0700"
      },
      "message": "Switch CreateMethodDescriptor over to std::string to avoid memory leaks.\n\nChange-Id: I17005504ab7d055e0750cf35ab2426e0f798f895\n"
    },
    {
      "commit": "20cfffabdc9e02b2df798bc4e6b6035d14bf4e36",
      "tree": "74c8738f09013c3d4af1ee568380d77e44a3508a",
      "parents": [
        "30b944557a969a9aea2098ce9bbcce05db9b1f22"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 26 02:31:27 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 26 02:42:54 2011 -0700"
      },
      "message": "Finish implementation of ResolveField and ResolveMethod\n\nChange-Id: I854e17b4cccd05b26f83c77230f7323c898802c9\n"
    },
    {
      "commit": "9ea1cb1a22be5b85dc2622e3836c46a1c48e3f25",
      "tree": "99dd5c0b0a3e6db3f8696197467ae4fec284bec2",
      "parents": [
        "04ec7f0f244ef36fac1c7e590d2ea14e35dfe95a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 24 23:18:18 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 25 09:45:07 2011 -0700"
      },
      "message": "First pass of compiler wrapping class\n\nChange-Id: I343625310f69cc4de315af91b9cc72bb4da8f59b\n"
    },
    {
      "commit": "195487cb0b11e64917df01f8d55671344db2e97f",
      "tree": "92a20353f0d33e028ae9716beb5165b3fcd4799d",
      "parents": [
        "c4fa2c0c6302d3d9979e8d8a4030499c10d6b68b"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Aug 20 13:29:04 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Aug 21 15:17:23 2011 -0700"
      },
      "message": "Initial implementation for adding StackTraceElement support.\n\nLine # information added.\n\nChange-Id: I5a68383e74a19fa28d82a33bb1db649ef570f3b0\n"
    },
    {
      "commit": "a663ea5de4c9ab6b1510fdebd6d8eca77ba699ae",
      "tree": "37078335c64cb760a0379a33eb4ceaf6b08356ea",
      "parents": [
        "68f4fa09cfd72b4292cbe7a213f03da7902ba775"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 19 23:33:41 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 21 12:30:48 2011 -0700"
      },
      "message": "Initialize ClassLinker from image\n\nChange-Id: Ibaf47b4181f7c6603a8b37e2eba8fa6509c927ed\n"
    },
    {
      "commit": "4a289ed61242964b921434de7d375f46480472a1",
      "tree": "fa1a25f1eec3ef79fd9765e9c89ce21afbd8144c",
      "parents": [
        "44753c3908fcd5ccc066bf0dceddeabfeacf9f24"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 16 17:17:49 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 18 12:25:10 2011 -0700"
      },
      "message": "Work on heap and space initialization to support image loading\n\nChange-Id: Icab25efa4dee17e4b6c6e97e38f63f5ab8a8a005\n"
    },
    {
      "commit": "4e777d4e005375a5a41c4ec3c55783c09565df0d",
      "tree": "f78e875fba9fb3ca7d22c4b7dd0fecda657f5976",
      "parents": [
        "d8ddfd5eadde1d5f53ef1419f529c799233eaa62"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 15 13:53:52 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 15 15:20:50 2011 -0700"
      },
      "message": "Revisions to \"First pass of ImageWriter\"\n\nCleanup from accidental commit of:\n\n    commit db4d54081f09abcbe97ffdf615874f2809a9e777\n    Author: Brian Carlstrom \u003cbdc@google.com\u003e\n    Date:   Tue Aug 9 12:18:28 2011 -0700\n\n        First pass of ImageWriter\n\nChange-Id: I0168c05d229e0c7f8059dc1ab1b46dc2dc426c53\n"
    },
    {
      "commit": "db4d54081f09abcbe97ffdf615874f2809a9e777",
      "tree": "86d4b6cdbfda6538ebf3fbb2f362209eb6867ce5",
      "parents": [
        "350dad1bb785281d6740633f219a2832feda6ff3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 12:18:28 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 15 10:03:22 2011 -0700"
      },
      "message": "First pass of ImageWriter\n\nChange-Id: I4f189587a2e3cc1c265200b8fa64321b299947eb\n"
    },
    {
      "commit": "53b61314370c49354ed6f8d616d6a9a182410fc1",
      "tree": "e744dfef8b45438bb992b08633439522095cd967",
      "parents": [
        "5511f2161d71ac67a9bc140cbbca5d9637ab7499"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:28:20 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:28:34 2011 -0700"
      },
      "message": "Use the UNIMPLEMENTED macro everywhere.\n\nAs suggested in review.\n\nChange-Id: Ic14c91a622b545b4800ef021dfb501fb09cbda9d\n"
    },
    {
      "commit": "e0fc0ef0facabaf44b6fd460db4469ab0dab9696",
      "tree": "f887577ed88b685e97381dbb597bf6cc13dc6fc8",
      "parents": [
        "91779c841f8bfaf2416576d0c44fa5f50f95b60b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:39:17 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:39:17 2011 -0700"
      },
      "message": "Fix a few more scoped_ptr/scoped_array confusions, and stop tring to optimistically load non-existent .dex files.\n\nChange-Id: I0c12a731bdf1da49f2f51665181e5b4d2b423ba2\n"
    },
    {
      "commit": "40ef99eb9dd91c2fa549f40973964529c927bb3c",
      "tree": "317dfd56abeacb4c0dd3cf7f63a4801828d7dff9",
      "parents": [
        "5381cf941d26030199fcdbe61a614ff01e55a27c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 17:44:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 22:02:10 2011 -0700"
      },
      "message": "Start implementing JNI.\n\nThis patch replaces our JniEnvironment class with the regular JNIEnv.\n\nThis patch also adds support for .jar, .zip, and .apk files in the\nboot classpath.\n\nThere\u0027s also an attempt at implementing JNIEnv::FindClass.\n\nI\u0027ve also fixed a few scoped_ptr/scoped_array bugs (this kind of thing\nbeing the reason we use UniquePtr in libcore), and removed some\nunnecessary .\n\nThe \u0027tools/art\u0027 script makes it easier to play with aexec on the command-line.\n\nChange-Id: Ic4f704c12e0071f17e95b6e182fdab9370ead9b0\n"
    },
    {
      "commit": "0024d6cb8043a8967fdfb20561f321b2fe65c41f",
      "tree": "e9f14d1a157816f51336ac98d348fff99678b9c4",
      "parents": [
        "4bfab0a48a7e94597498b3e8cd520c4e6df0dcd8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 08:26:12 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 10:55:30 2011 -0700"
      },
      "message": "Minor zip cleanups\n\nChange-Id: Iaa2552245e9dac5fabc6a9fb553174e4d5d84142\n"
    },
    {
      "commit": "7e93b50433cde2a44d99212e8040299bde498546",
      "tree": "5365abc77a3ada7f50bfc06b5772e03b86ee8f3c",
      "parents": [
        "8860c0e8491a27aa03b55f2417478fb3629611d6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 04 14:16:22 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 04 22:59:02 2011 -0700"
      },
      "message": "String intern table and support for unordered_map\n\nChange-Id: I22d86d060780552675c5d7f14a98ffde480eac82\n"
    },
    {
      "commit": "74eb46ab15c5b9cb39bf15246db84aea7fd4cc27",
      "tree": "50727b6606dcf881e0b9e734876815f28e9753c6",
      "parents": [
        "419ec7bbcdbf56a9d2a9fd7f91f9ace279e0b664"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 02 20:10:14 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 04 14:36:48 2011 -0700"
      },
      "message": "Improved ClassLoader support\n\nChange-Id: I587c0fa439c64a0c947641b01c072149f480bf85\n"
    },
    {
      "commit": "419ec7bbcdbf56a9d2a9fd7f91f9ace279e0b664",
      "tree": "ef7d735ef10e5b886db278bc6075d60f46ff0081",
      "parents": [
        "b0460eaa2cb131f1dbdd5a7217bd36b9a9f1b995"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Aug 03 14:48:33 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Aug 03 17:29:32 2011 -0700"
      },
      "message": "Materialize method descriptors when instantiating method objects.\n\nPreviously, when comparing method descriptors, one had to piecewise\ncompare the leaves of a method structure for equality.\n\nWith this change a flat method descriptor is computed and associated\nto an object.  This will simplify comparisons for descriptor equality\nused during verification and reflective method retrieval.\n\nChange-Id: I91e5ac76fb3816a36716b34fe43d05cd7364897b\n"
    },
    {
      "commit": "b0460eaa2cb131f1dbdd5a7217bd36b9a9f1b995",
      "tree": "7b06bde279ff798413a531728ce51aafb122aa5e",
      "parents": [
        "8989d990e5be3982ab5ba4e7aa574652f71632ca"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 29 10:08:05 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 02 22:17:44 2011 -0700"
      },
      "message": "Add support for opening classes.dex file from zip, jar, apk\n\nAdding new ZipArchive class and test\n\n\tsrc/zip_archive.h\n\tsrc/zip_archive.cc\n\tsrc/zip_archive_test.cc\n\tbuild/Android.common.mk\n\nChange from host only use of build dex file for libcore to using host\nand target core.jar containing classes.dex files. This requires\nsetting up an ANDROID_DATA directory to containing an art-cache file\nfor the extracted dex files, similar to the dalvik-cache for odex\nfiles. A unique ANDROID_DATA and art-cache is created and cleaned up\nfor each test run (similar to vogar).\n\n\tsrc/common_test.h\n\nAdd dependency for libcore jar files to test targets to support\nRuntimeTest use of core.jar\n\n\tAndroid.mk\n\nExtract common includes to ART_C_INCLUDES when adding zlib dependency\n\n\tbuild/Android.common.mk\n\tbuild/Android.libart.mk\n\tbuild/Android.test.mk\n\nAdding TODO regarding unordered map for ClassLinker::classes_ table.\n\n\tsrc/class_linker.h\n\nAdding DexFile::OpenZip (also changed OpenFile to take\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\nAdding kPageSize of 4096, validated by Runtime::Init\n\n\tsrc/globals.h\n\tsrc/runtime.cc\n\n    Updated to use kPageSize where it seemed appropriate.\n\n\tsrc/jni_compiler.cc\n\tsrc/jni_compiler_test.cc\n\tsrc/space.cc\n\tsrc/thread.cc\n\tsrc/thread_x86.cc\n\nChanged thread_list_ and class_linker_ to be declared in Runtime::Init\ninitialization order.\n\n\tsrc/runtime.h\n\nChange-Id: Id626abe5b6c1990e4f93598256ee0fae000818f6\n"
    },
    {
      "commit": "f615a61aef972cfc1dc23931ac2ed0da14c3fedb",
      "tree": "cca1f1f3475639f505bca688b5d7dab60c70a277",
      "parents": [
        "7e49dca262933bc30cbc8b9f07cfc8cce2343389"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jul 23 12:50:34 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jul 23 12:50:34 2011 -0700"
      },
      "message": "Rename RawDexFile to DexFile\n\nChange-Id: I4d0cd3885cf21a7b3dcad05c4d667d7ebd44378b\n"
    },
    {
      "commit": "7e49dca262933bc30cbc8b9f07cfc8cce2343389",
      "tree": "c7413689d9d71aa15af72ea936befae639289fcd",
      "parents": [
        "6547ace95d86e0f1aec8a0abc76fe87838a81815"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 22 18:07:34 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jul 23 12:01:58 2011 -0700"
      },
      "message": "Rename DexFile to DexCache\n\nChange-Id: I93fa3e4f7cf87fbaac974f0d2577628a23f0d8c2\n"
    },
    {
      "commit": "578bbdc684db8ed68e9fedbc678669d27fa68b6e",
      "tree": "d752941d81ad6d7e248c349ce21371a8ae369693",
      "parents": [
        "45a76cb99104a222d6a9bd768a084893dcb7cf30"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 21 14:07:47 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 22 15:23:33 2011 -0700"
      },
      "message": "Move DexFiles to be allocated on the heap\n\nRemoved pointer from DexFile to RawDexfile to allow heap allocation of\nDexFile. DexFile is now an ObjectArray of ObjectArrays. Removing the\npointer from DexFile to RawDexfile meant adding arguments to pass the\nRawDexfile along to ClassLinker::LoadClass, LoadInterfaces, LoadField,\nLoadMethod, LinkClass, LinkInterfaces, ResolveClass to avoid the need\nto look a RawDexfile up from a DexFile. ClassLinker::CreateArrayClass\nnow takes the raw_dex_file to assist in looking up the component class\nfrom the proper source. Moved Method::HasSame* methods to ClassLinker\nsince for access to the RawDexfile (and tests of HasSame from\nObjectTest to ClassLinkerTest.\n\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\tsrc/object.h\n\nRunTime::Create/RunTime::Init/ClassLinker::Create/ClassLinker::Init\nnow take the boot class path. A boot class path with\nLjava/lang/Object; must be provided to initalize [Ljava/lang/Object;\nduring startup in order to heap allocate DexFiles.\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\tsrc/runtime.cc\n\tsrc/runtime.h\n\nRestored FindClass to load from a specific dex file. This is for use\nby class loaders, otherwise it is assumed the caller wants to use the\nboot classpath. We now distinguish and track the boot classpath as\nseparate from other dex files known to the class linker. Renamed\nAppendToClassPath to AppendToBootClassPath and FindInClassPath to\nFindInBootClassPath to clarify.\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\nCleaned up AllocCharArray to generic AllocArray and added\nAllocObjectArray. Added a functional ObjectArray implementation and a\nObjectTest to cover it.\n\n\tsrc/heap.h\n\tsrc/object.h\n\tsrc/object_test.cc\n\nSwitched more Object* downcasting to down_cast\n\n\tsrc/class_linker.cc\n\nSwitched order of arguments for DexFile::SetResolved to follow more\nconventional collection ordering ( \"(index, value)\" vs \"(value, index)\" )\n\n\tsrc/dex_file.h\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\nAdded class_linker_ and java_lang_raw_dex_file_ to RuntimeTest as\nconvenience to test subclasses. ClassLinkerTest now can use these to\nsimplify its ::Assert* methods. JniCompilerTest now uses it for\nsetting up its boot class path. Removed now unneeded\nOpenDexFileBase64.\n\n\tsrc/common_test.h\n\tsrc/class_linker_test.cc\n\tsrc/jni_compiler_test.cc\n\nAdd external/gtest/include to non-test include path so FRIEND_TEST can be used.\nAdd src to include path to remove the need of using in in art/src files.\n\n\tbuild/Android.libart.host.mk\n\tbuild/Android.libart.mk\n\tsrc/assembler.cc\n\tsrc/assembler.h\n\tsrc/assembler_arm.cc\n\tsrc/assembler_arm.h\n\tsrc/assembler_x86.cc\n\tsrc/assembler_x86.h\n\tsrc/assembler_x86_test.cc\n\tsrc/base64.cc\n\tsrc/base64.h\n\tsrc/calling_convention.cc\n\tsrc/calling_convention.h\n\tsrc/calling_convention_arm.cc\n\tsrc/calling_convention_x86.cc\n\tsrc/casts.h\n\tsrc/class_linker.h\n\tsrc/class_linker_test.cc\n\tsrc/common_test.h\n\tsrc/constants.h\n\tsrc/constants_arm.h\n\tsrc/constants_x86.h\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\tsrc/dex_file_test.cc\n\tsrc/dex_instruction.cc\n\tsrc/dex_instruction.h\n\tsrc/dex_instruction_visitor.h\n\tsrc/dex_instruction_visitor_test.cc\n\tsrc/dex_verifier.cc\n\tsrc/dex_verifier.h\n\tsrc/heap.cc\n\tsrc/heap.h\n\tsrc/jni_compiler.cc\n\tsrc/jni_compiler_test.cc\n\tsrc/jni_internal.cc\n\tsrc/jni_internal.h\n\tsrc/leb128.h\n\tsrc/managed_register.h\n\tsrc/managed_register_arm.cc\n\tsrc/managed_register_arm.h\n\tsrc/managed_register_arm_test.cc\n\tsrc/managed_register_x86.cc\n\tsrc/managed_register_x86.h\n\tsrc/managed_register_x86_test.cc\n\tsrc/mark_stack.cc\n\tsrc/mark_stack.h\n\tsrc/mark_sweep.cc\n\tsrc/mark_sweep.h\n\tsrc/memory_region.cc\n\tsrc/memory_region.h\n\tsrc/monitor.h\n\tsrc/object.cc\n\tsrc/object.h\n\tsrc/object_bitmap.cc\n\tsrc/object_bitmap.h\n\tsrc/object_test.cc\n\tsrc/offsets.cc\n\tsrc/offsets.h\n\tsrc/raw_dex_file.cc\n\tsrc/raw_dex_file.h\n\tsrc/raw_dex_file_test.cc\n\tsrc/runtime.cc\n\tsrc/runtime.h\n\tsrc/scoped_ptr.h\n\tsrc/space.cc\n\tsrc/space.h\n\tsrc/space_test.cc\n\tsrc/stringpiece.cc\n\tsrc/thread.cc\n\tsrc/thread.h\n\tsrc/thread_arm.cc\n\tsrc/thread_x86.cc\n\tsrc/utils.h\n\nChange-Id: Ib633cea878c36921e9037b0464cb903aec318c3e\n"
    },
    {
      "commit": "cdc8de4642ca447a7ed205f0d2203cb217e48aad",
      "tree": "82b77592caaaefaf49dae5193294446cce68faf1",
      "parents": [
        "be9778540dfc70d154bb17f722c0b7fe454e2a8f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 19 14:23:17 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 19 16:09:47 2011 -0700"
      },
      "message": "Move base64 to test code\n\nChange-Id: I0cda5d8a559a2d60250c1d8a8ee6f69509515214\n"
    },
    {
      "commit": "934486cf07c578b6494417ca5dcbae89cf04b019",
      "tree": "fce6df4c3daca71151052961ad6191f0b5854ffc",
      "parents": [
        "b557353b22c728eecbd1c68593b482622c7782a8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 12 23:42:50 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 13 10:32:00 2011 -0700"
      },
      "message": "Make ClassLinker set Class::super_class_ plus test and build improvements\n\nCreate placeholder ClassLinker::java_lang_Object_ for use a\nsuper-class of java_lang_Class_ instances.\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\nExpand ClassLinker FindClass test to verify Class::GetSuperClass\n\n\tsrc/class_linker_test.cc\n\nMove DexFile::Load* methods to ClassLinker so they can reference\njava_lang_Object_ and java_lang_Class_\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\nMove corresponding Load tests from class_linker_test to dex_file_test\n\n\tsrc/class_linker_test.cc\n\tsrc/dex_file_test.cc\n\nTracking change to object_test to use ClassLinker::Load* methods\n\n\tsrc/object_test.cc\n\nMove base64 to new src/common_test.h for reuse accross tests. Add\nmissing example source for MyClass dex.\n\n\tsrc/common_test.h\n\tsrc/class_linker_test.cc\n\tsrc/dex_file_test.cc\n\tsrc/object_test.cc\n\nChange Heap::AllocClass to take DexFile argument\n\n\tsrc/heap.h\n\nRemove Method::dex_file_ in favor of using Method::GetClass::GetDexFile\n\n\tsrc/object.cc\n\tsrc/object.h\n\nMade a few more RawDexFile methods const\n\n\tsrc/raw_dex_file.cc\n\tsrc/raw_dex_file.h\n\nAdd convenience targets for build-art and test-art-host\n\n\tAndroid.mk\n\nDrop use of _LOCAL_ from make variants, which isn\u0027t the appropriate\nhere, where we aren\u0027t differentiating between LOCAL_ and PRIVATE_.\nAvoid redefinition of variables based on now removed\nLIBART_TARGET_ARCH and TEST_TARGET_ARCH to support phony targets in\nAndroid.mk\n\n\tbuild/Android.aexec.host.mk\n\tbuild/Android.aexec.mk\n\tbuild/Android.common.mk\n\tbuild/Android.libart.host.mk\n\tbuild/Android.libart.mk\n\tbuild/Android.test.host.mk\n\tbuild/Android.test.mk\n\nChange-Id: I84ce2b7a2b4e37799d4d782b97c02d5e97ac081c\n"
    },
    {
      "commit": "565f50731db360584d0080af7f14f0b7ca10371c",
      "tree": "24de84a0b0a0a8cc2cb75cd048232f29d4f2adbf",
      "parents": [
        "606258b5713ac3a0958db3b4b98074b6df6439a6"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 10 13:39:43 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 10 13:39:43 2011 -0700"
      },
      "message": "Initialize primitive type classes during linker initialization.\n\nChange-Id: Ib31da85afcc59c5d0a14346fb7f97043487fd662\n"
    },
    {
      "commit": "5fafe2b12d465cdee6fab76a06c78cef0a6776b6",
      "tree": "dec5e055134098398cfbe26afc9f6d2075b42de2",
      "parents": [
        "279613b10298bea94bfd8afe1d38bae9aa0a6415"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sat Jul 09 15:34:41 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sat Jul 09 15:38:30 2011 -0700"
      },
      "message": "Add support for initializing static fields.\n\nChange-Id: I1c5397e9ef03f4cef1646fa833e17d64fc586dce\n"
    },
    {
      "commit": "167ec63dde06e49381029353a00382fd9341c44c",
      "tree": "cec414b74b9e79820795f75e6d9f5b3a76afeb00",
      "parents": [
        "0e5d75d5ca2b8a44fab0c862276a466cbab39859"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sat Jul 09 03:09:46 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sat Jul 09 03:09:46 2011 -0700"
      },
      "message": "Fix minor bugs which prevented methods from loading correctly.\n\nChange-Id: I08cd530182eed35eab0aa345624098bc782ad755\n"
    },
    {
      "commit": "0e5d75d5ca2b8a44fab0c862276a466cbab39859",
      "tree": "1833a4b1ea85ea5fe76749ab7a83270c74230666",
      "parents": [
        "d4e48fdd5f8baad270a82120a912106b98074501"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 06 18:28:37 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jul 07 01:11:59 2011 -0700"
      },
      "message": "Add support for linking classes.\n\nChange-Id: I0026be6e4c919f7391fd83c654f58c3bc67f44e1\n"
    },
    {
      "commit": "894d0fab562badca5c2f01a5c2adc8de756c08ad",
      "tree": "5071322027c485c669df8f4ac49e3c3b3bed6761",
      "parents": [
        "ef442e6516a856fa0aed64d0a1af23d9ee8f857f"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jun 30 14:48:49 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jun 30 17:00:16 2011 -0700"
      },
      "message": "Expose functionality needed for linking.\n\nChange-Id: I5abdee1d89510b9e4c2eeb5cdab45951b5e5305c\n"
    },
    {
      "commit": "7e7824871cdb7d3d0d6b77e12d7d40bfa63154c6",
      "tree": "f3ae618c4bc0a5a45012de5502d829fce855a5f9",
      "parents": [
        "80d4dde9bf123e431e2ba21ff3e2ef794c8f6722"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jun 28 16:30:04 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jun 28 16:30:04 2011 -0700"
      },
      "message": "Manage the underlying RawDexFile of a DexFile with a smart pointer.\n\nChange-Id: I6586d34767584feaa746ffd819107ebbd036d8a3\n"
    },
    {
      "commit": "80d4dde9bf123e431e2ba21ff3e2ef794c8f6722",
      "tree": "12bc07362390cea3479fc7707215c01ba3d5f3e2",
      "parents": [
        "3ee755da5c1c17b6a29052d171a8a63c0eb0b052"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jun 28 16:24:07 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jun 28 16:24:07 2011 -0700"
      },
      "message": "Allow raw dex files to be read from arrays of base64 encoded bytes.\n\nThis allows tests to be run without opening files on local disk.\n\nChange-Id: I05296bfba584d76ae272d4905b5c45ae10687bc6\n"
    },
    {
      "commit": "3ee755da5c1c17b6a29052d171a8a63c0eb0b052",
      "tree": "814572bf43314fa88bb049e93458341515925c54",
      "parents": [
        "1fb8620309a4e94d11879aabc33364acfa733904"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jun 28 12:11:04 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jun 28 12:11:04 2011 -0700"
      },
      "message": "Complete support for loading classes from a DEX file.\n\nChange-Id: I1b9aa105fc78df170e83b259d8d04317c296a1b5\n"
    },
    {
      "commit": "1fb8620309a4e94d11879aabc33364acfa733904",
      "tree": "9cf2d230034ed32abc3f56cff24d47b93c2975f9",
      "parents": [
        "12eb78e651f13f2c1f0c2c922048a5a213253adf"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Jun 27 17:43:13 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Jun 27 17:43:13 2011 -0700"
      },
      "message": "Add class loading infrastructure.\n\nChange-Id: I94bdabcefdf1030ee1827d9219eaf60e4dc818ca\n"
    }
  ]
}
