)]}'
{
  "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": "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": "37f7a40f6789bb287f287a9af00777af9d6428ee",
      "tree": "edb907134b656748decd1ca894836326a50518bc",
      "parents": [
        "885c3bd4d7adcc7f60f656b4f7247e7065feadf3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 18:56:01 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 18:56:01 2011 -0700"
      },
      "message": "Implement more of the exception/object/class JNI functions.\n\nChange-Id: Id835c1a37e5034d11e2fc43ccf49e578510abfc1\n"
    },
    {
      "commit": "885c3bd4d7adcc7f60f656b4f7247e7065feadf3",
      "tree": "795774b8a63c9d0d52b9652de88f15da085efa61",
      "parents": [
        "bd9359912e5398799f60649b86ae80644ec72627"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 16:59:20 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 16:59:20 2011 -0700"
      },
      "message": "Implement field access (and a few other bits and bobs).\n\nChange-Id: I837eb0ae4af8e314761bb42d3405f05b7a79573e\n"
    },
    {
      "commit": "bd9359912e5398799f60649b86ae80644ec72627",
      "tree": "f3f016f1e5a2dd4f4010cd211b017fa7a62ff983",
      "parents": [
        "4873d465a1eb6dfbdeddb085c81239d39db60c42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 11:59:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 11:59:34 2011 -0700"
      },
      "message": "Add JNI GetArrayLength and start throwing from FindClass.\n\nChange-Id: I080a6ffc5496b47454273acd58c230bda5e04cdd\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": "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": "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": "18c0753c1659629021b4becdaa3f6ea81aecce35",
      "tree": "2ccf75312b252af340eac79f161c077a979b78ca",
      "parents": [
        "c5f7c91ab89055cffb573fff7e06dbdd860bcced"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 15:50:51 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 15:58:13 2011 -0700"
      },
      "message": "Initialize the rest of libcore\u0027s native code.\n\nThis native code requires NewGlobalRef, so this patch also implements\nNewLocalRef/DeleteLocalRef, NewGlobalRef/DeleteGlobalRef, and\nNewWeakGlobalRef/DeleteWeakGlobalRef.\n\n(The assembler change is because \"math.h\" also defines OVERFLOW. A slight\nchange in #include ordering caused the names to conflict.)\n\nChange-Id: Ifbf3b532ec3b0896bd7507d2881c6b77b64f01e7\n"
    },
    {
      "commit": "f734cf55d510976f4862b15e35fc86eae2a3daf8",
      "tree": "cdb1077841e6be87353c27f2a30d352ac627663a",
      "parents": [
        "0af5543f8ea20c3e655b2d748a1b7dcf283792fe"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 17 16:28:14 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 17 21:51:13 2011 -0700"
      },
      "message": "Add ParsedOptions test (and migrate RuntimeTest to CommonTest)\n\nChange-Id: Ic338520dfaca2228260e546ed1522c37b83f42ac\n"
    },
    {
      "commit": "4dd71f1538a8d788c56c77378a59ce32afa519d7",
      "tree": "cb83b727cc997991ba597bf6ff9627d6da93e2ad",
      "parents": [
        "bbd76717c14822b68ae6d122d88610b46286272f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 16 14:16:02 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 17 10:40:54 2011 -0700"
      },
      "message": "Implement various JNI internals. Fix off by 1 bug.\n\nMake GetMethodID and GetStaticMethodID throw NoSuchMethodError. Add\nsimple unit tests. Implement RegisterNatives.\nFix bug that CreateArgArray doesn\u0027t pass the last argument correctly.\n\nChange-Id: I5b87ffdbb72a7ef75147a002560b8c47e7af35f4\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": "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": "8a26c5c4c74b09e2887593c733a22652a9f80d7c",
      "tree": "880dee46cc2e56c3903c216ad0e846dccc37a71a",
      "parents": [
        "f2682d5a6ce0f7de58da8fd4ec8aec200c43b92e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 18:35:43 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 18:35:43 2011 -0700"
      },
      "message": "Implement NewStringUTF and SetObjectArrayElement.\n\nTurns out there are a couple more calls needed by aexec.\n\nI\u0027ve added a placeholder AddLocalReference too, so we can add calls\nrather than TODOs.\n\nChange-Id: I3228a68527540b7cca665a8f35143a7401107e24\n"
    },
    {
      "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": "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": "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": "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"
    }
  ]
}
