)]}'
{
  "log": [
    {
      "commit": "5a7a74a042e73a355f5cedffa0d2faf5340028fa",
      "tree": "7d28fe4828156e6bea2517c969099654488f116c",
      "parents": [
        "3116e85cec7373eb83f7e35e17c1de992a3ac671"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 26 16:32:29 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 27 10:24:38 2011 -0700"
      },
      "message": "Support for JNI local reference cookie.\n\nThis also fixes a cross compilation bug in reseting the top of the\nindirect reference table following a down call.\n\nChange-Id: I40d913a6f86dadfe87b58d6d13a1ff3613f270ac\n"
    },
    {
      "commit": "395520eaa47eca25b92e86188accf3095d60af49",
      "tree": "23cff36a71ea43eeb6a4bb7a7544c45aa3534c85",
      "parents": [
        "14357e842b611279d467b64d450c569af33a6936"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 25 19:35:00 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 26 10:56:37 2011 -0700"
      },
      "message": "Assorted fixes for running frameworks apps\n\n- Adding Heap::target_utililization_\n- Convert ClassNotFoundError to ClassNotFoundException in Class.forName\n- Finish String::GetHashCode\n- Changed Runtime.gc to unimplemented\n- Disable preload simulation in oat_process\n- Empty native placeholder for org.apache.harmony.dalvik.ddmc.DdmServer\n- Bonus: Fix problem with reflective invocation of constructors and private methods\n\nChange-Id: If11b273e2f82e8e0fa7161a756098514e1156a19\n"
    },
    {
      "commit": "dc51b79e65abcdad094ccd5e5a2caf5153433d49",
      "tree": "0a1b40cf58c98180407939bcc2431b33a52b9e20",
      "parents": [
        "d8b877a20c87e3c7ebef4a3ddd1d8896b2a5b822"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 22 20:41:37 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 00:08:33 2011 -0700"
      },
      "message": "Save/restore local table state on down calls.\n\nAlso add unit test.\n\nChange-Id: Ia1dc54eaac20c4bbb1ca3d9ac2933d6ab0241261\n"
    },
    {
      "commit": "410c0c876f326e14c176a39ba21fc4dd3f7db8ab",
      "tree": "e4b77ac5ed99b7206c51f6519689fdbc623e843d",
      "parents": [
        "1b4c85959b3d9a4a33bc2160c46c1bbde67350c7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 17:58:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 22:16:18 2011 -0700"
      },
      "message": "Mark more roots.\n\nThis is most of the stuff. (Everything that currently exists, though there\u0027s\nmore to come.)\n\nChange-Id: I235a21b006820a027c494374a5b52ffefed89c32\n"
    },
    {
      "commit": "cf4c6c41b0084dc4567ff709fb8ce9ebd72b26ac",
      "tree": "ca3d0314b5c4111d7ab6fd97b4e68d5b2679e237",
      "parents": [
        "2f0ce9d60a4a9371c63a32a3764320fb02341acb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 15:16:42 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 15:51:43 2011 -0700"
      },
      "message": "Fully implement string interning.\n\nAlso, more const.\n\nChange-Id: I09cae88d677e8e6e42d0fa9b5d1093c79d225e66\n"
    },
    {
      "commit": "c5bfa8f49d8548d7c685a99b411311ef56bedffa",
      "tree": "3f58bb3dce3bcaa03a6d3da27d0a2f85d1da1b0b",
      "parents": [
        "90a3369d3b6238f1a4c9b19ca68978dab1c39bc4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 30 14:32:49 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 30 14:42:22 2011 -0700"
      },
      "message": "Add back the work-arounds for broken apps that assume JNI uses direct references.\n\nNote that we\u0027ll need to add support for this to jni_compiler too.\n\nChange-Id: I7e31ab4314ba913cde4629544addd0aad9a89b3b\n"
    },
    {
      "commit": "a2501990dd0f68baf38ce19251949d7bb3ecfe5a",
      "tree": "3f72ceee0297d213dac66a9ce2c72592906c1803",
      "parents": [
        "82870720a9a2709fcde4a03d96be383cee4b25d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 26 19:39:54 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 29 22:06:55 2011 -0700"
      },
      "message": "Add -Xcheck:jni.\n\nI think this is as complete as possible right now. The remaining\ntwo #if 0 sections require:\n\n1. a way to get the Method* of the current native method.\n2. a way to get the Class* of the type of a given Field*.\n\nChange-Id: I331586022095fb36ccc10c9ac1890a59a9224d01\n"
    },
    {
      "commit": "7577075b147fd8fa37ca41e7a32d1124676776ce",
      "tree": "f140e662b61200fe3ee4ba86c1fc05e9f4a96791",
      "parents": [
        "b465ab0e103d7760df903c1fddf4fa6b89d5d1f5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 24 17:52:38 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 24 17:52:38 2011 -0700"
      },
      "message": "Finish off the new JNI implementation.\n\nThere are a handful of remaining TODOs, but this gives us complete coverage.\n\nChange-Id: Ibee38e6a87a0fcfae769d991125b0551243c8eeb\n"
    },
    {
      "commit": "408f79aeb676251ba35667a64e86c20638d7cb0b",
      "tree": "419c9dca6bc1fd5c13a997d4fad62f92960e5e45",
      "parents": [
        "72025e5f8f2743b4af33453df5b3bddada2078db"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 18:22:33 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 18:56:54 2011 -0700"
      },
      "message": "Add validate object, clean up stack indirect reference table.\n\nChange-Id: Ifb329ae7d3bede3e95d48e6761cee1412a33d867\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": "c5f7c91ab89055cffb573fff7e06dbdd860bcced",
      "tree": "e96e62e1220adfb93a72ddc91a7a38755cd4942a",
      "parents": [
        "4a289ed61242964b921434de7d375f46480472a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 14:00:42 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 14:15:22 2011 -0700"
      },
      "message": "Switch to indirect references rather than direct pointers.\n\nThis also required a bit of fiddling to break cyclic dependencies,\nnow \"jni_internal.h\" needs Mutex from \"thread.h\".\n\nChange-Id: I1d6fb2d801c190f72255f5e447a0a8a65cc3e673\n"
    },
    {
      "commit": "6c1a394b47c85c8d1723fc3b156a3b1b0b29a757",
      "tree": "122185299351264d8e86db2399bbf8aef2a09e97",
      "parents": [
        "0db8cf440970b36d9511f20984150c06e504ab19"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 15:00:06 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 15:20:34 2011 -0700"
      },
      "message": "Add IndirectReferenceTable and initialize all the instances.\n\nWe\u0027re not _using_ any of the tables yet (except in tests), but all the\nreference tables are now in place.\n\nChange-Id: Ifd3fc114254460b4a1302520f2a4653319b113e5\n"
    }
  ]
}
