)]}'
{
  "log": [
    {
      "commit": "814e40397fe6c8a2c645bae99f356dbddd6dbe18",
      "tree": "39e7de56ada11f00d4541e4bdb2e76dad6cc5c0a",
      "parents": [
        "d2fbb2bd2448f0872878258727aa1eb2558a0c3b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 12:07:56 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 14:02:10 2011 -0700"
      },
      "message": "Add some missing JNI string functions, GetObjectArrayElement, and all the primitive array region functions.\n\nThis also pulls the UTF-8/UTF-16 functions out of class String.\n\nChange-Id: I75936b84fd619c9cf91f6e6a6037488220b05781\n"
    },
    {
      "commit": "762400c72e9c2491fb66364908c3717f8f1289ec",
      "tree": "b8e8988d7c122f70eef4e118540e14499a3c3b71",
      "parents": [
        "e5b0dc83537bf915c6abe4efeae6e501daf75a27"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 12:14:16 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 12:14:16 2011 -0700"
      },
      "message": "Support for return PC offset and frame size in JNI compiler.\n\nFor stack crawls we need the return PC and the size of frames, store\nthis information in the Method.\n\nChange-Id: Ic616b4f78ca571c837e5c8473607285a7e8b58f0\n"
    },
    {
      "commit": "e5b0dc83537bf915c6abe4efeae6e501daf75a27",
      "tree": "09b9ed8051636953f46f33c1e736dcdaee506711",
      "parents": [
        "1a18c8c1c0e4ea1ff06177e93c7ff703376dcee2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 09:59:02 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 10:52:37 2011 -0700"
      },
      "message": "Add \"class Throwable\" and rewrite exception throwing to use JNI.\n\nChange-Id: I79836075337eedfc5923ebff028176615ffd3598\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": "4873d465a1eb6dfbdeddb085c81239d39db60c42",
      "tree": "8eb73bf441d631b34252d8e358eff66718b63aab",
      "parents": [
        "94496d37e42dbbbcf515f43ccb9a03ac82e48927"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 21 15:23:39 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 22 09:27:33 2011 -0700"
      },
      "message": "Move static field storage to end of Class instance\n\nChange-Id: I90061999c9eef9d900e4269508b983a61f48b264\n"
    },
    {
      "commit": "edcc09c737b00462881f147602656739d029571e",
      "tree": "06f763e94567b687c229743f884ce87deee818ed",
      "parents": [
        "c143c55718342519db5398e41dda31422cf16c79"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Aug 21 18:47:05 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Aug 21 18:47:05 2011 -0700"
      },
      "message": "Cleanup.\n\nChange-Id: I15704e76662bcf9bc10560679500c98a4baa68ab\n"
    },
    {
      "commit": "c143c55718342519db5398e41dda31422cf16c79",
      "tree": "b2d80bd5dc63e0eb0bea372651de12dcaf2e7f0d",
      "parents": [
        "195487cb0b11e64917df01f8d55671344db2e97f"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Aug 20 17:38:58 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Aug 21 17:42:55 2011 -0700"
      },
      "message": "Updating the compiler to use the new-world model\n\nNew compiler is integrated and passes first test (Fibonacci).\n\nChange-Id: Ic5448ab89ebd22baa30fafc3d1300324687d1fc2\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": "c4fa2c0c6302d3d9979e8d8a4030499c10d6b68b",
      "tree": "9060e2d8c31a02b639ea2fe3a0005be890a9647e",
      "parents": [
        "a663ea5de4c9ab6b1510fdebd6d8eca77ba699ae"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 21 03:00:12 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 21 13:53:18 2011 -0700"
      },
      "message": "Add Method::dex_cache_*_ short cuts to declaring_class_-\u003edex_cache_\n\nChange-Id: I6e14b296abdd74b7fe810fc43d814931fd8cb770\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": "68f4fa09cfd72b4292cbe7a213f03da7902ba775",
      "tree": "cf7e20d2c2f710141e2b760b3ae67697dcffe53e",
      "parents": [
        "a0b8feb34a8492c6b8d430f6ca0716e7ff4f4c57"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Aug 21 10:46:59 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Aug 21 10:46:59 2011 -0700"
      },
      "message": "Add an Array::Alloc convenience for the compiler.\n\nChange-Id: Ie65321d7439ac0ff0b4a39cb507710df088baa6d\n"
    },
    {
      "commit": "9cff8e13d41825c4f3f0127af061e94b06114fc8",
      "tree": "3425941132a8b1406126015cf9c45fd661b574a2",
      "parents": [
        "67bf885d62b1473c833bece1c9e0bb624e6ba391"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 18 16:47:29 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 19 22:01:22 2011 -0700"
      },
      "message": "Convert Class::descriptor_ from StringPiece to String (as part of image loading)\n\nChange-Id: Iab5ffa353661a7c06ee79af1f40d399a53777174\n"
    },
    {
      "commit": "cdf53120cd5a73cbedc1654e22542848468c0d2f",
      "tree": "cbe7f43df0d424dd93c3561aefa7cb5414218b5d",
      "parents": [
        "0297290eb61c72c420c72b914e46cc176e1bfb42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 19 15:46:09 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 19 16:14:26 2011 -0700"
      },
      "message": "Implement jfieldID and jmethodID properly.\n\nChange-Id: I048107fbca4e21cf34e8fda6defdbc0b97421cf0\n"
    },
    {
      "commit": "cdd1d2d3fee0711b8b11db99f2dfb80113520100",
      "tree": "3c88f60d82232e887a6a38e8b92066cd4802260a",
      "parents": [
        "bfaadc83460726b049614a8616effbb03a247552"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 18 09:58:17 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 19 10:35:57 2011 -0700"
      },
      "message": "Move JNI compiler tests to use pure JNI.\n\nImplement JNI upcalls for x86.\nFix off by 1 bug in JNI calling convention for x86.\nFix bugs in ARM JNI upcalls.\nStraw man JNI invoke nonvirtual implementations.\nMatch va_start with va_end in JNI internals.\n\nChange-Id: I64d62eca41ac726ae0d007c1f41d2193db5be82e\n"
    },
    {
      "commit": "bfaadc83460726b049614a8616effbb03a247552",
      "tree": "b90f575044f6bf74509769b7d3e4efbd3c936c3f",
      "parents": [
        "de69d7f8c32be83c405bf5a9c5f15fc655f578fa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 17:36:58 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 17:36:58 2011 -0700"
      },
      "message": "Replace a dangerous function with the convenience function callers actually want.\n\nChange-Id: Ic22dc4db36850507760a917033c254b88749b657\n"
    },
    {
      "commit": "4a289ed61242964b921434de7d375f46480472a1",
      "tree": "fa1a25f1eec3ef79fd9765e9c89ce21afbd8144c",
      "parents": [
        "44753c3908fcd5ccc066bf0dceddeabfeacf9f24"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 16 17:17:49 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 18 12:25:10 2011 -0700"
      },
      "message": "Work on heap and space initialization to support image loading\n\nChange-Id: Icab25efa4dee17e4b6c6e97e38f63f5ab8a8a005\n"
    },
    {
      "commit": "710a0cbb4b0af03ce8651ed7936437c73250045e",
      "tree": "161a43b45307333ffba2b9751ba4ed0a5b16e72c",
      "parents": [
        "a5b897eae4b6f9f9608faa9eada7ddf42bf1bfd2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 14:32:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 14:32:37 2011 -0700"
      },
      "message": "Extra tests (and a bug fix).\n\nI\u0027ve also added a trailing \" \" to the CHECK/UNIMPLEMENTED macros\u0027\noutput, to make it more natural for callers to add their own detail.\n\nChange-Id: I59bc51ac54aaff93f37a6b35082301e19db91304\n"
    },
    {
      "commit": "a5b897eae4b6f9f9608faa9eada7ddf42bf1bfd2",
      "tree": "2bcc495bc93b435c03807d0b24434f11d5baa0b7",
      "parents": [
        "83ab4f3b4e5544dc78c059e139f20cf93e5c6ce6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 11:33:06 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 12:58:11 2011 -0700"
      },
      "message": "Add semi-functional exception throwing.\n\nWe still need a way to call \u003cinit\u003e on the new exception instance, in particular.\n\nChange-Id: I839365d20288208cb8847253380cf654a35aeddd\n"
    },
    {
      "commit": "83ab4f3b4e5544dc78c059e139f20cf93e5c6ce6",
      "tree": "589783014bbaaeabcddb4d8dcef677ea717f82de",
      "parents": [
        "289da82ae82438ab3aed1898c82fd87c16846e74"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Aug 15 20:21:39 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Aug 16 12:49:38 2011 -0700"
      },
      "message": "Add an implementation of GetMethodID.\n\nAlso, add an initialization check to GetStaticMethodID.\n\nChange-Id: I45f3aa3bc335b697cfe7d3308ba36bd9911ebe49\n"
    },
    {
      "commit": "289da82ae82438ab3aed1898c82fd87c16846e74",
      "tree": "31cff59beae91556fb85aa2e11da1697b6feea67",
      "parents": [
        "04b63fd60de0d9e6f07763511a1a9622accfeed7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 10:11:20 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 10:35:27 2011 -0700"
      },
      "message": "Add bounds checking to our internal array get/set methods.\n\nChange-Id: Ia570615e6b4ea81d796b6bf720444c62830a4f89\n"
    },
    {
      "commit": "04b63fd60de0d9e6f07763511a1a9622accfeed7",
      "tree": "7eee41b63389eec5b1631a3e6b45980ae3beda32",
      "parents": [
        "d46f9dbe1c7c2d4cab36026c5653a29548c3ded1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 09:40:10 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 09:40:10 2011 -0700"
      },
      "message": "Using \u0027size\u0027 to mean anything other than \"element count\" on a collection is confusing.\n\nThis name was okay on Object itself, but it\u0027s confusing on its array subclasses.\n\nChange-Id: I3d545d8c1001a157a68eefd34d6d411f4408ec9e\n"
    },
    {
      "commit": "d8ddfd5eadde1d5f53ef1419f529c799233eaa62",
      "tree": "bf891ae82d622da180d7857d9a86db37b26dbe32",
      "parents": [
        "3cd987f5c2d152b82a530207d6eeac064f67739b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 14:32:53 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 14:55:18 2011 -0700"
      },
      "message": "Implement JNI NewBooleanArray et cetera.\n\n(Primitive types only. NewObjectArray to come...)\n\nChange-Id: I2f54031d96062d666089c91ba40e16028ae21bd4\n"
    },
    {
      "commit": "db4d54081f09abcbe97ffdf615874f2809a9e777",
      "tree": "86d4b6cdbfda6538ebf3fbb2f362209eb6867ce5",
      "parents": [
        "350dad1bb785281d6740633f219a2832feda6ff3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 12:18:28 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 15 10:03:22 2011 -0700"
      },
      "message": "First pass of ImageWriter\n\nChange-Id: I4f189587a2e3cc1c265200b8fa64321b299947eb\n"
    },
    {
      "commit": "9b9ba28b1277b4ddb967c5a968c6d550febce6af",
      "tree": "d895f4134ac8d0b7e5b86307c0ed9aef76606a40",
      "parents": [
        "fe909f29eb417199497a640abd78057fa83c076c"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 14 15:30:39 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 14 15:30:39 2011 -0700"
      },
      "message": "Implement upcalls with compiled JNI callback bridges.\n\nChange-Id: Ib475a5957a3e2596a812df1314fbc73a96f01725\n"
    },
    {
      "commit": "53b61314370c49354ed6f8d616d6a9a182410fc1",
      "tree": "e744dfef8b45438bb992b08633439522095cd967",
      "parents": [
        "5511f2161d71ac67a9bc140cbbca5d9637ab7499"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:28:20 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:28:34 2011 -0700"
      },
      "message": "Use the UNIMPLEMENTED macro everywhere.\n\nAs suggested in review.\n\nChange-Id: Ic14c91a622b545b4800ef021dfb501fb09cbda9d\n"
    },
    {
      "commit": "5381cf941d26030199fcdbe61a614ff01e55a27c",
      "tree": "225eca00d1593e63f88a73459a52f342a7942fc4",
      "parents": [
        "2fb9753c58ce1a511fd6996856840120eb2930db"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jul 27 00:28:04 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 21:14:43 2011 -0700"
      },
      "message": "Handle double and long on the Managed side, and follow AAPCS on the Native side.\n\nChange-Id: I43a8fa36cb79fb438f075986a46c66ab8258e725\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": "35baaab2a79014f35e225b189f6dbec1b4ba9542",
      "tree": "78b714e339b12c51b48a038d4a9d8c8c2397b919",
      "parents": [
        "7833bd261d78be2c42284031f169a62c9065cc3c"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Aug 10 16:18:03 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Aug 10 16:24:08 2011 -0400"
      },
      "message": "Combine InstanceField and StaticField and Field.\n\nThis gives us full consistency with the java.lang.reflect.Field type.\n\nChange-Id: Ib17c7fca4fe2c912fa9f5e37da2be0aebb8def9c\n"
    },
    {
      "commit": "7833bd261d78be2c42284031f169a62c9065cc3c",
      "tree": "79b5625e5f2ef2f69bd6890de8e961548468b178",
      "parents": [
        "f7ed11ae81002f83b78012c4bbe01e5e994ecc3b"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Aug 09 18:31:44 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Aug 10 15:24:37 2011 -0400"
      },
      "message": "Store static field values in arrays.\n\nEach static field is stored in one of three arrays:\n - references are stored in static_references_\n - 64 bit primitives are stored in static_64bit_primitives_\n - everything else is in static_32bit_primitives_\n\nChange-Id: I1c0e182582f776c62edbd9bd97ffd4fd7e516c99\n"
    },
    {
      "commit": "f7ed11ae81002f83b78012c4bbe01e5e994ecc3b",
      "tree": "01ff697d30fe8cdb65288ad953dd2421a3d71cff",
      "parents": [
        "df4189cc2381be21cb0a1586f4e079d394c4d057"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 17:55:51 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 18:31:22 2011 -0700"
      },
      "message": "Adding Object::InstanceOf and Class::IsAssignableFrom\n\nSummary:\n- Add Object::InstanceOf and Class::IsAssignableFrom\n- Fix Cloneable and Serializable interfaces on arrays to be \u003d\u003d with FindSystemClass results\n- Changed Object::Alloc(Class*) to be Class-\u003eNewInstance()\n\nDetails:\n\nAdd Object::InstanceOf and Class::IsAssignableFrom\n\n\tobject.h\n\tcommon_test.h\n\tobject_test.cc\n\nFix bug where Cloneable and Serializable where created with AllocClass\nand never inserted in the classes table with FindSystemClass by just\ncreating them directly with FindSystemClass\n\n\tclass_linker.cc\n\tobject_test.cc\n\nChanged Object::Alloc(Class*) to be Class-\u003eNewInstance()\n\n\tclass_linker.cc\n\tobject.h\n\nChange-Id: I528767fff43aff32c8dc4f7a2d4157598a7dbb89\n"
    },
    {
      "commit": "df4189cc2381be21cb0a1586f4e079d394c4d057",
      "tree": "21940c869f89ea7b0b4d1acc4e15323d3bdb1e76",
      "parents": [
        "0024d6cb8043a8967fdfb20561f321b2fe65c41f"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Aug 09 17:10:28 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Aug 09 17:28:34 2011 -0400"
      },
      "message": "Follow up from Carl\u0027s comments on new primitive array types.\n\nChange-Id: I0c53d5c327070034562051f3f18582a9d108075c\n"
    },
    {
      "commit": "4bfab0a48a7e94597498b3e8cd520c4e6df0dcd8",
      "tree": "5f8936a93e276fa0f6c1f324eb93dd72c184079e",
      "parents": [
        "744ad05e473be49033d38f30aab63891ca4ee5c3"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 07 14:08:30 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 07 14:08:30 2011 -0700"
      },
      "message": "Remove obsolete members that unintentionally reappeared when rebasing.\n\nChange-Id: Iebe2514a58e23f1be1bf4326f27c00d4dbcbce88\n"
    },
    {
      "commit": "f88c95285b2d105a504d18736fe477f74c8c5b45",
      "tree": "f8ee2b7dd84e77b2d5deb9bb7d730797101ae6f9",
      "parents": [
        "a85f2487db248c9764ccf053aa3ac0807deae35c"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sat Aug 06 15:47:38 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sat Aug 06 15:47:38 2011 -0700"
      },
      "message": "Minor clean-ups.\n\nStandardize on DISALLOW_IMPLICIT_CONSTRUCTORS to avoid assignments and\nconstruction of mirror objects.\n\nNormalize some whitespace usage and wrap a long line.\n\nRemove the obsolete and commented out class Size method.\n\nChange-Id: I60b1929087e9be1d84d4ecae20988dce90a7f8be\n"
    },
    {
      "commit": "fd687c537666996be8364399c111636b63f14779",
      "tree": "383871d8c2b4646f3536a1b5c4186485ec230e96",
      "parents": [
        "7e93b50433cde2a44d99212e8040299bde498546"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Aug 04 19:27:35 2011 -0700"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Aug 05 11:44:52 2011 -0700"
      },
      "message": "Create templates for primitive types.\n\nIn preparation to move static fields into their own array\nmembers off of class.\n\nChange-Id: Ic524e12952af985d8ae16a05b5f4e50676a9c136\n"
    },
    {
      "commit": "7e93b50433cde2a44d99212e8040299bde498546",
      "tree": "5365abc77a3ada7f50bfc06b5772e03b86ee8f3c",
      "parents": [
        "8860c0e8491a27aa03b55f2417478fb3629611d6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 04 14:16:22 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 04 22:59:02 2011 -0700"
      },
      "message": "String intern table and support for unordered_map\n\nChange-Id: I22d86d060780552675c5d7f14a98ffde480eac82\n"
    },
    {
      "commit": "8860c0e8491a27aa03b55f2417478fb3629611d6",
      "tree": "fc23c244c7c46fe6f58b522eeef6f9b32e4ea5aa",
      "parents": [
        "74eb46ab15c5b9cb39bf15246db84aea7fd4cc27"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Aug 04 17:36:16 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Aug 04 17:36:16 2011 -0700"
      },
      "message": "Use the method descriptor for prototype and return type comparisons.\n\nChange-Id: If2623b53e069d6f51c08849ac2798f792d465234\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": "8989d990e5be3982ab5ba4e7aa574652f71632ca",
      "tree": "a519562a906c3bca93250c43fd638cc9e12603d8",
      "parents": [
        "f7e85a512c343c474f64791a1f5e26a5df537653"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Aug 02 13:39:42 2011 -0700"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Aug 02 13:46:29 2011 -0700"
      },
      "message": "Get ClassLinker out of the business of allocating strings.\n\nString is now the only place we allocate strings. This requires\na bit of finesse in order to make char[] available early during\nbootstrap.\n\nChange-Id: I494a2b0691b58fdafc96513c1e697a88d437c805\n"
    },
    {
      "commit": "f7e85a512c343c474f64791a1f5e26a5df537653",
      "tree": "cdd122858f5b0cc7fbdb483f9cd10c8f21897390",
      "parents": [
        "905786d6c484f464724b5dfb425af409d48d3bbf"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Aug 01 18:45:58 2011 -0700"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Aug 02 10:58:07 2011 -0700"
      },
      "message": "Use Java strings for Method\u0027s name.\n\nChange-Id: Ibf0a847358a1b480069f49a0aefc783ad96a0332\n"
    },
    {
      "commit": "14150748d11768f94df640ef8bb6a5022bd05874",
      "tree": "fceeae0df4e938e260fbd2415c729c163281848e",
      "parents": [
        "23103407a42e9a1381482994029a24e177127d25"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Jul 29 19:04:44 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Aug 01 10:55:39 2011 -0700"
      },
      "message": "Use Java strings for Field\u0027s name.\n\nChange-Id: Ia75c9c0ed0a802e52e415d856a101affb9fddd8a\n"
    },
    {
      "commit": "cbe9fc0bea5907e23e11a813775cea3bec4c76bb",
      "tree": "8d0bd485402765e524d21407c2869545ff775c5d",
      "parents": [
        "779f8c7c847265b056696bd3be4d40abe64cf245"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Jul 29 18:59:50 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Aug 01 13:19:27 2011 -0400"
      },
      "message": "Add equals to C++ String\n\nThis is a baby step towards using String instead of StringPiece.\n\nChange-Id: I34baa1c91e99f78151ec1fa9175eb5df30fa0292\n"
    },
    {
      "commit": "46cdd4bd0f69c519fc31114bdec2cb8a9c3b162d",
      "tree": "25585973903372c2b9d67e8d7fd9e941881f4293",
      "parents": [
        "75cb3b477be3757a0351fb6ab1cb70751a71e2bf"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Jul 28 17:40:48 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Jul 28 18:41:45 2011 -0400"
      },
      "message": "More field order validation.\n\nThis is to set me up to remove the redundant fields like declaring\nclass and name from field and method.\n\nChange-Id: Ie834c615b33caed89c443fa23c25b7757d4b7ef3\n"
    },
    {
      "commit": "75cb3b477be3757a0351fb6ab1cb70751a71e2bf",
      "tree": "dba907e5869a2fd30b405875fd368af82440482a",
      "parents": [
        "ac5b9e22d32c4f986783a2207b08ade769619f6f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 28 02:13:36 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 28 10:21:47 2011 -0700"
      },
      "message": "Add ClassLinker::VisitRoots\n\nAs part of implementing VisitRoots, created ClassLinker::class_roots_\nwith enum of offsets. This required revising ClassLinker::Init yet\nagain, so took the opportunity to simplify and document ordering\nrestrictions. Also simplified special cases in FindClass, as well as\nmaking a fast path for FindClass and CreateArrayClass for post\n::Init. Made ClassLinker::Alloc* conveniences private after realizing\nthey are only used externally by tests. Sprinkled some\nClass::IsSynthetic validation in ClassLinkerTest along with adding a\ntest for VisitRoots. Updated kJavaLangDex to have a java.lang.String\nto work with the simplified ::Init code.\n\nChange-Id: I76b92c0bde5da32d9ebc8d3702d8e7ac7972dda7\n"
    },
    {
      "commit": "ac5b9e22d32c4f986783a2207b08ade769619f6f",
      "tree": "736d93e3df77289024330a641f8090acac7e0e43",
      "parents": [
        "8ecd08cde96e2463123a54eaec9429149f53ed2f"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Jul 27 15:11:13 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Jul 28 10:17:30 2011 -0400"
      },
      "message": "Validate the C++ and managed fields are ordered consistently.\n\nChange-Id: If0d0fcc2ffcc0172bd86fd1714111857af572d6a\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": "ae3ac01d7176b42b99bef3c6ae019869c8664426",
      "tree": "fa9948fcf3eb725fef4bb3eeeaaa10810e5c03e2",
      "parents": [
        "a40f9bc48afe3a9d38be2fa298fece13ed82ba28"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 27 01:30:28 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 27 09:55:12 2011 -0700"
      },
      "message": "Expanding ClassLinkerTest/LibCore to cover more Class details\n- Ensure SetReferenceOffsets is always called\n- Change Field to use StringPiece instead of const char*\n- Removed \"shrunk vtable\" logging noise\n- Fix small bug in Class::Status logging\n- Rename Field signature to descriptor for clarity\n- Add Class:IsSynthetic\n\nChange-Id: I453f480ad7a87a6a391418684771c92d62f116c9\n"
    },
    {
      "commit": "a40f9bc48afe3a9d38be2fa298fece13ed82ba28",
      "tree": "ee1597be70dc8f064f9c7e86e1eb11670c894129",
      "parents": [
        "3aaddbb438daaaa37419d281d95fbe21e64982a6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 26 21:26:07 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 26 21:27:40 2011 -0700"
      },
      "message": "Add ObjectArray::CopyOf\n\nAs part of doing this, moved Heap::Alloc* helpers to the corresponding\nclasses in object.h to break heap.h\u003c-\u003eobject.h cycle due to use of\nHeap from ObjectArray::CopyOf (which is templatized and needs to be\ndefined in .h file).\n\nChange-Id: I1870af6e9dc6552820034ead5e20d13ae4da67da\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": "913af1bd90a6e8fd56f1f851db1f098636dae6a5",
      "tree": "48b537cdccf2942a69acf75ed04f7ec7c24f5bd2",
      "parents": [
        "fa0fead4a05a445dac1ef2d4ed828e55d3adfea9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jul 23 21:41:13 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Jul 24 15:54:25 2011 -0700"
      },
      "message": "Heap allocate class supporting arrays for fields, methods, interfaces\n\nOther supporting changes\n- fix ref to reflect\n- add shared array_interfaces_ array_iftable_\n- fixed issue with loaded class overwriting special object_size_ cases\n- added Class::interfaces_idx to avoid reuse of interfaces_ for non-Object data\n\nChange-Id: Ibcbeee6ac001baefdbba9a194123b3c6fe488f1f\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": "45a76cb99104a222d6a9bd768a084893dcb7cf30",
      "tree": "995557ba95942309ffe9c4a13819a10da8c4b4bb",
      "parents": [
        "69759eaa6fd4386f1e6d8748052ad221087b3476"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 21 22:00:15 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jul 22 15:16:43 2011 -0700"
      },
      "message": "Exception and suspend count polling on JNI bridge return.\n\nChange-Id: I0e5597fcbdcdb88100b18d63323e7ba8d27f13fe\n"
    },
    {
      "commit": "69759eaa6fd4386f1e6d8748052ad221087b3476",
      "tree": "9f37e49625a6e528405ed28ae8f5ac515ffedd67",
      "parents": [
        "dbd05642d4157b65d837da30c1d8df0ef577a378"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jul 21 18:13:35 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jul 21 18:13:35 2011 -0700"
      },
      "message": "Add allocation and garbage collection infrastructure.\n\nChange-Id: I4b04cdfdf18afb75a7b0df87b509e8156b4a932b\n"
    },
    {
      "commit": "df20fe0c097073f75f22d16e72fd3636a31d3ca1",
      "tree": "a960361ff7e6eeaf5962cc515e142b18da4176b3",
      "parents": [
        "176f59cd8997a0491ea5ccdea8e9dfff85dd32d6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 20:34:16 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 21 10:50:18 2011 -0700"
      },
      "message": "Support for synchronized native methods.\n\nThis change adds support for synchronized native methods by using\ncalls to MonitorEnter and MonitorExit on the JNIEnv*. There is\nsome tidying of the assembler and a straw man JNIEnv implementation.\nThe JNIEnv implementation just warns when MonitorEnter/Exit are called\nand doesn\u0027t adhere to the correct JNIEnv layout.\n\nChange-Id: I90ed6ec8f85f5b01b929f16e0dbdecadd0b01359\n"
    },
    {
      "commit": "b033c75ebda80ac75f936366fe78d1edf5cec937",
      "tree": "7a457c99acf23b0cc9b86b2a6d8cc2593e85f127",
      "parents": [
        "cdc8de4642ca447a7ed205f0d2203cb217e48aad"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 12:22:35 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 12:22:35 2011 -0700"
      },
      "message": "x86 JNI compiler and unit tests.\n\nChange-Id: I4c2e10328961a2e8e27c90777fe2a93737b21143\n"
    },
    {
      "commit": "be9778540dfc70d154bb17f722c0b7fe454e2a8f",
      "tree": "0061fc2a41d1b0ce27f06c1067834ebe10ab096b",
      "parents": [
        "a331b3cc392132c7333d36649a8310f38f4822cc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 19 14:54:54 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 19 15:19:54 2011 -0700"
      },
      "message": "C++ and DCHECK tidying\n\nChange-Id: I14eb1887713883cfdfc614b8658281d17acc48df\n"
    },
    {
      "commit": "a331b3cc392132c7333d36649a8310f38f4822cc",
      "tree": "aa8de770ebe8c6c73862fdbcd80a8ac80e1a8611",
      "parents": [
        "6cc18456b6d0d1348ad1d64116b7ab78108ff814"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 18 17:47:56 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 19 10:26:47 2011 -0700"
      },
      "message": "New ClassLinker::CreateArrayClass\n\n- Added ClassLinker::CreateArrayClass for use by ClassLinker::FindClass\n- Replaced hand crafted ClassLinker::char_array_class_ initialization with call to FindClass\n- Removed ClassLinker::LoadClass public interfaces, kept only one internally\n- Removed JType\n- Cleanedup gtest naming convention\n- Added RuntimeTest for common test initialization such as Thread::Init\n- Switched from assert to DCHECK which found some bit rotted code\n- Expanded class_linker_test to array classes and also also array rank\n  and interface count in existing cases\n\nChange-Id: Ie3d71c8b434c8521f4ea8d2f07b1c4c905ee1d90\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": "a080803c2f0af91cc0de18919a762f4fcd5cce29",
      "tree": "9089f2704cf5eee7020142c87c35d960835a5c7e",
      "parents": [
        "a7f4f4888502aaa5c137cb17c9b482053285aebf"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 18 00:39:23 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 18 12:11:08 2011 -0700"
      },
      "message": "Setting klass_ fields of heap allocated objects\n\nChange-Id: Ib1ab43254430497cce0660156394eebddd2cc445\n"
    },
    {
      "commit": "a7f4f4888502aaa5c137cb17c9b482053285aebf",
      "tree": "5b8d08dfd016f8cbf42f0fe67f3c759e70ede503",
      "parents": [
        "1f359b08f5ad33ae72e4073b86a9257fe1ed11e5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Jul 17 17:01:34 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Jul 17 17:46:22 2011 -0700"
      },
      "message": "Move allocation of fields and methods to heap\n\nAlso make Object and subclasses constructors private to prevent\naccidental non-heap allocation.\n\nChange-Id: If9513967ba012748eb0d54c04e92df0f0944d385\n"
    },
    {
      "commit": "1f359b08f5ad33ae72e4073b86a9257fe1ed11e5",
      "tree": "3f22a152793289174822b023ad279e125a307418",
      "parents": [
        "ffe6736397d17457188727510f0a2953f69a383a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 14:27:17 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 14:27:17 2011 -0700"
      },
      "message": "Improve CHECK_\u003cop\u003e logging.\n\nThis patch lets us show the lhs and rhs when a relational check fails. (I show\nboth, even though that looks silly in cases like CHECK_EQ(rc, 0) where we\u0027ll\nsay \"rc\u003d-1, 0\u003d0\", because it\u0027s helpful in cases like CHECK_LT(i, size()) where\nwe want \"i\u003d4, size\u003d2\".)\n\nI had to add a few operator\u003c\u003cs for enums, and fix a bunch of signed/unsigned\nmismatches, and put the StringPiece operator\u003c\u003c in the right namespace.\n\nChange-Id: I390f38bd97b3f50e12182f36ff027ca067c48d69\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": "894d0fab562badca5c2f01a5c2adc8de756c08ad",
      "tree": "5071322027c485c669df8f4ac49e3c3b3bed6761",
      "parents": [
        "ef442e6516a856fa0aed64d0a1af23d9ee8f857f"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jun 30 14:48:49 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jun 30 17:00:16 2011 -0700"
      },
      "message": "Expose functionality needed for linking.\n\nChange-Id: I5abdee1d89510b9e4c2eeb5cdab45951b5e5305c\n"
    },
    {
      "commit": "64f13408f88a473d2b799209ae40e71a251f6f11",
      "tree": "349556bf795b265fd727d165e3bb19a6a6d7c381",
      "parents": [
        "80d4dde9bf123e431e2ba21ff3e2ef794c8f6722"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jun 28 16:34:41 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jun 28 16:34:41 2011 -0700"
      },
      "message": "Collapse the synchronized and declared synchronized predicates into one.\n\nChange-Id: I789a31a8e19826111b347e9983e79a4bda8199aa\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"
    }
  ]
}
