)]}'
{
  "log": [
    {
      "commit": "5b8b1edc803a85bb3172560826d6a23fb23c3452",
      "tree": "43fe7644011ad6b8c7175ee9748f5fd27e0d27af",
      "parents": [
        "31a4a6f5717f645da6b97ccc1e420ae1e1c71ce0"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Feb 23 23:48:21 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Mar 01 11:44:02 2012 -0800"
      },
      "message": "Implement Link-loading and pass 62 tests in JniInternalTest.\n\nThe passed tests include the 12 originally ARM-only tests. Now it works\non x86 as well if defined(ART_USE_LLVM_COMPILER).\n\nChange-Id: I03092637fa4f0979ca77e0cac06e5d31a867e465\n"
    },
    {
      "commit": "a15e67d5ee5aa9615596cee2be42c2b2caf128c6",
      "tree": "cd126ce1e809688011385d521abf19c9c302d1b1",
      "parents": [
        "9b5ee8837b4864b6ac114e9fead17bdeb04c6d55"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 28 13:51:55 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 28 15:21:27 2012 -0800"
      },
      "message": "Remove pad word from arrays\n\nThis change removes the 4 byte pad from all arrays except longs and\ndoubles. It saves 76kb from the boot image, and will also reduce the\nsize of arrays in the heap (and thereby reduce garbage collection).\n\nChange-Id: I3ff277d5bf14c57c0f7552215818e588ec6cc275\n"
    },
    {
      "commit": "1984651929744dd603fd082e23eacd877b9bc177",
      "tree": "ffa10973a88f0f2743f3fbfaf5e7e4235d5f262d",
      "parents": [
        "f3c01c530ab3a645bd5a980522df4d396dcbf228"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 24 11:42:47 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 27 16:08:56 2012 -0800"
      },
      "message": "Invoke static/direct dispatch change.\n\nThere was a subtle race in static/direct dispatch via the code and methods\ntable. This patch removes the table in preparation of architectures like\nx86 which will more aggressively sink loads.\n\nRemoves unused fields, code.. Brings back resolved methods table\nshort-cut and associated fast paths to use this (such as in Proxy). Adds\na resolution method that is used as the trampoline for static and direct\nmethods.\n\nAdd source file and line number to Throwable::Dump.\n\nMethodHelper knowledge of runtime methods.\n\nChange-Id: Ieae1b74c24072e6327a5bb2cad466f04e3c46c4d\n"
    },
    {
      "commit": "60db5ab3a2e480db9236325a14cb5a867881d8bb",
      "tree": "c4a514941c2d41b82581d2c3d83ecb742e575231",
      "parents": [
        "6a91799974e992e915facb9d9372dc8847a09a64"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 20 17:02:00 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 20 18:15:35 2012 -0800"
      },
      "message": "SIRT work around JNI support for legacy apps\n\nLegacy apps may be broken and expect a jobject to equal an Object*. This\nis a work around to support outgoing SIRT arguments being converted to\nbe Object*s. It steals the unused GC map pointer on native methods.\n\nChange-Id: I8fb3701b0cdf15be9e8f9b722e47386505482666\n"
    },
    {
      "commit": "c8b306f5221658c7e4b5516be8917dc8c9288e7e",
      "tree": "d8d3499030152361129f002e99d2b4a10d36660d",
      "parents": [
        "6c6f12d0ed64e0f4bcbb7139eca8fe564302f385"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 21:34:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 23:52:39 2012 -0800"
      },
      "message": "Run time illegal access checks on static and direct methods\n\nFixes test 075.\n\nChange-Id: I28b20451dcae8000dc0e2cb9068dfa5166659d43\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": "fca7e87c4831ac52073bdd0b2c7342488ce286d8",
      "tree": "058bbda5b4ea617ebef826f2e4b4fd08773e84d6",
      "parents": [
        "53a25dba44cb38d83931d47613cfe5b2abc5c299"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Dec 20 20:08:22 2011 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 15 23:30:22 2012 -0800"
      },
      "message": "Add inferred register category map to Method object.\n\nChange-Id: I69456c79eb3ce3df1924bffe4db5314b0552f1de\n"
    },
    {
      "commit": "16f93671923979733cb46fc6f053c8f65754d5eb",
      "tree": "1bcb06e29786c5c93e0dc588b4ad6e8e94de0034",
      "parents": [
        "b305770f45e9cec66c3bdf792c4e7fa9cff5ec6e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 12:29:06 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 14:39:26 2012 -0800"
      },
      "message": "Remove dexCacheResolvedMethods, address Proxy issue\n\nChange-Id: Iab8c7edb954d241bd5a92260db07696b9559155f\n"
    },
    {
      "commit": "b5d6a4983732387dd9fe9f0024d19a766819755d",
      "tree": "c7945cf6ebf6ebe0438421758884abb7ad240046",
      "parents": [
        "42882d1ae5a297b037f560a6ec190be1a584579d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 04:00:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 04:00:51 2012 -0800"
      },
      "message": "Revert \"Remove dexCacheResolvedMethods from Method/Constructor\"\n\nThis reverts commit 42882d1ae5a297b037f560a6ec190be1a584579d"
    },
    {
      "commit": "42882d1ae5a297b037f560a6ec190be1a584579d",
      "tree": "b702812d71828f757872b5cd1b915f2baf74a251",
      "parents": [
        "60f83e3274739317d8c3a1b069cebc6bf1e40f29"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 19:18:37 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 22:00:50 2012 -0800"
      },
      "message": "Remove dexCacheResolvedMethods from Method/Constructor\n\nThis short-cut is no longer directly accessed via compiled code.\n\nAlso fix compiler_test which requires isFinalizable to be explicitly\ncompiled when Object.\u003cinit\u003e is handled in managed code.\n\nChange-Id: I028cf0fc8fa25a44df4adacc7c686ade413a5a42\n"
    },
    {
      "commit": "a32a6fd4a781262dff4fec102da053d16b7ef6c0",
      "tree": "5c2a35aec522902cfdf508a74898ee091c91f7ab",
      "parents": [
        "d08547a802e6dbb71fde3ed3dac9aa0b03a5b17b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 20:18:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 15:41:26 2012 -0800"
      },
      "message": "Runtime access checks on virtual method calls\n\nAt verification time we may not know that an illegal access or method\nnot found exception should be raised and so we defer the decision to\nruntime. When the decision is deferred we perform an appropriate slow\npath method invocation that can check for access violations.\n\nThis change also attempts to reduce code duplication, improve the\ndiagnostic information in exceptions, clean up field slow paths slightly\nand to move the slow path calls lower in the Thread class so that they\ndon\u0027t effect the offsets of data items when calls are added or removed.\n\nChange-Id: I8376b83dcd7e302cbbddf44c1a55a25687b9dcdb\n"
    },
    {
      "commit": "53a77a5d06ce865d0524bf3a0dd9b586caa9bede",
      "tree": "dbdf636acdb6bf8f67333fb15b54f279183c66c4",
      "parents": [
        "1bddec3a6521f16df37499754000a3b1787a52e9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 09:47:45 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 09:49:41 2012 -0800"
      },
      "message": "Remove Method\u0027s dex_cache_resolved_fields_\n\nWe no longer generate code to access dex_cache_resolved_fields_ and the\nslow paths can access the dex cache with extra indirections. Removing\nthe field saves image space.\n\nThis change also requires Change I2e16e99d\n\nChange-Id: Ic64df15f3982a2655942d7cd5157eb497f70af7d\n"
    },
    {
      "commit": "5167c97a4f672ba821453418e3943988fabbfc43",
      "tree": "7046f25582fd55e6bb4b19bb2fb7781b0d6c60a6",
      "parents": [
        "f2e08b29d3e49f491cd1c29c226154e92380c179"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 10:41:20 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 10:49:06 2012 -0800"
      },
      "message": "Improve debug-ability of native method registration\n\nIf we fail to register a native we construct a stack trace which needs\nThrowable and stack trace support. Registering Throwable\u0027s natives first\nand making Throwable a root supports this. Previously we could only\ngenerate a stack trace when thread start up was complete.\n\nChange-Id: Icc7c1657988c7f36aceb1d4f3e61e7218f55e055\n"
    },
    {
      "commit": "1c5eb704b61511cdc649cad032d29940857c9fe9",
      "tree": "9950f70d497a58cb1d07712a90b72ce19d783eb5",
      "parents": [
        "02fbef0e356ca43b2032044f870d59de4a4ae92a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 01 09:18:34 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 01 10:42:11 2012 -0800"
      },
      "message": "Move super class verification to class linker\n\nVerify super classes in the class linker and chain exceptions when super\nclass verification fails. Add support for dumping chained exceptions to\nThrowable::Dump. Improve verifier error detail messages.\n\nFixes problem where super class verification would leave a pending\nexception that would be tripped over elsewhere.\n\nChange-Id: I3ca850fc66674c8601132d7ec40bebbf9c108ae3\n"
    },
    {
      "commit": "4d9716c19cc25911e639272048abd0d6702bb082",
      "tree": "fdd9d47f7ebb3bcbb19224a34eb7216f3d212821",
      "parents": [
        "0f09676a8f61809c474e71b4a677093615bfba19"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jan 30 01:49:33 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jan 31 12:01:50 2012 -0800"
      },
      "message": "Class::SetStatus(kStatusError) now checks that an exception is pending and uses it to SetVerifyErrorClass\n\nChange-Id: I02f4adc51ac6da88d4969655fa828f93941c4c0a\n"
    },
    {
      "commit": "d418edaf4df0a410d678389e171ac6d96ae2af15",
      "tree": "d90fedd6af5fb69e9e983a68723cdded97354ed0",
      "parents": [
        "160f3e20e81a9137e75a18a8613c09c51c8c004f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 30 12:14:28 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 30 15:41:32 2012 -0800"
      },
      "message": "Class clean-up and compute name during image writing.\n\nName is computed lazily, if this occurs for an image class it will cause\na card mark and for that part of the image to be scanned every GC. By\nprecomputing the name we avoid the GC overhead, speed up some reflection\noperations, save allocation heap footprint at a cost of ~300kb in the\nimage.\n\nRemove and reorganize reflection native methods to agree with patch to\nlibcore.\n\nChange-Id: I4b621be4a9d9bb381a647963066c3305ce40745f\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": "ff17f1fd3ff32f93e45588eb2b158832d73f9afa",
      "tree": "deab04f6a2ad7f1dbaf0e6be266512d663e3dd91",
      "parents": [
        "a7679b67ca945194fa2442015e606cd250f0de2b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 18:12:29 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 18:12:29 2012 -0800"
      },
      "message": "Remove various bits of lint.\n\nChange-Id: I5f8f61766d2add7fd7ff40d463ea03cb20515988\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": "e7d856b911222aa000ca2be0f8f63f5b292141c3",
      "tree": "9628ef94e879c7ae026dd37ec05e1ab3251d830a",
      "parents": [
        "a51dc5b0a57fdf0574c069a15e065ccc96958f02"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 11 18:10:55 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jan 17 17:42:34 2012 -0800"
      },
      "message": "Add GC map to oat file\n\nChange-Id: Ied0462c711a09e2542f231c3b2fa31239958bd28\n"
    },
    {
      "commit": "eaa200d9b8a28f1a23b6ded7875d2b8fca555254",
      "tree": "f95f311b5909e680ad114825b33d1b507487e990",
      "parents": [
        "a10df0fd98f6ff81c5ec2639fb4e385b39c28845"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 05 16:30:31 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 05 16:35:50 2012 -0800"
      },
      "message": "Remove unnecessary casts.\n\nAlso turn up strict-aliasing warnings to the maximum (and default!) level.\n\nChange-Id: I97f1d2c180ce515719f8c92d54b8a6ae6a6942c4\n"
    },
    {
      "commit": "90040194a1b5c441dde5c8a8b6d637c23972e0f3",
      "tree": "729962d80228061d6f186c579440893c8eacd2b1",
      "parents": [
        "6b0870dfaaa2e69a900ad7ed88e4e1d3697445aa"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Dec 16 08:54:29 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Dec 16 09:29:04 2011 -0800"
      },
      "message": "Fixes for verifier access checks.\n\nClass::CanAccessMember ignores the class we\u0027re checking access for,\nexcept for protected fields. Document this behavior.\nWhen getting static and instance fields perform the same class access\nchecks we already perform for methods.\n\nChange-Id: I00719de2e346e9f3faa199e1976151493708fff7\n"
    },
    {
      "commit": "c2b4447ae9c0c1e77595620acac6508999df6698",
      "tree": "20192c2044d004b364a7f8aa6c9cd3a272e3e706",
      "parents": [
        "fbef9462e3bf2301dd5b337d351b6b70f7e31bc8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 21:17:17 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 15 06:45:50 2011 -0800"
      },
      "message": "Fix for test 044-proxy\n\nProxy implementation was incomplete following meta-data refactoring,\ncomplete this change.\n\nChange-Id: Ic0567bdef373dbae17031a30aabc779027173229\n"
    },
    {
      "commit": "f239165736be1ae0460ef042195c579a7becec11",
      "tree": "1bf297537287014cf3e1b84565ebaa308a432bd9",
      "parents": [
        "4d3c95bd7ee7d67993dc09617ee4138fa33af70f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 12:50:52 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 12:50:52 2011 -0800"
      },
      "message": "Improve documentation on CanAccessMember\n\nAlso move the quick identity check earlier.\n\nChange-Id: Ie1c913ab4f69995d4500c995b0b7a4aead51c2a8\n"
    },
    {
      "commit": "4d3c95bd7ee7d67993dc09617ee4138fa33af70f",
      "tree": "722cbcc7b71439d29a8723b8185eff9039c419aa",
      "parents": [
        "b067ac2fe225c76fc9eb9434ef62cbb797bfa425"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 07:46:38 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 07:46:38 2011 -0800"
      },
      "message": "Fix for 075-verification-error\n\nChange-Id: I907a9b0baaedb86a40b9baf18e0f21a43d660bd2\n"
    },
    {
      "commit": "b067ac2fe225c76fc9eb9434ef62cbb797bfa425",
      "tree": "7afaac5b70dbcc2515f769b0d000240b1f20f4ab",
      "parents": [
        "91250e0c3fb0ad758b9b97042a3fa86d5ae76763"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 13 18:05:09 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 07:03:49 2011 -0800"
      },
      "message": "Fix for 073-mismatched-field test\n\nART distinguishes between static and instance field resolution whereas\nJava doesn\u0027t. Interface static fields bind more closely than those of\nsuperclasses. Implement field resolution code for the verifier so that\nit can determine incompatible class change errors when a static field\nbinds before an instance field.\nAlso don\u0027t search all iftable interfaces, search them in superclass\norder (as the specification dictates).\n\nChange-Id: I43b45bada8b9099ad805b244be10833d59bacfe3\n"
    },
    {
      "commit": "5fc5a0c8801028195ead49910b98a3490aa506ea",
      "tree": "20228918159eeb1b32ec05850d1761111bc4bf4f",
      "parents": [
        "96835e7b2b6c1e06e747cf8cf97a206fb902205a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 13 10:39:49 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 13 10:39:49 2011 -0800"
      },
      "message": "Fix VM test 065 and 066\n\nFix bug in setting the VerifyErrorClass, set this when super and\ninterface types are incorrect.\n\nChange-Id: Ib779e3e5c5aaa8ae4f83a673194f27bb31b37d13\n"
    },
    {
      "commit": "7b3cdfcca472b779cf8745fb8460935e56229f11",
      "tree": "e74e88286c9f121ed1312faece45981ba4e0b14c",
      "parents": [
        "6f1dfe415019de95f0305de66b3afb40005fe382"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 08 21:28:17 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 08 21:45:49 2011 -0800"
      },
      "message": "More JDWP robustness.\n\nWe pass a lot more JDWP tests with this (fewer total failures than dalvik,\nbecause although dalvik implements more requests, it assumes that the debuggers\nonly send it valid input).\n\nI\u0027ve also added some of the missing constants (there are tests of modifier 12,\nSourceNameMatch, which was added in Java 6).\n\nChange-Id: I502e87b50fb305c5c8b061421339c8ceab104640\n"
    },
    {
      "commit": "6f1dfe415019de95f0305de66b3afb40005fe382",
      "tree": "93a39a7cd459a25bfe6b30fbf105518a549dc593",
      "parents": [
        "c2a2f295a15492ebbdb2613df97f9f7d331310e3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 08 17:28:34 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 08 17:52:16 2011 -0800"
      },
      "message": "Ensure referenced catch block exceptions are in the image.\n\nThis addresses Bug: 5732744.\n\nChange-Id: Ia9319b821f94bb27a11358f11b5473bb405277bb\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": "1bba14f20039b6e706b719fdd5754eb30088d014",
      "tree": "be62972c4ff6a9afca9cf05259b624f4cdadafd9",
      "parents": [
        "c1f143de3d0370a17a4561eb83bf10a5d7908aa3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 18:00:36 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 18:41:01 2011 -0800"
      },
      "message": "Implement getting of 64-bit locals (double, long).\n\nAlso implement the JDWP \"GetClassLoader\" request, used by jswat\u0027s \"classes\"\ncommand.\n\nAlso implement the JDWP \"exit\" request, tested with jswat\u0027s \"shutdown\".\n\nChange-Id: Ic8424a332151242211d8a772721deb3199b24682\n"
    },
    {
      "commit": "68fdbd07fc2b8856905e06f3cc945b046c3bfcd3",
      "tree": "b8982040e6a2fe250b3db127ea0b1dfdba552616",
      "parents": [
        "8aa6fc39f5cc0279d4ba2ee064de9758560dfedd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 29 19:22:47 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 12:11:23 2011 -0800"
      },
      "message": "Return values for locals, so \"locals\" can show them.\n\nAlso implement a couple of other JDWP commands so jdb can show the length\nof arrays and the value of strings.\n\nChange-Id: Ib2a4dc2ee784ee10bdb924e91b0150aa8a96845d\n"
    },
    {
      "commit": "c129a6b44193ac3a872f852a69d336e0e7ed8640",
      "tree": "ff5b5503aff4e5173c570b2e471d2df0895b7b2b",
      "parents": [
        "434424a3f60f2129aaa1780ac6a5c2618bc789e0"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Nov 24 14:47:46 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Nov 24 14:47:46 2011 -0500"
      },
      "message": "Make methods and fields accessible by default in art.\n\nThis also fixes a corner-case bug where calling Field.setBoolean()\non a non-boolean field would crash the runtime.\n\nChange-Id: I2f6693e3c3fe3bf23b4761335300506b3fbd3008\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": "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": "1121e0b619d0c9df36c57396b2234a9d570b4923",
      "tree": "958c023685f88bcffc7626eb3bc7f8e37db1aa02",
      "parents": [
        "9717051c5c961d7b2d809654adc2a135fca8e6db"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 07 15:37:42 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 07 18:03:57 2011 -0500"
      },
      "message": "Wire up hprof.\n\nI tested this with test 074-gc-thrash, which creates a .hprof file\nthat can be read with hat.\n\nChange-Id: Ie75b7a7cf3c2ee32189df47ab0129e99449ebc6c\n"
    },
    {
      "commit": "64155032b391fd7132bdd04ec0669135ae1176a2",
      "tree": "f5379d9cb293c9f5b370c40fe6c0df19fe24b2a3",
      "parents": [
        "f8a199cb0c53b7a6f0def21ec5b462992d93746b"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 03 17:56:34 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 03 18:26:34 2011 -0700"
      },
      "message": "Added caching of indexes for annotations.\n\nThis is a multiproject change, along with changes to libcore and\nframeworks/base.\n\nChange-Id: I333ffd264f58667f1ee25845e1de12ca99a8c299\n"
    },
    {
      "commit": "5d76c435082332ef79a22962386fa92a0870e378",
      "tree": "db8fdd7bfba3617494157b483e9df979f76dfdcc",
      "parents": [
        "4b6fe5a568ca2bc5e8fa110bf7af692cab220a15"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 21:42:49 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 01:25:57 2011 -0700"
      },
      "message": "Mark non-image spaces and use write barrier for image spaces.\n\nDon\u0027t mark string and class roots that are in the image, alloc space\nreferences will be caught by the write barrier.\n\nChange-Id: Idcf9e4ede3b83556d4f8a01276273726dc6eea46\n"
    },
    {
      "commit": "c4824e60fef6cb9fdf0f8442408338f4141e09de",
      "tree": "61a25e09218cfb815875076a54fe351b3a426b10",
      "parents": [
        "387b699e3dc55309023ae2427a76a1ca1d51b0cd"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 01 14:39:04 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 01 14:53:54 2011 -0400"
      },
      "message": "Add hprof. This code builds but is untested.\n\nChange-Id: Ied6549ef903761447fb3d28cf28b8bbc76e5ef35\n"
    },
    {
      "commit": "28ad40dc3ec2f09b0ffd4f6d6787bf1b532ccd5d",
      "tree": "f5628e47948a0d255112a3a7a01b67db41c8d424",
      "parents": [
        "e0918556e7551de638870dcad3f2023f94f85a50"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 27 15:19:26 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 28 23:14:15 2011 -0700"
      },
      "message": "Support for unresolved types in new-instance during verification.\n\nAlso, ensure that classes that don\u0027t load are erroneous, warn early\nabout exceptions left on a thread by the verifier/compiler, factor out\nslowpath checks for the compiler and fix the slowpath selector for\nconst-class.\n\nThis change causes more dex cache misses at runtime (more slowpath\nexecution). It also requires a \"mm clean-oat\".\n\nChange-Id: I014b49ebdd7d8f7dd2e39cc0958fc0b708d58c4c\n"
    },
    {
      "commit": "9074b99bfbd5419e340f138a018b673ce71f77e8",
      "tree": "0910d8eb0e08eb6cb45a1f307b31b1bc17d70c31",
      "parents": [
        "b82b6878fb000d4731063b1bf15c39ff7c50b61f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 26 17:41:55 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 26 22:53:21 2011 -0700"
      },
      "message": "Better unresolved type support.\n\nAlso fix bug where miranda methods were changing their declaring class\nand thereby breaking their return type indices.\nAdd support for dumping stacks on abort.\n\nChange-Id: I3782864736b12d1f81ab9aea4909213d3344ba13\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": "b06631143b944388fc68bedf6679c006dde5f461",
      "tree": "b616aeabb016370def3d2730f3722866cf9fd1f3",
      "parents": [
        "c393a4f7c91534ac41a81d66b12c22e68df28fc7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 19 18:16:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 19 18:16:37 2011 -0700"
      },
      "message": "Some low-hanging GC performance fruit.\n\nHalves the GC pause in my test benchmark (using libart rather than libartd).\n\nChange-Id: I57e5f9e312fd59ea62eea9da37a116e1ad21d4ec\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": "24a3c2e9924e8765c4a9b4d383cb8f3b922f9c9f",
      "tree": "1f61ecb377be4abcba4838651bc9d98b548a3f81",
      "parents": [
        "3535c22d05bb4600255db90b490e625eda874b53"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 18:07:52 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 18:17:36 2011 -0700"
      },
      "message": "ClassLinker changes\n\n- Add ClassLinker::LockOwner for SignalCatcher\n- ClassLinker::ResolveMethod now sets CodeAndDirectMethod when code is available\n\nChange-Id: I404b80d1994808e018d00e0b30e8ba4f9d08fecc\n"
    },
    {
      "commit": "b04f69f90d2594092bec5b294bbe7329d295bd66",
      "tree": "b0b0bb6c4db1da0dbe5ff4025013247cc7815b41",
      "parents": [
        "0691851db8fb542f4058dfb6e75faf3f9a9f5ff4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 17 00:40:54 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 17 00:41:31 2011 -0700"
      },
      "message": "Fix for test 069.\n\nCan\u0027t throw exception in fast interface lookup. Extra debugging that\nmethods look sane when creating native to managed records.\n\nChange-Id: If0b970c418db5ff075334af8359541a94e8680b7\n"
    },
    {
      "commit": "06b37d91bb3d543002b1aee9829691f5e8bebc7e",
      "tree": "15d08cf8993856596ca8567507a8e87d4569bd32",
      "parents": [
        "3b6baaa203fa63f1522b2172a1645f90412afdae"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 11:51:29 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 11:51:29 2011 -0700"
      },
      "message": "Always log the value when an alignment check fails.\n\nAnd move checking that the alignment is a power of two to compile-time.\n\nChange-Id: I551f364af05912958ed2d4d095b1ce35b6abaf6e\n"
    },
    {
      "commit": "466bb25416b88fabd5d4387b7c7e5cc1ece78b8c",
      "tree": "8d0952cbd850f1d0ac2e43a8372ce571fb4982d1",
      "parents": [
        "a10cd94bb77ed66fa0a8b66141c4504045c92d30"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 14 03:29:56 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 14 21:45:27 2011 -0700"
      },
      "message": "Proxy implementation\n\nThis rounds out the proxy implementation by adding missing pieces to the\nclass linker, extending tests and fixing issues in the runtime support.\nThere are also some tweaks for performance and to clean up Method/Object\na little.\nA unit test of the functionality is \"art/test/run-test 044\"\n\nChange-Id: Id94102d10b81cd9b12b95ba8618f6187490204c4\n"
    },
    {
      "commit": "95caa791e560da97363c0c0d22bfda4a7e7377c3",
      "tree": "7cc1c2b15566009216a0c34f456e506e1c859e81",
      "parents": [
        "ce46d3237c5117b1d2268c17e3639392416ff34d"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Oct 12 18:14:17 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Oct 13 15:21:24 2011 -0400"
      },
      "message": "Create proxy class, constructor, and methods.\n\nThis code compiles but has not been exercised. I still\nneed to wire in the code blocks and return types.\n\nChange-Id: I1796103d3bc4fc3c863f95bdca4cfb9765d4b3b7\n"
    },
    {
      "commit": "307f75d6bcf7c32db7e1b43124dead628cc7ce96",
      "tree": "81fdf8690b0387e6535c85d11e24c2cc7b45cef3",
      "parents": [
        "caab8c4ef372db5c119bfac1911fa27b174a935c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 12 18:04:40 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 12 18:27:18 2011 -0700"
      },
      "message": "Add a C++ equivalent of Android\u0027s TimingLogger, and use it for the heap.\n\nThis also changes us over to one big stats update at the end of sweeping,\nlike Dalvik, rather than recording every single free individually.\n\nChange-Id: Ib8e2a83d41d36e35e154183a4e173e915af79ae9\n"
    },
    {
      "commit": "caab8c4ef372db5c119bfac1911fa27b174a935c",
      "tree": "375a1e284b123b91d4960aa674b223e1eea0583a",
      "parents": [
        "14b1b249bdd21d674c9371dee34f8ae055f73ba2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 12 12:11:18 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 12 18:12:21 2011 -0700"
      },
      "message": "Various tidy ups, add LIKELY/UNLIKELY macros.\n\nMake more aggressive use of the dex cache when we have it.\n\nChange-Id: I125a7bac031f7f0cec68194b5380bdfd83c92833\n"
    },
    {
      "commit": "0796af03edc06d92bb8d631f1c0c23befdae2315",
      "tree": "c8681daeed4fb155b43d8a824e09a2fb973ff7fc",
      "parents": [
        "1761ffc98298999f929e17cc3707aede5b890e0a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 12 14:31:45 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 12 14:37:20 2011 -0700"
      },
      "message": "Fix Object::IsSoftReference\n\nAlso changed -Xzygote to default boot.art and log arguments\n\nFinally Makefile work:\n- separate out test dependencies\n- changed zygote with art to work by replacing libdvm with libart[d]\n- changed Makefile defines to name and error check their arguments\n  This was to fix bug in generating ART_TARGET_EXECUTABLES\n  where we used $(1) when we meant $(3)\n\nChange-Id: I7ef6008eff1fe99b59d151b6793e8fd8ea5304d4\n"
    },
    {
      "commit": "dfcdf1a0d2d8d75b4c701317e4a092498a8d1e9e",
      "tree": "0106200542ccbd8a12e4f35b40ee59a036ad49d3",
      "parents": [
        "8e4b2fc0565d6222ba49a14d87624e3ac170b6c5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 10 17:50:35 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 11 12:38:02 2011 -0700"
      },
      "message": "Proxy invocation stub.\n\nAlso removes unnecessary restoration of callee saves in runtime support\ncode.\n\nChange-Id: Ie6b91ce0297179947e176e0700ac3fbb90357e1b\n"
    },
    {
      "commit": "582a7d16bb0db323d8bd730beb61578aa3765f43",
      "tree": "ec5ce05edac63b7849b39463d02470d4cc4fde3f",
      "parents": [
        "df143242f4beaad4cc9fbabebfc033b68c40964e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 18:38:42 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 18:38:42 2011 -0700"
      },
      "message": "Fix a handful of reflection bugs.\n\nWe now pass test 046.\n\nChange-Id: Ie605ed99e64038435608fe388c59526674af5489\n"
    },
    {
      "commit": "ae67599981e17cdfd51418c35e56e2a7c5ef4c72",
      "tree": "628f154344135cb51c94a9885b5cfae9e7a35f37",
      "parents": [
        "c10717a0b86d5719556ac3286fcb47aa2f2416fc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 09 17:10:22 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 09 18:23:51 2011 -0700"
      },
      "message": "Various assembly fixes.\n\nChange-Id: I42655af8dc3d7201d53c3393cdc585d9faa8cb82\n"
    },
    {
      "commit": "ce9eca6de042f26e9eebc41c9bee8b4d14f753aa",
      "tree": "7a141da8787f6653b30595f478ec656fd8dd01d6",
      "parents": [
        "6384f644e8120a15bddb9a72976eac1c158aba16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 17:11:03 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 18:24:23 2011 -0700"
      },
      "message": "Move from code field routines to runtime support.\n\nAdd support for exceptions from these routines. Use a macro for pending\nexception delivery. Fix bug in object_test where the signature of a\nFromCode function had changed.\n\nChange-Id: If486eff8659e5f6bb38d95b1139e8981656e4fb0\n"
    },
    {
      "commit": "f5a7a476e7ea63e094ff0f011dccc170607e6f6b",
      "tree": "4f07e57d5e3d2a82eeefcb7c6409f36b383b1d96",
      "parents": [
        "c2858561314513cc7bce2da7e13664aefef5a2ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 14:31:02 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 15:08:48 2011 -0700"
      },
      "message": "Enhance CHECK_EQ and friends to allow extra detail to be appended (like CHECK).\n\nChange-Id: Iaa980892ab31621c8bcca9ea7c6c4ee743333f45\n"
    },
    {
      "commit": "3320cf46afd082398aa401b246e6f301cebdf64d",
      "tree": "99ef2b240ad81fa7cafa0bca51ca2364120fa762",
      "parents": [
        "4f0d07c783afef89703dce32c94440fc8621a29b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 04 14:58:28 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 07 11:59:20 2011 -0700"
      },
      "message": "Move rest of code related blobs from Method to oat\n\nChange-Id: I55041b564ab65317c8b1f863005f20ba650a0322\n"
    },
    {
      "commit": "4f0d07c783afef89703dce32c94440fc8621a29b",
      "tree": "f6f4b68d5afc6551c61d3e86153878d9891ea13a",
      "parents": [
        "3ddac99d4dc6a036fac59d8f0bdc664ef619fb04"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 23:38:47 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 11:40:56 2011 -0700"
      },
      "message": "Spill possibly reference holding registers for runtime calls.\n\nLive references may be in registers when we crawl a stack for GC during\na runtime call. Whilst an exception won\u0027t occur we need to save the\ncallee save registers into the frame so the stack crawl can find their\nvalues. Create variants of the callee save method to save just the\nregisters that are necessary.\n\nChange-Id: I6fa479bffcbc333fe846f9bd3ef2e626e0209ed9\n"
    },
    {
      "commit": "adb460d96702573de6e732ad58ca0380405cd928",
      "tree": "f70ad27d5fc007b70765a76644519234466dee61",
      "parents": [
        "68e76526e98432625464022cb26f66b9ef6f5af4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 17:02:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 17:02:34 2011 -0700"
      },
      "message": "Implement finalization.\n\nAlso make System.gc no longer a no-op. This replaces some of the\nMemberOffsets exposed by Heap with intention-revealing functions\nthat we\u0027ll want to share between all the actual GC implementations,\nbut there\u0027s still more to be done.\n\nChange-Id: I57ba26c0416fbbfe20142b7b6e27108684add7f9\n"
    },
    {
      "commit": "20cde9033d51103f31e21436e88f80e1170c78ad",
      "tree": "4b7c66092d988a9ed9345b66868da9cdf5cc8b4a",
      "parents": [
        "b408de744566a5c5a80be1ba7f5c88407e816945"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 17:37:27 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 17:56:41 2011 -0700"
      },
      "message": "Add Class::IsFinalizable and Object::AddFinalizerReference.\n\nAlso correctly set the special bit in Class\u0027 flags.\n\nWe need compiler support before I can go further.\n\nChange-Id: Ib7a637d7140a6f8c416635738d4d0b57c17ad628\n"
    },
    {
      "commit": "b408de744566a5c5a80be1ba7f5c88407e816945",
      "tree": "fa282edb7134f16de6e3ff81181e6d9724039ab3",
      "parents": [
        "4377a7e93b47386de1e0c2e472a6e3e99d235331"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 14:35:05 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 14:51:27 2011 -0700"
      },
      "message": "Implement the \"unreasonable array allocation\" OutOfMemoryError.\n\nThis doesn\u0027t fix test 061 because we still need AllocWithGrowth, but at least\nit gets us far enough to need that.\n\nChange-Id: Ia7b4a1f91a31e25d439f36b17280ce21c9ed8933\n"
    },
    {
      "commit": "34f426c49ac2de8cea70acef6b9ecdd8e62209d2",
      "tree": "d838a44f5d9b3ba6d08164d577c6fb71156076b4",
      "parents": [
        "8cbc8bc716d7a47019ad14403920c72547b2fb96"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 04 12:58:02 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 04 13:00:10 2011 -0700"
      },
      "message": "Make class roots an image root\n\nChange-Id: I1f1513bf34caa736c0dd7518a92f493b4573d776\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": "991e3ac0daf35d23f7c5e602d113c12ff3971544",
      "tree": "2bf5a081893dc38805dbdc107ce0b8031f0ea179",
      "parents": [
        "2d831014d88e38c0c499ce8597dcdb17b9d4c4b9"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 29 15:44:22 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 30 09:19:51 2011 -0700"
      },
      "message": "Clean up instanceof codegen in compiler.\n\nChange-Id: I0179a0746bc5aaef02129169b6a6b1bbbe30dc7e\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": "d6b1f6190c8ec42facb08aca34b093244774b318",
      "tree": "698b54670a3935e2d6065b79ab9300e9b2364c3d",
      "parents": [
        "f153fe1ff3c901a1c63b6ec5495c5046869a60e3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 27 13:38:14 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 27 16:29:18 2011 -0700"
      },
      "message": "Support for stack scanning of roots.\n\nChange-Id: Icbb02959725735faaa230e0fd00e8039b2f9c1b2\n"
    },
    {
      "commit": "5d40f182181488eb39ccd19ffd306bb1fb9740c9",
      "tree": "f76c0593d7be5975543411a3d85134e846774ba5",
      "parents": [
        "1ff230d113d25fbcd2986773799ac1ef504a6af0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 26 22:29:18 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 27 01:24:39 2011 -0700"
      },
      "message": "Fixes for \"null instanceof\" and class initialization\n\nFirst issue was that the codegen seemed to expect r0 to contain 0 for\na false result in the null object case. This is a quick fix to make\nthat true. Given that the code is doing the work of a null check and\npulling out the object\u0027s class, the code should probably just pass the\nclass to the helper function, making this a case of IsAssignableFrom,\nnot instanceof.\n\nSecond issues were related to missing EnsureInitialized calls in two\ndifferent code paths, one coming from reflection, one coming from\nmanaged code. New Class::AllocObject assert should help keep us out of\ntrouble in the future in this area, although perhaps Heap::AllocObject\nshould have a check as well.\n\nChange-Id: Ib7975b6457481c1ac85135d38f42c6061e6443a0\n"
    },
    {
      "commit": "395520eaa47eca25b92e86188accf3095d60af49",
      "tree": "23cff36a71ea43eeb6a4bb7a7544c45aa3534c85",
      "parents": [
        "14357e842b611279d467b64d450c569af33a6936"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 25 19:35:00 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 26 10:56:37 2011 -0700"
      },
      "message": "Assorted fixes for running frameworks apps\n\n- Adding Heap::target_utililization_\n- Convert ClassNotFoundError to ClassNotFoundException in Class.forName\n- Finish String::GetHashCode\n- Changed Runtime.gc to unimplemented\n- Disable preload simulation in oat_process\n- Empty native placeholder for org.apache.harmony.dalvik.ddmc.DdmServer\n- Bonus: Fix problem with reflective invocation of constructors and private methods\n\nChange-Id: If11b273e2f82e8e0fa7161a756098514e1156a19\n"
    },
    {
      "commit": "4681c809ba35d50fab92c592ce8d2c7f8b2731f7",
      "tree": "218759bc9564bdbaa49d1be89d257ecddd3a8a14",
      "parents": [
        "54643083afd5b99f4d52a32b4030aec0db8d0e2f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 25 18:04:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 25 18:04:37 2011 -0700"
      },
      "message": "Various things.\n\nChange-Id: I6911c995d7635b95e6dc6b9112bf4e1adf85e830\n"
    },
    {
      "commit": "65ca077378935beb113bb5aec5e890054ca3286e",
      "tree": "d077a7d7953fc3ffa08b3570623ee4f0ee5ea437",
      "parents": [
        "ed3e930109e3f01804ca32cee4afe4f2d4b3f4d8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 24 16:03:08 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 24 17:37:33 2011 -0700"
      },
      "message": "Tolerant compilation of classes with missing super classes\n\nChange-Id: If64f25ae36204ab2ea5499f27601696dea9d4016\n"
    },
    {
      "commit": "8060925c45cc2607ab92390d7366c6c0cfdfe4bb",
      "tree": "42a50d2de4cc7622b19d6cd7a20b3d99d60a00a2",
      "parents": [
        "bc2f3e3e41d02eb2896dc16390c5c4023a7b5649"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 17:24:51 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 18:08:21 2011 -0700"
      },
      "message": "Implement Class.getDeclared(Constructors|Fields|Methods).\n\nThis required making sure that a Method* that represents a constructor\nhas java.lang.reflect.Constructor as its class.\n\nChange-Id: I25908845a2b8d686d5404ac584693db0edd5853c\n"
    },
    {
      "commit": "21d9e8323124a832a21679ca83808bc9c68ed365",
      "tree": "d41c36c06524f913761f3b2e107d48d668feb660",
      "parents": [
        "31cc62d259b86844b505c3bfe15b44e372f705b8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 17:05:09 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 17:05:09 2011 -0700"
      },
      "message": "Exception support for object allocation.\n\nStrengthen asserts, no extra unit tests as expect good coverage on this\nalready.\n\nChange-Id: Ie8786932667b70d20c0cdf69b4b6b721b6244ded\n"
    },
    {
      "commit": "b886da8e3c26443ab4d2aa63268bd673c354c3d2",
      "tree": "26f01b0d92a79dea97fe80ccc580a7cbcd0178ac",
      "parents": [
        "e51a511ccee3f3c0120807321bcc160fcaa664be"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 16:27:54 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 16:27:54 2011 -0700"
      },
      "message": "Support for exceptions from array allocation.\n\nAdds support for exceptions during array allocation and checked array\nallocation (used by filled-new-array). Adds more unit tests.\n\nChange-Id: I3438b257a1cf19538d8b72529097a74347ac3b99\n"
    },
    {
      "commit": "e51a511ccee3f3c0120807321bcc160fcaa664be",
      "tree": "24ae359ac6331afbfabcfb8b938bfad2e4d44ce6",
      "parents": [
        "382ece5707c7b7c61f44a01f57ac22df9a8197d0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 14:16:35 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 15:24:10 2011 -0700"
      },
      "message": "Exception support for CanPutArrayElementFromCode.\n\nAlso a unit test.\n\nChange-Id: I6fb4b4180d36ea2d8447a9b4d5cf28cf410960cd\n"
    },
    {
      "commit": "4a801a4f0138a3a4a5a7615af567c5755abe0d7a",
      "tree": "b8844bef8e4cf5502e52233d32ed4bf0230b36e4",
      "parents": [
        "d1bb4f6b7c8dda429f61937cd42f3a0b7367c271"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 23 13:53:40 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 23 14:36:31 2011 -0700"
      },
      "message": "Enabled access check for classes and methods in the verifier.\n\nAll checks should pass in frameworks. The only thing left in the\nverifier is to tolerate classes/methods/fields that fail to resolve\ninitially.\n\nChange-Id: I2afe0295bb16542259b2122a9056b3139d908871\n"
    },
    {
      "commit": "418d20fc407052d4152157f61e7453359f902383",
      "tree": "250a190e03cb4c8d509dc3a13fd4607f888965ca",
      "parents": [
        "c41e5b5ae1befe2c602d55de1dbc04d1914f4a6c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 14:00:39 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 13:58:05 2011 -0700"
      },
      "message": "Implement reflective method invocation.\n\nChange-Id: Ib3af9d7e00bf226398610b5ac6efbfe3eb2d15e8\n"
    },
    {
      "commit": "c41e5b5ae1befe2c602d55de1dbc04d1914f4a6c",
      "tree": "fa122d75b64193d7c2dee7a1be871a5ae8511493",
      "parents": [
        "f4afb7aec4e51c2e682cf3af4d6511add74d2f38"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 23 12:46:19 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 23 13:53:25 2011 -0700"
      },
      "message": "Add tables to map between callee saves and vregs\n\nAlso added function to return sp-relative offset for Dalvik\nvirtual registers using Method*\n\n[Note: must be matched with corresponding libcore change to\nreflect new field in Method]\n\nChange-Id: Id739908c6232ce60763d8199bc05111e960da46e\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": "f91c8c328c922ecd522e1d3508d2603e78de8a7b",
      "tree": "9ae1b28516bfac8698f34e56b4a07037b5c81c28",
      "parents": [
        "ff1ed4770bf7ff024a807b9f909b1a26abb78341"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 21 17:30:34 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 22 11:28:21 2011 -0700"
      },
      "message": "Adding JNI code for dalvik.system.DexFile and java.lang.Class\n\nChange-Id: I079c037db77aeaca0dec06660f7551f57adf2607\n"
    },
    {
      "commit": "ff1ed4770bf7ff024a807b9f909b1a26abb78341",
      "tree": "40cda83cda306f4ade883141d3e0a40fb0790100",
      "parents": [
        "49de87b5c118cc536f2bd68c4fd46fce3d3abcfc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 20 13:46:24 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 22 11:08:56 2011 -0700"
      },
      "message": "Class cast, fill array and interface exception support.\n\nThis change uses the deliver exception mechanism to implement support\nfor a number of runtime exceptions. It also tidies up code in the\ncompiler and allocates a singular callee save method in the image.\n\nAlso adds a fix for JNI internal test where we weren\u0027t passing\nThread::Current() and that this value is now being used in generated code.\n\nChange-Id: I57eefd9afe40e92fa3a7e737f1a2ed7e1094b5c1\n"
    },
    {
      "commit": "c6766ed17d27417bfce62c31b342b3faa47ada5d",
      "tree": "d8cb372d2d8c80a95acdc74d0fe62bf3db7db916",
      "parents": [
        "27ec961a1da540ba7f16c07a682585ab167317ad"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 21 11:42:59 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 21 11:42:59 2011 -0700"
      },
      "message": "Tracking removal of Method.NO_ANNOTATIONS static field from libcore\n\nChange-Id: Iba14a194e3c9e05af04a3d1cd23b42990d77894e\n"
    },
    {
      "commit": "27ec961a1da540ba7f16c07a682585ab167317ad",
      "tree": "0aa6cb8345e394fe0ebe608bc26aa2acbdac1393",
      "parents": [
        "03fa263ba90e9f6b11231576c6b9cc434e67141d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 19 20:20:38 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 21 10:36:24 2011 -0700"
      },
      "message": "Adding oat_process\n\n- Added oat_process, a version of app_process use to launch frameworks apps\n- Added liboat_runtime, a version of libandroid_runtime that uses art instead of dvm\n  This is just a special makefile, frameworks/base/core/jni code is used for source\n- Added support for build a boot.oat with the full BOOTCLASSPATH\n  The older smaller boat.oat is now core.oat\n- Added mem_map code for making sure a requested memory region is available\n  Moved mem_map code to cc file to make easier to debug with smaller rebuild\n- Moved oat base address to 0x6000000 as a work around to host addres conflict\n- Added -Xms and -Xmx options to dex2oat to allow build specific memory options\n- Fixed miranda method initialization problem found compiling full bootclasspath\n- Made compiler.cc tolerant of verification errors found compiling full bootclasspath\n- Bumped arena block alloc warning to avoid noise when compiling full bootclasspath\n- Marked implicit GC unimplemented to fail fast\n- Added --output argument to oatdump\n- Made many object asserts tolerate access in IsErroneous state\n  now that verifier is failing validation of some classes during compilation\n- Made runtime tolerate unknown access as short term solution for oat_process\n- Workaround SSA issue to restore full bootclasspath compilation\n- Added test-art-target-processs to excercise oat_process with \"am\"\n  \"am\" found bug where class_linker was using Method::GetClass and not ::GetDeclaringClass\n\nChange-Id: I1a645a142b163e06bab9e72eb094ae1f1dbfbd97\n"
    },
    {
      "commit": "845490bda68f7d025ea7f45775c847d2932e00dc",
      "tree": "2fc5c0f3fa40a491a3467dfc25d71fc2e23058f1",
      "parents": [
        "9d5ccec86d60c9ddd811836b9a2bc28d0b3d11fe"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 19 15:56:53 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 19 16:18:27 2011 -0700"
      },
      "message": "Cleanup resolution of type, field, method indexes\n\nWhen resolving a type_idx of a static field, you cannot assume the\ntype_idx refers to the class that actually provides the storage, it\nmight be a subclass. The compiler now resolves to the storage class if\npossible at compile time, otherwise it reverts to the slow path.\n\nWhen resolve field and method indexes, you need to know if a field is\nstatic or instance and if a method is direct or virtual. Previously we\ntried to guess, which led to problems in classes that had one of\neach. Now the compiler resolves which kind of field and method based\non the context of class definitions and dex instructions.\n\nChange-Id: I31826dc90562057eadd81f39d6369aa1216509af\n"
    },
    {
      "commit": "9d5ccec86d60c9ddd811836b9a2bc28d0b3d11fe",
      "tree": "3a65213e8238770bb62ec54c8d82d230be405621",
      "parents": [
        "9086572fa809d1a19d886b467e4da3ce42016982"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 19 13:19:50 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 19 15:06:39 2011 -0700"
      },
      "message": "Implement as much of VMDebug as we can reasonably do right now.\n\nNo hprof and no method tracing, but everything else.\n\nChange-Id: Ifccd1f08e31f34b947c30f1211db788aae674d81\n"
    },
    {
      "commit": "9086572fa809d1a19d886b467e4da3ce42016982",
      "tree": "15e28b57d4500d7daff225f993affabbbd22cefb",
      "parents": [
        "47d913865f35576b39a3b7f17720c344a6b99fa5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 19 11:11:44 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 19 13:06:22 2011 -0700"
      },
      "message": "Fix for implicit null test for oat.\n\nThis change also cleans up the notion of the callee save method with a\n\"IsPhony\" call. Stack visitors check whether the frame they are on has a\nlegitimate method with \"HasMethod\".\n\nChange-Id: I8ac0fdd595c1e764fdc22cfa9c6a394595f7e141\n"
    },
    {
      "commit": "25c3325bf95036bf325fc7cb21b4fd6d40282857",
      "tree": "58d95f906ca62f9cf69106c459db972e32af01a0",
      "parents": [
        "e5de95b3f9609e02fefd7cda7b21f30c9412eb4c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 15:58:35 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 19 09:31:34 2011 -0700"
      },
      "message": "Fix compiler class initialization to properly deal with super classes\n\nAlso moving active parts of compiler_test to be oat tests including\nIntMath and Invoke. Added an interface invocation test case to Invoke\ntest. Changed Compiler to CHECK that it is not used once the\nRuntime::IsStarted, forcing some jni_compiler_test to have two phases,\none for compiling before Runtime::Start and one for JNI operations\nafter the Runtime::IsStarted.\n\nFinally, fixed Class::CanPutArrayElementFromCode by removing\nCanPutArrayElement and calling IsAssignableFrom directly.\n\nChange-Id: I52ca4dbc0e02db65f274ccc3ca7468dce365a44e\n"
    },
    {
      "commit": "081be7fcd72490937e188e9ef56e72df06b7b006",
      "tree": "02037944700df5c68c209fefb2bd00b0bc1c60fa",
      "parents": [
        "29f2742a478e4f5bd2ec7473410c5e5e7134a6f2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 18 16:50:26 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 18 17:21:57 2011 -0700"
      },
      "message": "Implement Object.clone.\n\nAlso add a conditional to Thread to keep tests running.\n\nChange-Id: I02145973af0fca823acb689e04912c2020d9c650\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": "3a7b4f26387b3529899f3cf16cdd6f1e200ded80",
      "tree": "c8f743def22ea61bf7bf63af029085bf8ee5ca23",
      "parents": [
        "81eccc06e0adae55e57008e9e61a25920569d5b9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 17 15:01:57 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 17 15:03:18 2011 -0700"
      },
      "message": "Class.getDeclaredConstructorOrMethod\n\nChange-Id: I96e39e18d099b683c690bccc1ba93f310b3ee823\n"
    },
    {
      "commit": "85d1545e985ac689db4bad7849880e843707c862",
      "tree": "dbda9214657085a3cbb77b323766da585e133a36",
      "parents": [
        "dcb3dd8bfd6e2d5935442fe8671a2f6326a1e4e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 17:33:01 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 17:38:56 2011 -0700"
      },
      "message": "Add packing to class Thread.\n\nOtherwise, code compiled on the host can use different offsets than\nwe need for the same structure on the target.\n\nAlso add commented-out code to start up the various GC daemon threads.\nMore Class native methods need to be implemented before that will work.\n\nChange-Id: I618b647b92378eec1b25cee469c8cfccf42f21fd\n"
    },
    {
      "commit": "9a195c922e1240716e4faf610fed21cc3f7f6fac",
      "tree": "fa20b3efc72e97fac75cb1b39449df028c55023b",
      "parents": [
        "141e68b26eddbb83d243797d3e1c99ed00c7828d"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 16 13:26:02 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 16 14:07:45 2011 -0700"
      },
      "message": "Fix array-put-object\n\nChange CanPutArrayElementFromCode to take an object and a class, rather\nthan two classes.  This allows the generated code to skip the null check\non the element (I believe this was the plan all along, but I must have\nforgotten and the current codegen was dereferencing the element to find it\u0027s\nclass without checking for NULL).\n\nChange-Id: I11865e0e625ab0e800718398fd911733718e6ce9\n"
    },
    {
      "commit": "54e7df1896a4066cbb9fe6f72249829f0b8c49c6",
      "tree": "c7889163c116637001c98270f897d41ca02ce8a5",
      "parents": [
        "a0a764a1f5757f0f7ffa695b855b9d0ac8c2e455"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 11:47:04 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 11:47:04 2011 -0700"
      },
      "message": "Various bits of cleanup.\n\nMost notable: PrettyField now includes the type (but, like PrettyMethod,\nlets you turn this off), and there\u0027s a new PrettyClass, and PrettyType\nhas been renamed to PrettyTypeOf.\n\nI\u0027ve also moved the dalvik \"sync\" stuff into files named \"monitor\", and\nmade some of the implementation details private.\n\nChange-Id: I39ea79b45e173f9ebbf9878bcead207766a5653f\n"
    },
    {
      "commit": "a0a764a1f5757f0f7ffa695b855b9d0ac8c2e455",
      "tree": "0b9b1b6671797d2b483717cfd0c583b89f18de8a",
      "parents": [
        "5f79133a435ebcb20000370d56046fe01201dd80"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 16 10:43:38 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 16 11:18:07 2011 -0700"
      },
      "message": "Added some utility functions for register maps.\n\nThese should be useful for the garbage collector.\n\nChange-Id: I9503af6338031dd8726498e11035758076530f68\n"
    },
    {
      "commit": "5f79133a435ebcb20000370d56046fe01201dd80",
      "tree": "974c4610e30e8cc950e6e461e66b939361cb2bbe",
      "parents": [
        "78128a63b2615744760b7f8ab83df9764a5d4a95"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 15 17:45:30 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 10:56:44 2011 -0700"
      },
      "message": "Implement monitors.\n\nChange-Id: Ifc7a801f9cbcdfbc1e1af5c905261dfadaa60f45\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": "e23d93ca1631ac5598d0f373c11d954b23ff586b",
      "tree": "8c3cea9acad87908de3209bccbd725b903a0b96a",
      "parents": [
        "98eacac683b78e60799323e8c7d59e7214808639"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 15 14:48:43 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 15 14:48:43 2011 -0700"
      },
      "message": "Added method fields for register map. Populated by verifier.\n\nThe register map consists of 2 ByteArrays, 1 for the header and 1 for\nthe actual data.\n\nChange-Id: Ibd7455a2eff7572587dabff7dd67fd810ce21f84\n"
    },
    {
      "commit": "8692721dd8a3679ca874c3d1be0cecb62ff148f6",
      "tree": "abd3801c4b25dfd1ddade53285609808be4b2ae3",
      "parents": [
        "161928613d3f097108319de60494fab1aab8d48a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 11:31:11 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 11:39:41 2011 -0700"
      },
      "message": "Fix ClassLinker::LinkInterfaceMethods bug\n\nAlso:\n- Expanded class_linker_test with additional vtable and iftable coverage\n- Added -fkeep-inline-functions where it works on host for debugging\n- Added disabled test for running command line Fibonacci with oatexec\n\nChange-Id: Ie295551e42493c7cca05684e71e56bf55bd362a4\n"
    }
  ],
  "next": "161928613d3f097108319de60494fab1aab8d48a"
}
