)]}'
{
  "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": "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": "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": "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": "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": "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": "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": "dbb4079eb1e7d7738c81a97c8dd2550885c1093a",
      "tree": "733d5c08027ae65fb89132609d2aec9e6e2d747d",
      "parents": [
        "25e79a5e9ecd4bf30e0ea90a7dd4313f7f44bc3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 18 17:05:22 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 18 17:47:00 2011 -0800"
      },
      "message": "Start implementing jdb \"locals\".\n\nThis lets us show the names and types of the locals, but all the values\nwill show up as 0/null. We\u0027re going to have to walk the whole stack and\ntake callee-save frames into account to do that right.\n\nChange-Id: Ic6e115513b6e65ae7ed4b7274e70bc514e83190a\n"
    },
    {
      "commit": "03181a828cd493545b278e0aa4f150fdaf1e3325",
      "tree": "eda89723d770a75c104170b6e1a09feb44053e3d",
      "parents": [
        "499c5133d361e7c659fc38e5ccfeb1280a7996f5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 17:22:21 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 17:41:59 2011 -0800"
      },
      "message": "Implement debugger support for getting thread stacks.\n\nYou can now \"where all\" in jdb.\n\nChange-Id: Iccff0427f39b2f2ab3786f05b89850d50b87adb2\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": "6b4ef025af12b158d117fc80fc79acf620f411a0",
      "tree": "223c580477cbb7bde240b599da4bbee793b8dcaf",
      "parents": [
        "21b9f1355f0311b5c67bfdfa9dd63cacb1fba502"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 23 14:59:04 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 00:03:03 2011 -0700"
      },
      "message": "Make ResolveField not rely on Field::GetType resolution\n\nChange-Id: I10f4a874809ac9db2cd54e200cf10eb7c8979fce\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": "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": "aded5f7ab991f3c1132851599d3bc60ff6707eed",
      "tree": "7fb5e92c224adf98cadd67b7df99cc2d2851cbcb",
      "parents": [
        "bcbaaf3df56178263dbc110dcb0d1cf6c9d167c3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 07 17:15:04 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 12:51:28 2011 -0700"
      },
      "message": "Working ClassLoader\n\nChange-Id: Ia1122165e47f846a1d4506111849f830d9f14c1b\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": "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": "64bf5a33d55aa779ef452552a466943002d39e4f",
      "tree": "2aac5abebb39f55f28940093212f20ed5ba59fb7",
      "parents": [
        "6bbe8b053c1b6177c6fbe0ff88a96d863ce76d3b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 20 14:43:12 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 20 14:43:12 2011 -0700"
      },
      "message": "Implement VMClassLoader\u0027s native methods.\n\nChange-Id: I6e617f415e54ce29c3a0a470b58e79d3aaa0a4bf\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": "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": "bdb0391258abc54bf77c676e36847d28a783bfe5",
      "tree": "e00cac49de8a85562716557c84532dd3fff08e5b",
      "parents": [
        "a5a97a2bc1dfed70869da34650a5a2a3a3a06ac4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 14 00:55:44 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 15 18:20:44 2011 -0700"
      },
      "message": "Support for exception throwing.\n\nThese changes start to add support for a long jump style of exception throw.\nA Context is added to build up the registers that will be loaded by the long\njump from callee saves that are on the stack. Throws are reworked slightly to\ngive the PC for the frame of the method being looked at, rather than the return\nPC (that previously led the trace\u0027s PC to be off by a frame). Callee save\nsupport is added to the JNI compiler which then no longer needs to spill\nincoming argument registers as it may reuse the callee saves.\n\nCurrently the code is lightly tested on ARM and doesn\u0027t support\nrestoring floating point callee save registers.\n\nAlso clean up some PIC TODOs.\n\nChange-Id: I9bcef4ab3bf4a9de57d7a5123fb3bb1707ca8921\n"
    },
    {
      "commit": "98eacac683b78e60799323e8c7d59e7214808639",
      "tree": "3be4dabf184c2e72fa54e367cfc996ae3ace13b8",
      "parents": [
        "8692721dd8a3679ca874c3d1be0cecb62ff148f6"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 14 16:11:53 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 15 13:41:42 2011 -0700"
      },
      "message": "Enabled verification in the compiler and some other verifier fixes.\n\nThe verifier still needs to be able to continue execution after it fails\nto resolve a class or method. The structure for that doesn\u0027t exist yet.\n\nChange-Id: Ie32f6f9971fed02b645ba715bc5164f86f70f1c6\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": "7540ff4b6ad0ff5d8c5f60658b66155caf3a7cbc",
      "tree": "a3a1c5df402f076a8485b3b31150d00f48abd0cd",
      "parents": [
        "693267ad474039981e9be20a592ac2e4e3bd742e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 04 16:38:46 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 08 17:10:58 2011 -0700"
      },
      "message": "Small change to make CompilerTest.CompileDexLibCore pass\n\nChange-Id: Id5989a369acec41faae4bbd949b8979962384b2c\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": "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": "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": "b9edb841423dfe60e193fcffd25994398c91baa2",
      "tree": "9b1187b38ad3e023136cf3835640146ff50240bf",
      "parents": [
        "1caa2c205e51dda670207828f25451fb7623cea6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 28 16:31:06 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 28 17:36:29 2011 -0700"
      },
      "message": "Add slow path access routines for static fields\n\nChange-Id: Iaa3239130410995c342cbc22f8d406925bd3361f\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": "ba5ebb944b7c5c6a1b754b6dd47eed96f39aea29",
      "tree": "a84680c4c469dd6ef3c0e558df9197317a4ee51b",
      "parents": [
        "5cd2180225421d7b94f6d978bc5c1a4d9ef34f1e"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 25 17:24:37 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 26 16:04:27 2011 -0700"
      },
      "message": "Added first pass of verifier and supporting changes.\n\nThe verifier still needs to make a second pass through the code where it\nchecks the code flow. A TODO marks where it will be added.\n\nChange-Id: I0abea5bad563776186df342d8132fb1ca8869652\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": "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": "d2fbb2bd2448f0872878258727aa1eb2558a0c3b",
      "tree": "2c42f71f66bd6c877dfb2180a4d4ee7f89400f79",
      "parents": [
        "762400c72e9c2491fb66364908c3717f8f1289ec"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 23 11:57:08 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 23 13:58:09 2011 -0700"
      },
      "message": "Give an example of walking TypeIds in a DexFile\nAlso prevent accidentally copying of DexFile structures\n\nChange-Id: I293bdfe073ce1e1a54f6de2e0abadac312503016\n"
    },
    {
      "commit": "1a18c8c1c0e4ea1ff06177e93c7ff703376dcee2",
      "tree": "1a37b77910cbb6c628113b61175d7011b7e6a6cd",
      "parents": [
        "37f7a40f6789bb287f287a9af00777af9d6428ee"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Aug 14 17:47:36 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Aug 23 10:17:07 2011 -0700"
      },
      "message": "Initial implementation of throw+unwind+Frame.\n\nUnit tests on Exception Handling pass.\n\nChange-Id: I33505dacc6648e72e2ed80c2cca83643cfaef86b\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": "fe909f29eb417199497a640abd78057fa83c076c",
      "tree": "3482bdced2dfc5e398b02e6c5927906c8fa00e2e",
      "parents": [
        "53b61314370c49354ed6f8d616d6a9a182410fc1"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Aug 12 19:20:26 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Aug 12 20:18:33 2011 -0700"
      },
      "message": "Get should be a const method.\n\nOtherwise, the returned handler_ can still be modified.\n\nChange-Id: I59dea4aa5284f7154d3c096556e6e497890c26ca\n"
    },
    {
      "commit": "4e5c0b92d03fdee18aee6073ad26995f94159866",
      "tree": "5bf4418d387c36d90757b95ca27f4c7a61730e0d",
      "parents": [
        "40ef99eb9dd91c2fa549f40973964529c927bb3c"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 22:50:08 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 22:50:08 2011 -0700"
      },
      "message": "End() should check if remaining_count_ \u003d\u003d -1, instead of checking negative.\n\nChange-Id: I4b0e113f48902a4056d07bdcc2ffdba90d7fde7b\n"
    },
    {
      "commit": "2fb9753c58ce1a511fd6996856840120eb2930db",
      "tree": "4e646106bd572224f690d5e8e64b397b25887ae8",
      "parents": [
        "0dab4ecc01c5db0d0846bf5b4f608634d7404f74"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 16:17:23 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 18:31:05 2011 -0700"
      },
      "message": "Exception Handling: libdex integration. Also added unit test on exception.\n\nRuntime processing of TryItem and CatchHandler. Added iterator.\n\nNext step: Exception Handling: RT integration. Implement throw and\nunwind.\n\nChange-Id: Idf88ce83e37b004016f1eca2c621e5a86948fe91\n"
    },
    {
      "commit": "2eaa968bcd171248c50cea0bbe2c5cfdf9aabb80",
      "tree": "7ef7d3b80de37e18b3c5f59ef1db1293b949d77c",
      "parents": [
        "8860c0e8491a27aa03b55f2417478fb3629611d6"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Aug 04 19:26:11 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Aug 04 19:26:11 2011 -0700"
      },
      "message": "Add a dex structure definition to support exception handling.\n\nChange-Id: I586773e1526c6ade46a74251cb838cab74d7de7a\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": "0b138b26af64ae976c4792f466c27a7293772b8b",
      "tree": "38f729243e39bff6ac6379f921230f5e8b7b5810",
      "parents": [
        "07d579faa0abc835e8db970ff48b6f79cdc67f8f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 27 15:19:17 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 27 17:24:49 2011 -0700"
      },
      "message": "Flesh out AllocString\n\nChange-Id: Ie8c1170e71374942eafdcb40775ca2df3cf7bbc7\n"
    },
    {
      "commit": "4a96b60e45fba4a9d4a2e9c8fc849660eacef684",
      "tree": "4c48587a07fdafd7438d8b2b34bee3d5a8dfbea2",
      "parents": [
        "2ed144c2b49ae1da6c464d7a1be0062870530802"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 26 16:40:23 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 26 18:50:03 2011 -0700"
      },
      "message": "ClassLinker can now FindClass all libcore classes\n\nSummary:\n- added ClassLinkerTest/LibCore test of finding all libcore classes\n- fixed bug in LinkInterfaceMethods appending mirant methods to vtable_\n- fixed bug in LinkVirtualMethods allocating subclass vtable_\n- fixed mmap bug in MarkStack::Init\n- bumped default (and max) heap sizes to handle ClassLinkerTest/LibCore\n- made ObjectArray a templated class\n- heap allocate Class::vtable_\n- \"mm test-art\" and \"mm test-art-target\" added\n- new is_host_ for use by tests\n\nDetails:\n\n    Added support for \"mm test-art\" and \"mm test-art-target\" in addition to test-art-host\n\tAndroid.mk\n\n    Made ObjectArray a template class for clearer declarations and to\n    remove need the need for down_cast.\n\n\tsrc/object.h\n\tsrc/object_test.cc\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\tsrc/dex_cache.cc\n\tsrc/dex_cache.h\n\tsrc/dex_cache_test.cc\n\tsrc/mark_sweep.cc\n\n    Made Class::vtable_ a heap allocated ObjectArray\u003cMethod\u003e\n\n\tsrc/class_linker.cc\n\n    Fix bug in ClassLinker::LinkInterfaceMethods where we were not\n    extending the vtable_ before appending miranda methods.\n\n\tsrc/class_linker.cc\n\n    Changed all uses of DexFile* in ClassLinker to be const\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\n    Fix bug in ClassLinker::LinkVirtualMethods where we were using\n    NumVirtualMethods vs vtable-\u003eGetLength when determining new max\n    vtable_ length.\n\n\tsrc/class_linker.cc\n\n    New ClassLinkerTest/LibCore that enumerates the libcore dex file\n    and tries to FindClass every descriptor found.\n\n\tsrc/class_linker_test.cc\n\n    Added if_host_ check for host only tests. In the future will use\n    for picking proper location of files, etc. on host vs target.\n\n\tsrc/common_test.h\n\n    Fixed test to use ClassLinker::AllocDexCache\n\n\tsrc/dex_cache_test.cc\n\n    Fixed fooIds comments to foo_ids_\n\n\tsrc/dex_file.h\n\n    Bumped default heap size (and max as well) to make ClassLinkerTest/LibCore run\n\n\tsrc/heap.h\n\n    Fixed bug where we were not using MAP_ANONYMOUS for MarkStack\n    allocation found running ClassLinkerTest/LibCore.\n\n\tsrc/mark_stack.cc\n\nChange-Id: I204e2ec7205210e2b60f5b81d126ab6e1da5a71c\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": "6cc18456b6d0d1348ad1d64116b7ab78108ff814",
      "tree": "a76b400be2463a07265468fe1edb83e2814574b2",
      "parents": [
        "a080803c2f0af91cc0de18919a762f4fcd5cce29"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 18 15:10:33 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 18 15:10:37 2011 -0700"
      },
      "message": "Simplify ClassLinker::LoadClass\n\nStarting out by removing the ClassLinker::LoadClass to not take a\nDexFile. Then started pulling threads so that ClassLinker::LoadClass\ncould take a StringPiece instead of const char*. Finally went through\nand removed all uses of StringPiece::data() to make sure things are\nclean.\n\nChange-Id: I47cfa0e8e0e35a31e0ebbd0f7d6a105be83ebe88\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": "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": "a506cb0436b58d8f7983383f07ad71823bba9edf",
      "tree": "d2bf37d74fc755afb89c859b7726b0b771f3f682",
      "parents": [
        "07bb1734922ce0770e2f8bf6d689283d54257c97"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jun 28 22:53:46 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jun 28 22:53:46 2011 -0700"
      },
      "message": "Minor clean-ups.\n\n* Track the length of the dex file in RawDexFile.  This can be used to\n  improve its assertions.\n\n* Move a sanity check for MmapCloser into the constructor.\n\n* Add a TODO for moving the base64 openers into test code.\n\n* Make the base64 decoder assume C strings, mention this in a comment.\n\nChange-Id: Ib4d5a43d23ebe8819032763c42c536c8b826723a\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"
    }
  ]
}
