)]}'
{
  "log": [
    {
      "commit": "f2682d5a6ce0f7de58da8fd4ec8aec200c43b92e",
      "tree": "e7669f0833a588eb5231fb4452bbac091cc5037e",
      "parents": [
        "0d666d8769714dcbc2acc4dd5b06f0deffa6e0a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 16:37:04 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 18:34:59 2011 -0700"
      },
      "message": "Fix the invocation interface.\n\nPreviously, we just cast the Runtime* to a JavaVM*, which blew up as soon as\nthe caller tried to use their supposed JavaVM*.\n\nThis also implements NewObjectArray. Running aexecd on the host, this gets us\nas far as not having an x86 CreateInvokeStub...\n\nChange-Id: Iba5f148797d053fba1c69af99b20508ea6aff5cb\n"
    },
    {
      "commit": "0d666d8769714dcbc2acc4dd5b06f0deffa6e0a1",
      "tree": "18952f6a1ec70d26c4bcea809d093c027115776e",
      "parents": [
        "4e777d4e005375a5a41c4ec3c55783c09565df0d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Aug 14 16:03:46 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 15 18:12:54 2011 -0700"
      },
      "message": "Fix JNI compiler for synchronized methods.\n\nCalls to the monitor enter/exit routines were passing the JNI env with\nthe iterator in the wrong position. Reset the iterator to make sure it\nis in the correct position for the monitor enter/exit call.\n\nAlso fix clobbering of arguments in registers when calling monitor enter\nfor synchronized methods on ARM.\n\nAlso some tidying of code/comments.\n\nChange-Id: I5bf1dd7e65d925e768411cb5865919ee5f54edbf\n"
    },
    {
      "commit": "4e777d4e005375a5a41c4ec3c55783c09565df0d",
      "tree": "f78e875fba9fb3ca7d22c4b7dd0fecda657f5976",
      "parents": [
        "d8ddfd5eadde1d5f53ef1419f529c799233eaa62"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 15 13:53:52 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 15 15:20:50 2011 -0700"
      },
      "message": "Revisions to \"First pass of ImageWriter\"\n\nCleanup from accidental commit of:\n\n    commit db4d54081f09abcbe97ffdf615874f2809a9e777\n    Author: Brian Carlstrom \u003cbdc@google.com\u003e\n    Date:   Tue Aug 9 12:18:28 2011 -0700\n\n        First pass of ImageWriter\n\nChange-Id: I0168c05d229e0c7f8059dc1ab1b46dc2dc426c53\n"
    },
    {
      "commit": "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": "3cd987f5c2d152b82a530207d6eeac064f67739b",
      "tree": "a5949cfd20841b68631cf11d6ee952cf500cbdbf",
      "parents": [
        "db4d54081f09abcbe97ffdf615874f2809a9e777"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 10:39:47 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 10:39:47 2011 -0700"
      },
      "message": "Pass the correct Thread* when calling back into Java.\n\nChange-Id: I39ff5fdcd0d787a23db19c2e39f62472d84d467a\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": "350dad1bb785281d6740633f219a2832feda6ff3",
      "tree": "40751b3075ae5a450dc00cd1cd8a9f6152791264",
      "parents": [
        "ad107abee00fb523b9fda575a40395e9d6d9510d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 09:50:26 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 09:50:26 2011 -0700"
      },
      "message": "Fix zip_archive_test on the target.\n\nChange-Id: I50d4bb7cd3252efb6b19d712badd71d06e13c433\n"
    },
    {
      "commit": "ad107abee00fb523b9fda575a40395e9d6d9510d",
      "tree": "9db5ff4af4613224ed136bedce10b88538933bff",
      "parents": [
        "650a07d237f219ee6f23cfe939118e6f9c48f4d3"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 14 15:54:24 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 14 15:54:24 2011 -0700"
      },
      "message": "Remove author attributions.\n\nChange-Id: I58d2983ce41f6b3f3a4e1bbd1d075e794b8257e3\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": "fe909f29eb417199497a640abd78057fa83c076c",
      "tree": "3482bdced2dfc5e398b02e6c5927906c8fa00e2e",
      "parents": [
        "53b61314370c49354ed6f8d616d6a9a182410fc1"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Aug 12 19:20:26 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Aug 12 20:18:33 2011 -0700"
      },
      "message": "Get should be a const method.\n\nOtherwise, the returned handler_ can still be modified.\n\nChange-Id: I59dea4aa5284f7154d3c096556e6e497890c26ca\n"
    },
    {
      "commit": "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": "b20a554613609dc372073d2ebd9fbc3925a429f5",
      "tree": "48778232d101782dfab6bb47498f39401c4ca975",
      "parents": [
        "46b92ba72247e10884714d0b683bdb5e9d9ce59d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:03:12 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:03:12 2011 -0700"
      },
      "message": "Implement a few of the easy JNI functions.\n\nExceptionCheck was the next thing we need; the others are just targets of\nopportunity.\n\nChange-Id: I1c9e50fd5b5702b6f2afc8b4a31231af2a871b66\n"
    },
    {
      "commit": "46b92ba72247e10884714d0b683bdb5e9d9ce59d",
      "tree": "85a0ba2189bef8de8e5a64b461e705967447f83e",
      "parents": [
        "e0fc0ef0facabaf44b6fd460db4469ab0dab9696"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:57:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:57:34 2011 -0700"
      },
      "message": "Factor out NeedsEscaping from the Printable* functions.\n\nAs suggested in review.\n\nChange-Id: I07efa577878b5782fc5c30ee0382d24f69d4adeb\n"
    },
    {
      "commit": "e0fc0ef0facabaf44b6fd460db4469ab0dab9696",
      "tree": "f887577ed88b685e97381dbb597bf6cc13dc6fc8",
      "parents": [
        "91779c841f8bfaf2416576d0c44fa5f50f95b60b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:39:17 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:39:17 2011 -0700"
      },
      "message": "Fix a few more scoped_ptr/scoped_array confusions, and stop tring to optimistically load non-existent .dex files.\n\nChange-Id: I0c12a731bdf1da49f2f51665181e5b4d2b423ba2\n"
    },
    {
      "commit": "91779c841f8bfaf2416576d0c44fa5f50f95b60b",
      "tree": "fc3c14d8204c8089fc4dc0c361781332b58ff9ab",
      "parents": [
        "d6c705a0ed2ea5180268366b868f25b7265da3d0",
        "330304de14dc7118b45b8e7b5bd11a172fa61701"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:37:33 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 12 17:37:33 2011 -0700"
      },
      "message": "Merge \"Create JNIEnv*s on the right threads.\" into dalvik-dev"
    },
    {
      "commit": "d6c705a0ed2ea5180268366b868f25b7265da3d0",
      "tree": "66b1cbafec1d1a51d3a5e8417503d3ee2713932f",
      "parents": [
        "22f409320323f0f7df53954ce9193436b96444dc",
        "28e76279ae857306113278223fde8e66528f4065"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 12 16:06:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 12 16:06:58 2011 -0700"
      },
      "message": "Merge \"Add some exceptions classes for throw\" into dalvik-dev"
    },
    {
      "commit": "28e76279ae857306113278223fde8e66528f4065",
      "tree": "be4e3a1afbb1ce777d8466e0f0c9e51f33e11020",
      "parents": [
        "40ef99eb9dd91c2fa549f40973964529c927bb3c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 12 14:58:56 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 12 14:58:56 2011 -0700"
      },
      "message": "Add some exceptions classes for throw\n\nChange-Id: Ic01714860598f365439733329df6f7671582d7e9\n"
    },
    {
      "commit": "330304de14dc7118b45b8e7b5bd11a172fa61701",
      "tree": "9f2d095d9f2da8f82984f58d9b3491bbe438e315",
      "parents": [
        "22f409320323f0f7df53954ce9193436b96444dc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 14:28:05 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 14:36:54 2011 -0700"
      },
      "message": "Create JNIEnv*s on the right threads.\n\nThis exposes a bug in jni_compiler.cc --- it passes the right JNIEnv* to the\nnative method and to MonitorExit, but it passes a bogus value to MonitorEnter.\n\nChange-Id: Icbf505d24294d14ce3e40180a20254789cb69904\n"
    },
    {
      "commit": "22f409320323f0f7df53954ce9193436b96444dc",
      "tree": "4de73b864b9271a8f3c70b009b1f06adec27f14f",
      "parents": [
        "c7ac37f0b8b64cfb53d8b9cc8dddbb34be3dd5ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 13:06:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 13:06:37 2011 -0700"
      },
      "message": "Add ScopedJniThreadState.\n\nVery similar to what we had before, except workAroundAppJniBugs is hard-coded\non until we have somewhere to put options.\n\nChange-Id: I8dcf4fade237ca230138e355dcc20319f3d7a540\n"
    },
    {
      "commit": "c7ac37f0b8b64cfb53d8b9cc8dddbb34be3dd5ee",
      "tree": "86b0ec39efb6a8fb758311ab035466a1a1edefd2",
      "parents": [
        "0c9cd5692fbbc5d92fcdc1ef41ef881a492b00ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 12:21:58 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 12:21:58 2011 -0700"
      },
      "message": "Be more specific when we exit because of an unimplemented JNI call.\n\nAlso add basic char/string escaping functions for cleaning error messages.\n\nChange-Id: I03df28e30a492bfd293ef6aa56a703ec87817ed5\n"
    },
    {
      "commit": "0c9cd5692fbbc5d92fcdc1ef41ef881a492b00ce",
      "tree": "d56f02b3e9c5116b2625c2da44c605fcf7f67129",
      "parents": [
        "191e4165ad316e1e0a12f3e91fb764694b4b82c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 10:59:29 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 11:51:30 2011 -0700"
      },
      "message": "Add tests for JNI FindClass.\n\nChange-Id: I409887167229a421d19adb0f884518e843ca7690\n"
    },
    {
      "commit": "191e4165ad316e1e0a12f3e91fb764694b4b82c0",
      "tree": "7a7804d20c3bc1a521692cd2421a57d1cbacaf96",
      "parents": [
        "4e5c0b92d03fdee18aee6073ad26995f94159866",
        "6b436857669d8d1d9be43a70fd8fd33e508276ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 10:27:57 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 12 10:27:57 2011 -0700"
      },
      "message": "Merge \"Translate JNI class descriptors into regular class descriptors in FindClass.\" into dalvik-dev"
    },
    {
      "commit": "6b436857669d8d1d9be43a70fd8fd33e508276ce",
      "tree": "ae1b978c5b5adc29afa70cb7f7e3dd930d799761",
      "parents": [
        "40ef99eb9dd91c2fa549f40973964529c927bb3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 10:16:44 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 10:16:44 2011 -0700"
      },
      "message": "Translate JNI class descriptors into regular class descriptors in FindClass.\n\nThe descriptors passed to JNI\u0027s FindClass use a different syntax than those\nused by ClassLinker::FindClass.\n\nChange-Id: I1510e807e078fd04c9d56bd4483eb79c3503d8ab\n"
    },
    {
      "commit": "4e5c0b92d03fdee18aee6073ad26995f94159866",
      "tree": "5bf4418d387c36d90757b95ca27f4c7a61730e0d",
      "parents": [
        "40ef99eb9dd91c2fa549f40973964529c927bb3c"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 22:50:08 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 22:50:08 2011 -0700"
      },
      "message": "End() should check if remaining_count_ \u003d\u003d -1, instead of checking negative.\n\nChange-Id: I4b0e113f48902a4056d07bdcc2ffdba90d7fde7b\n"
    },
    {
      "commit": "40ef99eb9dd91c2fa549f40973964529c927bb3c",
      "tree": "317dfd56abeacb4c0dd3cf7f63a4801828d7dff9",
      "parents": [
        "5381cf941d26030199fcdbe61a614ff01e55a27c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 17:44:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 22:02:10 2011 -0700"
      },
      "message": "Start implementing JNI.\n\nThis patch replaces our JniEnvironment class with the regular JNIEnv.\n\nThis patch also adds support for .jar, .zip, and .apk files in the\nboot classpath.\n\nThere\u0027s also an attempt at implementing JNIEnv::FindClass.\n\nI\u0027ve also fixed a few scoped_ptr/scoped_array bugs (this kind of thing\nbeing the reason we use UniquePtr in libcore), and removed some\nunnecessary .\n\nThe \u0027tools/art\u0027 script makes it easier to play with aexec on the command-line.\n\nChange-Id: Ic4f704c12e0071f17e95b6e182fdab9370ead9b0\n"
    },
    {
      "commit": "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": "0dab4ecc01c5db0d0846bf5b4f608634d7404f74",
      "tree": "28f48ad1713ac07c817b034bcbb6d7171c72e614",
      "parents": [
        "35baaab2a79014f35e225b189f6dbec1b4ba9542"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 12:19:32 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 12:19:32 2011 -0700"
      },
      "message": "Switch to the libcore ScopedLocalRef.\n\nAlso stop returning a deleted local reference from CreateStringArray.\n(In a later patch I\u0027ll switch us over to the libcore toStringArray.)\n\nChange-Id: I83cb10b9ecda32476f94a1120325ac4121f9e4fb\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": "0024d6cb8043a8967fdfb20561f321b2fe65c41f",
      "tree": "e9f14d1a157816f51336ac98d348fff99678b9c4",
      "parents": [
        "4bfab0a48a7e94597498b3e8cd520c4e6df0dcd8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 08:26:12 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 10:55:30 2011 -0700"
      },
      "message": "Minor zip cleanups\n\nChange-Id: Iaa2552245e9dac5fabc6a9fb553174e4d5d84142\n"
    },
    {
      "commit": "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": "744ad05e473be49033d38f30aab63891ca4ee5c3",
      "tree": "6c14472de037544af316af24b24a37851bbced7d",
      "parents": [
        "f88c95285b2d105a504d18736fe477f74c8c5b45"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sat Aug 06 15:53:36 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sat Aug 06 15:53:36 2011 -0700"
      },
      "message": "Remove stray trailing semicolons.\n\nChange-Id: I151191cc3ffdd9e8d5ea85496e435ee6f3716f56\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": "a85f2487db248c9764ccf053aa3ac0807deae35c",
      "tree": "ab2a2b3b9e3a5fbab164abe3aac976fe4661ea5b",
      "parents": [
        "fd687c537666996be8364399c111636b63f14779",
        "2eaa968bcd171248c50cea0bbe2c5cfdf9aabb80"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Fri Aug 05 18:00:14 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 05 18:00:14 2011 -0700"
      },
      "message": "Merge \"Add a dex structure definition to support exception handling.\" into dalvik-dev"
    },
    {
      "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": "2eaa968bcd171248c50cea0bbe2c5cfdf9aabb80",
      "tree": "7ef7d3b80de37e18b3c5f59ef1db1293b949d77c",
      "parents": [
        "8860c0e8491a27aa03b55f2417478fb3629611d6"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Aug 04 19:26:11 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Aug 04 19:26:11 2011 -0700"
      },
      "message": "Add a dex structure definition to support exception handling.\n\nChange-Id: I586773e1526c6ade46a74251cb838cab74d7de7a\n"
    },
    {
      "commit": "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": "b0460eaa2cb131f1dbdd5a7217bd36b9a9f1b995",
      "tree": "7b06bde279ff798413a531728ce51aafb122aa5e",
      "parents": [
        "8989d990e5be3982ab5ba4e7aa574652f71632ca"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 29 10:08:05 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 02 22:17:44 2011 -0700"
      },
      "message": "Add support for opening classes.dex file from zip, jar, apk\n\nAdding new ZipArchive class and test\n\n\tsrc/zip_archive.h\n\tsrc/zip_archive.cc\n\tsrc/zip_archive_test.cc\n\tbuild/Android.common.mk\n\nChange from host only use of build dex file for libcore to using host\nand target core.jar containing classes.dex files. This requires\nsetting up an ANDROID_DATA directory to containing an art-cache file\nfor the extracted dex files, similar to the dalvik-cache for odex\nfiles. A unique ANDROID_DATA and art-cache is created and cleaned up\nfor each test run (similar to vogar).\n\n\tsrc/common_test.h\n\nAdd dependency for libcore jar files to test targets to support\nRuntimeTest use of core.jar\n\n\tAndroid.mk\n\nExtract common includes to ART_C_INCLUDES when adding zlib dependency\n\n\tbuild/Android.common.mk\n\tbuild/Android.libart.mk\n\tbuild/Android.test.mk\n\nAdding TODO regarding unordered map for ClassLinker::classes_ table.\n\n\tsrc/class_linker.h\n\nAdding DexFile::OpenZip (also changed OpenFile to take\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\nAdding kPageSize of 4096, validated by Runtime::Init\n\n\tsrc/globals.h\n\tsrc/runtime.cc\n\n    Updated to use kPageSize where it seemed appropriate.\n\n\tsrc/jni_compiler.cc\n\tsrc/jni_compiler_test.cc\n\tsrc/space.cc\n\tsrc/thread.cc\n\tsrc/thread_x86.cc\n\nChanged thread_list_ and class_linker_ to be declared in Runtime::Init\ninitialization order.\n\n\tsrc/runtime.h\n\nChange-Id: Id626abe5b6c1990e4f93598256ee0fae000818f6\n"
    },
    {
      "commit": "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": "905786d6c484f464724b5dfb425af409d48d3bbf",
      "tree": "e70c9d0918d4a94e80ee5bd867414061f51cd40d",
      "parents": [
        "02c55f95d3c6e38c73c8d9fe47d0b3fc023dfc94",
        "14150748d11768f94df640ef8bb6a5022bd05874"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Aug 01 15:51:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 01 15:51:04 2011 -0700"
      },
      "message": "Merge \"Use Java strings for Field\u0027s name.\" into dalvik-dev"
    },
    {
      "commit": "02c55f95d3c6e38c73c8d9fe47d0b3fc023dfc94",
      "tree": "759d64f21a3dee95c59f892d35a901200cb54aba",
      "parents": [
        "23103407a42e9a1381482994029a24e177127d25",
        "ea4dca856f8c19299a1858d2cc1f35b03ca0f694"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Aug 01 14:13:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 01 14:13:59 2011 -0700"
      },
      "message": "Merge \"Add stub implementations for the JNI native and invoke interfaces.\" into dalvik-dev"
    },
    {
      "commit": "ea4dca856f8c19299a1858d2cc1f35b03ca0f694",
      "tree": "838b3900e2013c5d3b0cf1be37cf3b6d699a5b80",
      "parents": [
        "6f6beb4ecbcf5620196525be3b3684ca24aa46b0"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Aug 01 13:45:38 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Aug 01 13:45:38 2011 -0700"
      },
      "message": "Add stub implementations for the JNI native and invoke interfaces.\n\nChange-Id: I2d2b2a38c2c97a4ce0edfdb35ab2e6f073440a7f\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": "779f8c7c847265b056696bd3be4d40abe64cf245",
      "tree": "e00adb53247a75668365c040bc717800113cafc0",
      "parents": [
        "b88e94494796a81ff625761d0ddfe29c97336f09",
        "46cdd4bd0f69c519fc31114bdec2cb8a9c3b162d"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Jul 28 15:45:16 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 28 15:45:16 2011 -0700"
      },
      "message": "Merge \"More field order validation.\" into dalvik-dev"
    },
    {
      "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": "b88e94494796a81ff625761d0ddfe29c97336f09",
      "tree": "f0a80dbcbd784e83877ba7a041b076d57232655a",
      "parents": [
        "75cb3b477be3757a0351fb6ab1cb70751a71e2bf"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 28 15:15:51 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 28 15:15:51 2011 -0700"
      },
      "message": "Just visit classes_root, not its elements\n\nChange-Id: Ide0de6fda31de47b9c7fe2e33698b7f10ef44707\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": "8ecd08cde96e2463123a54eaec9429149f53ed2f",
      "tree": "1e2de78c4a32e50dd09fa6cd2832ad09e3081f76",
      "parents": [
        "76144e0293e08a14dc989556006eb3906be60a21"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 27 17:50:51 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 27 17:50:51 2011 -0700"
      },
      "message": "Switch tests and aexecd to use libartd\n\nChange-Id: I7b6b63f4e7b92da906b3104adfa7661c5912c295\n"
    },
    {
      "commit": "76144e0293e08a14dc989556006eb3906be60a21",
      "tree": "bbe891a915e9a55fbf615fa00a2841b5c678e945",
      "parents": [
        "4d55351ef0b07a4d488de6cd698fb98b0ce6e1e0",
        "0b138b26af64ae976c4792f466c27a7293772b8b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 27 17:25:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 17:25:22 2011 -0700"
      },
      "message": "Merge \"Flesh out AllocString\" into dalvik-dev"
    },
    {
      "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": "4d55351ef0b07a4d488de6cd698fb98b0ce6e1e0",
      "tree": "b86369cc9fdd4f227509fe74064f302eb607ea68",
      "parents": [
        "07d579faa0abc835e8db970ff48b6f79cdc67f8f",
        "d3c1575f2fe0b17ffc72da0f0fd791b433e8c9a7"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 27 17:06:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 17:06:58 2011 -0700"
      },
      "message": "Merge \"Address post review comments regarding ParseClassPath.\" into dalvik-dev"
    },
    {
      "commit": "d3c1575f2fe0b17ffc72da0f0fd791b433e8c9a7",
      "tree": "2249e09bcf74a6141b251cfecf0672af74557a0d",
      "parents": [
        "fc322c72d7a89a6f7a05c8bdc232d780aecd9232"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 27 16:27:22 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 27 16:28:16 2011 -0700"
      },
      "message": "Address post review comments regarding ParseClassPath.\n\nChange-Id: Iffa58395271f6a65c1d939581f8c2711076f036c\n"
    },
    {
      "commit": "07d579faa0abc835e8db970ff48b6f79cdc67f8f",
      "tree": "c9eb830b7df10db705dd6bdd640e8cdd1cf0d28c",
      "parents": [
        "3b58545543cddd62623923ab9a2c294f847dc007"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 27 13:31:51 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 27 13:35:57 2011 -0700"
      },
      "message": "Add NDEBUG build\n\nChange-Id: I81032fb43d6b4919bd264a644062dc31ae564427\n"
    },
    {
      "commit": "3b58545543cddd62623923ab9a2c294f847dc007",
      "tree": "9f7b14bbba4ab8093795bf580e316de1b3927f8b",
      "parents": [
        "fc322c72d7a89a6f7a05c8bdc232d780aecd9232",
        "ae3ac01d7176b42b99bef3c6ae019869c8664426"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 27 12:45:20 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 12:45:20 2011 -0700"
      },
      "message": "Merge \"Expanding ClassLinkerTest/LibCore to cover more Class details - Ensure SetReferenceOffsets is always called - Change Field to use StringPiece instead of const char* - Removed \"shrunk vtable\" logging noise - Fix small bug in Class::Status logging - Rename Field signature to descriptor for clarity - Add Class:IsSynthetic\" into dalvik-dev"
    },
    {
      "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": "fc322c72d7a89a6f7a05c8bdc232d780aecd9232",
      "tree": "c27f4b609a09f0fa647bc7307af54f17604d9bd9",
      "parents": [
        "a40f9bc48afe3a9d38be2fa298fece13ed82ba28"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 27 00:20:01 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 27 00:20:01 2011 -0700"
      },
      "message": "Initialize the bootstrap class path from standard sources.\n\nChange-Id: Ib49d21f98fd76504e5d3675fc731261426ca84ed\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": "3aaddbb438daaaa37419d281d95fbe21e64982a6",
      "tree": "dee68bf7445582b2beddbaa401c1249fd142c6f7",
      "parents": [
        "4a96b60e45fba4a9d4a2e9c8fc849660eacef684",
        "4acf4646fbbd6c1893cec5bb700d3c7cd09e4a26"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jul 26 19:10:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 26 19:10:35 2011 -0700"
      },
      "message": "Merge \"Clear out the Runtime singleton when destructing a Runtime instance.\" into dalvik-dev"
    },
    {
      "commit": "4acf4646fbbd6c1893cec5bb700d3c7cd09e4a26",
      "tree": "418ede41fe310dcbb43a1b5a4294527a6f1108cd",
      "parents": [
        "2ed144c2b49ae1da6c464d7a1be0062870530802"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jul 26 18:54:13 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jul 26 18:54:13 2011 -0700"
      },
      "message": "Clear out the Runtime singleton when destructing a Runtime instance.\n\nChange-Id: Ib2c4699d997a33b52aeb3c63d54c325cf276faf7\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": "2ed144c2b49ae1da6c464d7a1be0062870530802",
      "tree": "2cd7472e610494129bcfd0b65744b81030dd4f2f",
      "parents": [
        "27012039a909f8769e4a90200921db8f0fd0396e"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jul 26 16:52:08 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jul 26 16:52:08 2011 -0700"
      },
      "message": "Preliminary implementation of the JNI invocation interface.\n\nChange-Id: Ib144cb887864cd232a8cb8167b20d1540829a6a5\n"
    },
    {
      "commit": "27012039a909f8769e4a90200921db8f0fd0396e",
      "tree": "0f0164bd40ca4f6bf0911eb2b0ae7a1361b59678",
      "parents": [
        "e2d373e6e09c1df9a47e73a26254048adb31ce82",
        "f08973e61fedb8c5e57ed79dd5a96edf4aaae9a4"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Jul 25 17:09:39 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 25 17:09:39 2011 -0700"
      },
      "message": "Merge \"Remove the ashmem dependency from the mspace utility code.\" into dalvik-dev"
    },
    {
      "commit": "f08973e61fedb8c5e57ed79dd5a96edf4aaae9a4",
      "tree": "fcd0862503a39b277373a72149d2bc1d03ae1d74",
      "parents": [
        "7a90959d4ef7a69f3bcb7b8763f646e12d9267d3"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Jul 25 16:51:14 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Jul 25 16:51:14 2011 -0700"
      },
      "message": "Remove the ashmem dependency from the mspace utility code.\n\nChange-Id: I95d218572f3c13b854839e389ffab530471b632c\n"
    },
    {
      "commit": "e2d373e6e09c1df9a47e73a26254048adb31ce82",
      "tree": "5eb8b4627411e6336baddd1a5d5d732919eed1aa",
      "parents": [
        "7a90959d4ef7a69f3bcb7b8763f646e12d9267d3"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Jul 25 15:20:06 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Jul 25 15:20:06 2011 -0700"
      },
      "message": "Initial ARM JNI compiler support.\n\nChange-Id: I85183eec9a2645e6cb074b4b18bc6af800a77e06\n"
    },
    {
      "commit": "7a90959d4ef7a69f3bcb7b8763f646e12d9267d3",
      "tree": "1324ba0128921ad5d1b5f74244b471a4431c0040",
      "parents": [
        "913af1bd90a6e8fd56f1f851db1f098636dae6a5"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 24 19:21:59 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 24 19:21:59 2011 -0700"
      },
      "message": "Make the RuntimeTest use Runtime instances instead of its constituents.\n\nChange-Id: I1005f279259917ff07d24e3bcd3643992ec8e3bd\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": "fa0fead4a05a445dac1ef2d4ed828e55d3adfea9",
      "tree": "3ce3ed5b51b993db1d9078287ce8ac28f595cec0",
      "parents": [
        "b984ded74d1e03e5a515cd003c0586de1388346f",
        "58551df3c2646ed507feec9e9eb3768085a76059"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 24 14:33:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jul 24 14:33:08 2011 -0700"
      },
      "message": "Merge \"Add a collection implementation.\" into dalvik-dev"
    },
    {
      "commit": "58551df3c2646ed507feec9e9eb3768085a76059",
      "tree": "892bc05ab5b2959c64e34cfe7cb541da0967f013",
      "parents": [
        "f615a61aef972cfc1dc23931ac2ed0da14c3fedb"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 24 03:09:51 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 24 03:09:51 2011 -0700"
      },
      "message": "Add a collection implementation.\n\nChange-Id: I47330dc14dd2ecee052b6a5165c6d48bd6c89dc4\n"
    },
    {
      "commit": "f3eb61f6d0f45f0d52aa3b5c3b24639af9b07f98",
      "tree": "9c83f32b8dc06eb578cbfd8627146421220dd844",
      "parents": [
        "f615a61aef972cfc1dc23931ac2ed0da14c3fedb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jul 23 20:22:26 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jul 23 20:22:26 2011 -0700"
      },
      "message": "Style cleanups for two recent changes\n\nChange-Id: I54831502ded57ad90add46445155e3e44439ec1d\n"
    },
    {
      "commit": "f615a61aef972cfc1dc23931ac2ed0da14c3fedb",
      "tree": "cca1f1f3475639f505bca688b5d7dab60c70a277",
      "parents": [
        "7e49dca262933bc30cbc8b9f07cfc8cce2343389"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jul 23 12:50:34 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jul 23 12:50:34 2011 -0700"
      },
      "message": "Rename RawDexFile to DexFile\n\nChange-Id: I4d0cd3885cf21a7b3dcad05c4d667d7ebd44378b\n"
    },
    {
      "commit": "7e49dca262933bc30cbc8b9f07cfc8cce2343389",
      "tree": "c7413689d9d71aa15af72ea936befae639289fcd",
      "parents": [
        "6547ace95d86e0f1aec8a0abc76fe87838a81815"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 22 18:07:34 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jul 23 12:01:58 2011 -0700"
      },
      "message": "Rename DexFile to DexCache\n\nChange-Id: I93fa3e4f7cf87fbaac974f0d2577628a23f0d8c2\n"
    },
    {
      "commit": "578bbdc684db8ed68e9fedbc678669d27fa68b6e",
      "tree": "d752941d81ad6d7e248c349ce21371a8ae369693",
      "parents": [
        "45a76cb99104a222d6a9bd768a084893dcb7cf30"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 21 14:07:47 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 22 15:23:33 2011 -0700"
      },
      "message": "Move DexFiles to be allocated on the heap\n\nRemoved pointer from DexFile to RawDexfile to allow heap allocation of\nDexFile. DexFile is now an ObjectArray of ObjectArrays. Removing the\npointer from DexFile to RawDexfile meant adding arguments to pass the\nRawDexfile along to ClassLinker::LoadClass, LoadInterfaces, LoadField,\nLoadMethod, LinkClass, LinkInterfaces, ResolveClass to avoid the need\nto look a RawDexfile up from a DexFile. ClassLinker::CreateArrayClass\nnow takes the raw_dex_file to assist in looking up the component class\nfrom the proper source. Moved Method::HasSame* methods to ClassLinker\nsince for access to the RawDexfile (and tests of HasSame from\nObjectTest to ClassLinkerTest.\n\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\tsrc/object.h\n\nRunTime::Create/RunTime::Init/ClassLinker::Create/ClassLinker::Init\nnow take the boot class path. A boot class path with\nLjava/lang/Object; must be provided to initalize [Ljava/lang/Object;\nduring startup in order to heap allocate DexFiles.\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\tsrc/runtime.cc\n\tsrc/runtime.h\n\nRestored FindClass to load from a specific dex file. This is for use\nby class loaders, otherwise it is assumed the caller wants to use the\nboot classpath. We now distinguish and track the boot classpath as\nseparate from other dex files known to the class linker. Renamed\nAppendToClassPath to AppendToBootClassPath and FindInClassPath to\nFindInBootClassPath to clarify.\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\nCleaned up AllocCharArray to generic AllocArray and added\nAllocObjectArray. Added a functional ObjectArray implementation and a\nObjectTest to cover it.\n\n\tsrc/heap.h\n\tsrc/object.h\n\tsrc/object_test.cc\n\nSwitched more Object* downcasting to down_cast\n\n\tsrc/class_linker.cc\n\nSwitched order of arguments for DexFile::SetResolved to follow more\nconventional collection ordering ( \"(index, value)\" vs \"(value, index)\" )\n\n\tsrc/dex_file.h\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\nAdded class_linker_ and java_lang_raw_dex_file_ to RuntimeTest as\nconvenience to test subclasses. ClassLinkerTest now can use these to\nsimplify its ::Assert* methods. JniCompilerTest now uses it for\nsetting up its boot class path. Removed now unneeded\nOpenDexFileBase64.\n\n\tsrc/common_test.h\n\tsrc/class_linker_test.cc\n\tsrc/jni_compiler_test.cc\n\nAdd external/gtest/include to non-test include path so FRIEND_TEST can be used.\nAdd src to include path to remove the need of using in in art/src files.\n\n\tbuild/Android.libart.host.mk\n\tbuild/Android.libart.mk\n\tsrc/assembler.cc\n\tsrc/assembler.h\n\tsrc/assembler_arm.cc\n\tsrc/assembler_arm.h\n\tsrc/assembler_x86.cc\n\tsrc/assembler_x86.h\n\tsrc/assembler_x86_test.cc\n\tsrc/base64.cc\n\tsrc/base64.h\n\tsrc/calling_convention.cc\n\tsrc/calling_convention.h\n\tsrc/calling_convention_arm.cc\n\tsrc/calling_convention_x86.cc\n\tsrc/casts.h\n\tsrc/class_linker.h\n\tsrc/class_linker_test.cc\n\tsrc/common_test.h\n\tsrc/constants.h\n\tsrc/constants_arm.h\n\tsrc/constants_x86.h\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\tsrc/dex_file_test.cc\n\tsrc/dex_instruction.cc\n\tsrc/dex_instruction.h\n\tsrc/dex_instruction_visitor.h\n\tsrc/dex_instruction_visitor_test.cc\n\tsrc/dex_verifier.cc\n\tsrc/dex_verifier.h\n\tsrc/heap.cc\n\tsrc/heap.h\n\tsrc/jni_compiler.cc\n\tsrc/jni_compiler_test.cc\n\tsrc/jni_internal.cc\n\tsrc/jni_internal.h\n\tsrc/leb128.h\n\tsrc/managed_register.h\n\tsrc/managed_register_arm.cc\n\tsrc/managed_register_arm.h\n\tsrc/managed_register_arm_test.cc\n\tsrc/managed_register_x86.cc\n\tsrc/managed_register_x86.h\n\tsrc/managed_register_x86_test.cc\n\tsrc/mark_stack.cc\n\tsrc/mark_stack.h\n\tsrc/mark_sweep.cc\n\tsrc/mark_sweep.h\n\tsrc/memory_region.cc\n\tsrc/memory_region.h\n\tsrc/monitor.h\n\tsrc/object.cc\n\tsrc/object.h\n\tsrc/object_bitmap.cc\n\tsrc/object_bitmap.h\n\tsrc/object_test.cc\n\tsrc/offsets.cc\n\tsrc/offsets.h\n\tsrc/raw_dex_file.cc\n\tsrc/raw_dex_file.h\n\tsrc/raw_dex_file_test.cc\n\tsrc/runtime.cc\n\tsrc/runtime.h\n\tsrc/scoped_ptr.h\n\tsrc/space.cc\n\tsrc/space.h\n\tsrc/space_test.cc\n\tsrc/stringpiece.cc\n\tsrc/thread.cc\n\tsrc/thread.h\n\tsrc/thread_arm.cc\n\tsrc/thread_x86.cc\n\tsrc/utils.h\n\nChange-Id: Ib633cea878c36921e9037b0464cb903aec318c3e\n"
    },
    {
      "commit": "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": "8e339ed50e19b2ae48ce9edecc6944782b6cc7d7",
      "tree": "bd1dd2d38edbd277da18637b01265eff5e1640d1",
      "parents": [
        "5cebb7ce11997b578b3ac8d651771249f79660e2",
        "df20fe0c097073f75f22d16e72fd3636a31d3ca1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 21 10:51:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 21 10:51:43 2011 -0700"
      },
      "message": "Merge \"Support for synchronized native methods.\" into dalvik-dev"
    },
    {
      "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": "5cebb7ce11997b578b3ac8d651771249f79660e2",
      "tree": "e7a073b83192e8d1dafcf35796cc7c31b1d9073a",
      "parents": [
        "176f59cd8997a0491ea5ccdea8e9dfff85dd32d6",
        "6d860c1c4a7fce7076a5aaa2f08abee1f971dadd"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 20 17:00:20 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 20 17:00:20 2011 -0700"
      },
      "message": "Merge \"Add the down_cast template.\" into dalvik-dev"
    },
    {
      "commit": "6d860c1c4a7fce7076a5aaa2f08abee1f971dadd",
      "tree": "864308f0b9f5dcd2d00f1b6d4903c6859a216f4c",
      "parents": [
        "6cc18456b6d0d1348ad1d64116b7ab78108ff814"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 20 16:40:16 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 20 16:40:16 2011 -0700"
      },
      "message": "Add the down_cast template.\n\nChange-Id: Ib60c3fd1dfca3ba3fd0296633f3d96c992f790c8\n"
    },
    {
      "commit": "176f59cd8997a0491ea5ccdea8e9dfff85dd32d6",
      "tree": "94a57402ca10c334363fe78bb504c66d550dfa8d",
      "parents": [
        "b033c75ebda80ac75f936366fe78d1edf5cec937"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 13:14:11 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 13:14:11 2011 -0700"
      },
      "message": "Fix build breakage.\n\nChange-Id: I7fe647db9e04653af204e41a10702b06626576bb\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": "cdc8de4642ca447a7ed205f0d2203cb217e48aad",
      "tree": "82b77592caaaefaf49dae5193294446cce68faf1",
      "parents": [
        "be9778540dfc70d154bb17f722c0b7fe454e2a8f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 19 14:23:17 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 19 16:09:47 2011 -0700"
      },
      "message": "Move base64 to test code\n\nChange-Id: I0cda5d8a559a2d60250c1d8a8ee6f69509515214\n"
    },
    {
      "commit": "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": "ffe6736397d17457188727510f0a2953f69a383a",
      "tree": "0d03bee69cf0cfecf76253fe3cb5f6898ae64faa",
      "parents": [
        "a5780dad67556297c8ca5f2608c53b193e6c4514"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 12:09:27 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 12:22:59 2011 -0700"
      },
      "message": "Implement Runtime::Abort and switch LOG(FATAL) over to it.\n\nRuntime::Abort takes arguments so it can provide less misleading log output,\nbut this shouldn\u0027t matter to callers because they should be using LOG(FATAL)\nanyway.\n\nThis patch also fixes an errno/errno_ mixup in the logging code.\n\nChange-Id: If24b66b7bbf0bf7c0ecb93dd806d82b1d21ee239\n"
    },
    {
      "commit": "a5780dad67556297c8ca5f2608c53b193e6c4514",
      "tree": "9d582f869b8ac863249007ff6ff92055afbb685b",
      "parents": [
        "3acbfa4a3f8272d9a42bdd14e64dedb7db6a7ffe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 11:39:39 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 11:39:39 2011 -0700"
      },
      "message": "Fix class_linker_test.\n\nClassLinker::FindClass now requires the calling thread to be attached. Also\nimprove the error reporting in Thread::Attach.\n\nChange-Id: I95bae22288902a8c19a99c14ad66f3dbcca4a0b6\n"
    },
    {
      "commit": "3acbfa4a3f8272d9a42bdd14e64dedb7db6a7ffe",
      "tree": "1c17c3272e1e4fcb9872105d375a2a14eb085989",
      "parents": [
        "d0e7e777c412071a911dd2c008b20b7d879fd392",
        "eb4f614f2eb53b92ebd416fa418f550861655887"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 10:47:11 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jul 17 10:47:11 2011 -0700"
      },
      "message": "Merge \"Flesh out the logging implementation.\" into dalvik-dev"
    },
    {
      "commit": "eb4f614f2eb53b92ebd416fa418f550861655887",
      "tree": "71e0df5217ab8b4e9fb71bb24abac41777ca1084",
      "parents": [
        "f10edcac1f8ab835d60fc8268f8c574005619998"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 15 17:43:51 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 10:44:51 2011 -0700"
      },
      "message": "Flesh out the logging implementation.\n\nAdd PLOG and ensure we have CHECK_STREQ and CHECK_STRNE to go with\nthe existing non-functional DCHECK_STREQ and DCHECK_STRNE.\n\nThis also gives us two different logging implementations, one for\nthe host that just uses std::cerr, and one for Android that uses\nthe Android log.\n\nAlso bring in the StringPrintf family.\n\nChange-Id: I8e190c2c58f26b22ee76a2a87d447df6eb0fa73b\n"
    }
  ],
  "next": "d0e7e777c412071a911dd2c008b20b7d879fd392"
}
