)]}'
{
  "log": [
    {
      "commit": "e34fa1df67fbe0173b4ea9abddcc3ae3d0537037",
      "tree": "a5148f079b5671a95f60910c41981ebf91db3a02",
      "parents": [
        "9f06b1946ae3ef1d2fd75bbf7f0a288bc611fe58"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 14 14:55:47 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 15 12:23:28 2015 -0800"
      },
      "message": "Print more info in MarkSweep::VerifyRoot\n\nRefactored old root callback to use a new class called RootInfo.\nRootInfo contains all the relevant info related to the root\nassociated with the callback. The MarkSweep::VerifyRoot function\nnow uses this info to print the StackVisitor\u0027s described location\nif the GC root is of the type kRootJavaFrame.\n\nSome other cleanup.\n\nExample output:\nE/art     (12167): Tried to mark 0x123 not contained by any spaces\nE/art     (12167): Attempting see if it\u0027s a bad root\nE/art     (12167): Found invalid root: 0x123 with type RootJavaFrame\nE/art     (12167): Location\u003dVisiting method\n\u0027void java.lang.Runtime.gc()\u0027 at dex PC 0xffffffff (native PC 0x0)\nvreg\u003d0\n\n(cherry picked from commit 12f7423a2bb4bfab76700d84eb6d4338d211983a)\n\nBug: 18588862\nChange-Id: Ic5a2781f704e931265ffb3621c2eab4b2e25f60f\n"
    },
    {
      "commit": "91c2f0cde2a009bd52aa1c3d1dee705cc02c932f",
      "tree": "55c02c51308df051c76d89a09627ad16d8f45f72",
      "parents": [
        "bd6bb37c377e78aeafb4faf9acd70efbcbc62d30"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 26 11:21:15 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 26 16:06:35 2014 -0800"
      },
      "message": "Trim reference tables when we trim the heap\n\nBefore:\nSystem server:\n virtual                     shared   shared  private  private\n  size      RSS      PSS    clean    dirty    clean    dirty    # object\n2200      300      229        0       80        0      220   77 /dev/ashmem/dalvik-indirect ref table (deleted)\nLocation:\n1896      128      102        0       28        0      100   39 /dev/ashmem/dalvik-indirect ref table (deleted)\n\nAfter:\n virtual                     shared   shared  private  private\n  size      RSS      PSS    clean    dirty    clean    dirty    # object\nSystem server:\n2216       64       64        0        0        0       64   79 /dev/ashmem/dalvik-indirect ref table (deleted)\nLocation:\n2120       48       48        0        0        0       48   67 /dev/ashmem/dalvik-indirect ref table (deleted)\n\nNo pause time regression measured in memalloc test.\n\n(cherry picked from commit 84dc99d2fa67e5dff018685661cb2bff62132989)\n\nChange-Id: I80d9bd3b98e888fa8f77d03df69f8479ed209986\n"
    },
    {
      "commit": "cf7f19135f0e273f7b0136315633c2abfc715343",
      "tree": "ffa4d9efd9c45f4b6789acc1f534bb9327052b7e",
      "parents": [
        "aea6888b056be21adf762e066c7f33b8939b8a06"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:06:39 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:21:57 2014 -0700"
      },
      "message": "C++11 related clean-up of DISALLOW_..\n\nMove DISALLOW_COPY_AND_ASSIGN to delete functions. By no having declarations\nwith no definitions this prompts better warning messages so deal with these\nby correcting the code.\nAdd a DISALLOW_ALLOCATION and use for ValueObject and mirror::Object.\nMake X86 assembly operand types ValueObjects to fix compilation errors.\nTidy the use of iostream and ostream.\nAvoid making cutils a dependency via mutex-inl.h for tests that link against\nlibart. Push tracing dependencies into appropriate files and mutex.cc.\nx86 32-bit host symbols size is increased for libarttest, avoid copying this\nin run-test 115 by using symlinks and remove this test\u0027s higher than normal\nulimit.\nFix the RunningOnValgrind test in RosAllocSpace to not use GetHeap as it\nreturns NULL when the heap is under construction by Runtime.\n\nChange-Id: Ia246f7ac0c11f73072b30d70566a196e9b78472b\n"
    },
    {
      "commit": "4838d6651eab0e8c0687ba44ce38e83b4553a4e2",
      "tree": "2bb025e19069f57c4a7a4d350daad6213dbc9ce5",
      "parents": [
        "1ed5b27ee329208fd8ae22b8a9a61d708e2c1ffb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 25 15:27:43 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 25 15:27:43 2014 -0700"
      },
      "message": "Reduce IndirectReferenceTable memory usage\n\nChanged the slot side table and the main table to be a single\ntable, reduced number of slots per reference from 4 to 3 to make\nthe IrtEntry a power of 2 size.\n\nBefore:\n20848 kB: Dalvik Other\n\nAfter:\n16760 kB: Dalvik Other\n\nBug: 17643507\n\n(cherry picked from commit a1de6b93426cfc66a64eb1b57303348aab5e766d)\n\nChange-Id: I362475235a887c60eff6870bb10051a6be3d5814\n"
    },
    {
      "commit": "8a74117cac720239a69e60e734c7044b433fad47",
      "tree": "88663982b24ac419886c432b22aebb1387c0039a",
      "parents": [
        "9b2b927f573264c2f0d66b24ceeb361857a41ab3"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Sep 08 13:22:56 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 09 14:19:23 2014 -0700"
      },
      "message": "Address read barrier issue with cl/106467\n\nAnd tidy/add a check.\n\nBug: 12687968\nChange-Id: If63dc0d9d0a0ce5f2eeb81734ff8f4307865f67d\n"
    },
    {
      "commit": "c0542af3e2170143ba40d89136e284997e16bf64",
      "tree": "a61e3b9cd297a4c52a0c0488a502cb77c47f0690",
      "parents": [
        "d3c9358544bbab15093614c5c2b6a9de86e11f7b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 03 16:16:56 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 03 17:15:54 2014 -0700"
      },
      "message": "Remove abuse of mirror::Object* to reference special values.\n\nRemove kInvalidIndirectRefObject, kClearedJniWeakGlobal and\nObjectRegistry::kInvalidObject. Handle error conditions by passing in or\nreturning an error value.\nGetObjectRefType is simplified to be faster and not return invalid references\nthat are not expected according to the spec. Adjust check JNI and\njni_internal_test appropriately.\nFix cases in the debugger/JDWP of out arguments being passed by reference.\nBug: 17376993\n\nChange-Id: I3ce8a28c01827e163f4dc288449959464da788b1\n"
    },
    {
      "commit": "68d8b42ddec39ec0174162d90d4abaa004d1983e",
      "tree": "0bb6ccf3b996bb8363c10d07aa39cde221980602",
      "parents": [
        "9c522c2cbbf50dc687728747b37ad59985750b65"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 17 11:09:10 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 08 08:29:53 2014 -0700"
      },
      "message": "Wire up check JNI force copy mode.\n\nIncrease check JNI checks.\nBreak apart jni_internal.h in to jni_env_ext.h and java_vm_ext.h.\nFix the abuse of ScopedObjectAccess/annotalysis by ScopedCheck in the case\nof VM routines.\nMake class loader override and shared library class loader JNI global\nreferences rather than mirror pointers.\nClean-ups to native bridge.\n\nChange-Id: If7c6110b5aade7a402bfb67534af86a7b2cdeb55\n"
    },
    {
      "commit": "94f7b49578b6aaa80de8ffed230648d601393905",
      "tree": "cfc69e453faefee38178ceb85378e1f0f1e17812",
      "parents": [
        "8df73882c60451e7f789bf9b1f3db2d7dc228640"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jul 22 18:08:23 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jul 29 13:30:46 2014 -0700"
      },
      "message": "Add GcRoot to clean up and enforce read barriers.\n\nIntroduce a value-type wrapper around Object* for GC roots so that 1)\nwe won\u0027t have to directly add the read barrier code in many places and\n2) we can avoid accidentally bypassing/missing read barriers on GC\nroots (the GcRoot interface ensures that the read barrier is executed\non a read).\n\nThe jdwp test passed.\n\nBug: 12687968\nChange-Id: Ib167c7c325b3c7e3900133578815f04d219972a1\n"
    },
    {
      "commit": "a59dd80f9f48cb750d329d4d4af2d99d72b484d1",
      "tree": "36958b15842205addaf6d2a13e40823eab47c8bc",
      "parents": [
        "84568fdf08f8f476292996ad653b4453d2894d23"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 02 16:28:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 22 08:24:14 2014 -0700"
      },
      "message": "Runtime can now be set to require relocation\n\nAdd a pair of runtime flags -Xrelocate and -Xnorelocate that can force\nthe runtime to require that all files that are run are relocated, to\nprevent attacks based on the known art base address.\n\nAdd support for running patchoat on oat files compiled without an image.\n\nChange run-test to have new --prebuild and --relocate flags.\n\nBug: 15358152\n\nChange-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d\n"
    },
    {
      "commit": "ea2e1bd713ca8295ba4fcd01e77a3ce532ea61e4",
      "tree": "d41be4b08041c5a2b1af626d8cdf6b69280723d5",
      "parents": [
        "241fd1192dfc0f7322660343179f9fc0591ed9ff"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jun 18 13:47:35 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jun 20 11:23:58 2014 -0700"
      },
      "message": "Add more read barriers for JNI roots.\n\nTo make it possible to concurrently scan the JNI global roots (that\nis, the roots visited by JavaVMExt::VisitRoots()), add read barriers\nto the indirect reference table and the reference table.\n\nAlso, add read barriers to the jmethodID/jfieldID decode routines\n(ScopedObjectAccessAlreadyRunnable::DecodeField/DecodeMethod) so that\nwe can concurrently handle (encoded) fields and methods.\n\nBug: 12687968\nChange-Id: I3df4e4e622a572ff0ea8d44b2dc70a4d6b3ba058\n"
    },
    {
      "commit": "a91a4bc1f8960f64c5f7e4616d46e21b8e1bfba2",
      "tree": "31988cb0623dc3b095142b65dff37dd959ff4df2",
      "parents": [
        "97ed29f800c56a06fd6989e0883e4c97bedd2453"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jun 13 16:44:55 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jun 13 16:44:55 2014 -0700"
      },
      "message": "Add read barriers for the class and the intern tables.\n\nAdd read barriers for the strong roots in the intern table and the\n(strong) roots in the class table to make possible concurrent scanning\nof them.\n\nBug: 12687968\nChange-Id: If6edc33a37e65a8494e66dc3b144138b1530367f\n"
    },
    {
      "commit": "196851b634a5bfdd8ab3fb59a320e550b21b0f4d",
      "tree": "f9fca2858b6213163d358c2eb2b2f88aa88a027b",
      "parents": [
        "ea0b6e284cab12eed88eebf6aa19e6292af57389"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu May 29 12:16:04 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu May 29 12:37:49 2014 -0700"
      },
      "message": "Add read barriers for the weak roots in the JNI weak globals.\n\nBug: 12687968\nChange-Id: Ic265a0e162e8cc9edc4ab7fa34f8afd5ce968d08\n"
    },
    {
      "commit": "eb8167a4f4d27fce0530f6724ab8032610cd146b",
      "tree": "bcfeaf13ad78f2dd68466bbd0e20c71944f7e854",
      "parents": [
        "6fb66a2bc4e1c0b7931101153e58714991237af7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 07 15:43:14 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 13 14:45:54 2014 -0700"
      },
      "message": "Add Handle/HandleScope and delete SirtRef.\n\nDelete SirtRef and replaced it with Handle. Handles are value types\nwhich wrap around StackReference*.\n\nRenamed StackIndirectReferenceTable to HandleScope.\n\nAdded a scoped handle wrapper which wraps around an Object** and\nrestores it in its destructor.\n\nRenamed Handle::get -\u003e Get.\n\nBug: 8473721\n\nChange-Id: Idbfebd4f35af629f0f43931b7c5184b334822c7a\n"
    },
    {
      "commit": "c56057e40938c587a74984651a510e320a8cb4fd",
      "tree": "6595bb7aa27ecf91dc9121d25722b40dec803ee6",
      "parents": [
        "0b8027003514c4fa6a850e5087076e991daaf4c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 04 13:18:58 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 05 15:46:09 2014 -0700"
      },
      "message": "Add lockless SynchronizedGet for indirect reference table.\n\nUsed for decoding global references without holding locks.\n\nResults on JniCallback:\nBefore: 615ms (3 samples).\nAfter: 585ms (3 samples).\n\nChange-Id: Ifcac8d0359cf658d87f695c6eb869d148af002e5\n"
    },
    {
      "commit": "987560fee798e48fb725c44b796d8ca7a5872ad6",
      "tree": "d61f35a129847f3f5fbed1436649e75acd940b3f",
      "parents": [
        "44b0053fdb7ad8a30138d29f714172a7dc69efb8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 11:42:59 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 14:52:19 2014 -0700"
      },
      "message": "Remove support for app JNI workarounds.\n\nChange-Id: I4396df7e93fcace4b5b19c2c387e5c30089182a6\n"
    },
    {
      "commit": "5647d189c3ea5324e569d96cef67c87879d6cd05",
      "tree": "bdf872592ef681147d9b28af2c38b11f603fe910",
      "parents": [
        "aa00fe010eb7b61c2de82611ce3f6fc0918a4f9e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 15:00:39 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 15:28:43 2014 -0800"
      },
      "message": "Fix tests to pass with VerifyObject.\n\nA SIRT ref with a null class was causing object verification problems\nin space_test.\n\nChange-Id: I95cfc3da5e0fec0155387f75612b0a3f26f6d3c9\n"
    },
    {
      "commit": "c645f1ddb7c40bea6a38eda4b3f83f6b6dec405b",
      "tree": "de6141864c1c011216c19dd99a2c1e2bc442dd6d",
      "parents": [
        "a9d7be62735e3356cef7e8ed797c519134a17061"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 18:11:53 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 12:09:04 2014 -0800"
      },
      "message": "Add more VerifyObject calls.\n\nAdded verify object calls to SirtRef, IndirectReferenceTable,\nReferenceTable.\n\nRemoved un-needed verify object in ScopedObjectAccess / DecodeJObject\nsince object sources are handled.\n\nBug: 12934910\nChange-Id: I55a46a8ea61fed2a77526eda27fd2cce97a9b125\n"
    },
    {
      "commit": "719d1a33f6569864f529e5a3fff59e7bca97aad0",
      "tree": "fcd84efd7b9806b93ec1a44e2317e6f882e7fe0e",
      "parents": [
        "5365eea9940269b662cfbe103caa348816ff1558"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 12:13:39 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 19:16:01 2014 -0800"
      },
      "message": "Enable annotalysis on clang ART builds.\n\nFix clang build errors aswell as restructure locking/mutex code for correct\nthread safety analysis support.\nReorder make dependencies so that host builds build first as they should\nprovide better compilation errors than target.\nRemove host\u0027s use of -fno-omit-frame-pointer as it has no value with correct\nuse of CFI, which we should have.\n\nChange-Id: I72cea8da9a3757b1a0b3acb4081feccb7c6cef90\n"
    },
    {
      "commit": "6dda898d47b3e8931e4404330e81b7110108e34f",
      "tree": "d8a0a20b8ac1ce3cd44273cf5c748d09980bd800",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 11:11:48 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 11:43:06 2014 -0800"
      },
      "message": "Disable compaction for jni workarounds.\n\nCompaction can\u0027t work when jni workarounds is enabled. Also some\nother refactoring.\n\nChange-Id: Ia7b0f2b39c79f5a0a5f50874d823b950ab02a0c3\n"
    },
    {
      "commit": "815873ecc312b1d231acce71e1a16f42cdaf09f2",
      "tree": "18ba2fa951775e60b240271bfe975e6e2cfc654c",
      "parents": [
        "2befd09cf4fe89a18a655f3e1dd310831bfa769f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 13 18:02:13 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 18 10:45:12 2014 -0800"
      },
      "message": "Change root visitor to use Object**.\n\nSimplifies code and improves the performance of root visiting since\nwe usually don\u0027t need to check to see if the object moved.\n\nChange-Id: Iba998f5a15ae1fa1b53ca5226dd2168a411196cf\n"
    },
    {
      "commit": "83c8ee000d525017ead8753fce6bc1020249b96a",
      "tree": "d5167ed15dee2629905ac3640b6ea0578d4ae312",
      "parents": [
        "7cba217ab0661d74deccbb97160cdf60b74d4ea3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 28 14:50:23 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 11 10:40:10 2014 -0800"
      },
      "message": "Add root types and thread id to root visiting.\n\nEnables us to pass the root type and thread id to hprof.\n\nBug: 12680863\nChange-Id: I6a0f1f9e3aa8f9b4033d695818ae7ca3460d67cb\n"
    },
    {
      "commit": "cd2cfff09c916c9e72a7cfeb0686b441847dc62e",
      "tree": "8a5f6d4ecbe0df81178c0e560cd9426bd104e91e",
      "parents": [
        "0a9c5fdc671616dbe5c2b2b2f88fa0ad7c65876c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 19 15:46:55 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 19 15:59:35 2013 -0800"
      },
      "message": "Change IndirectReferenceTable::Add null DCHECK to CHECK.\n\nChange-Id: I7d3582bd5ef75c7fef6a94c0e4f1fea38fc8b526\n"
    },
    {
      "commit": "423d2a3dcbb260b020efb5da59f784c9f02accbf",
      "tree": "79ed739e6072f8308c1cd880f9420a1c63539c95",
      "parents": [
        "b048dd2b662c19644361f4396a1e8d6213445ee8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 12 17:33:56 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 13 10:30:24 2013 -0700"
      },
      "message": "Add support for changing roots through the root visitor callback.\n\nNeeded for copying collectors.\n\nChange-Id: Icc4a342a57e0cfb79587edb02ef8c85e08808877\n"
    },
    {
      "commit": "02e25119b15a6f619f17db99f5d05124a5807ff3",
      "tree": "7be4cbbf28033e5ee0621565b410fe5d8170a8fb",
      "parents": [
        "7d70a7932f0ba09eb01a93caab060aef1403d4e6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 14 16:14:24 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 16 13:15:37 2013 -0700"
      },
      "message": "Fix up TODO: c++0x, update cpplint.\n\nNeeded to update cpplint to handle const auto.\n\nFixed a few cpplint errors that were being missed before.\n\nReplaced most of the TODO c++0x with ranged based loops. Loops which\ndo not have a descriptive container name have a concrete type instead\nof auto.\n\nChange-Id: Id7cc0f27030f56057c544e94277300b3f298c9c5\n"
    },
    {
      "commit": "9dcd45c60c691524bd8ef7d6f65075d9ee3e5554",
      "tree": "d27237f65c162318aed87da438431607f0a15ba6",
      "parents": [
        "46a1270fad27d81904ed60d0df56761356af500d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 29 14:40:52 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 29 14:40:52 2013 -0700"
      },
      "message": "Fix NewLocalRef to use AddLocalReference.\n\nBug: 10026664\nChange-Id: I06f8f75a92f73b3b58fa767c0d08d1b736f7d5b5\n"
    },
    {
      "commit": "7934ac288acfb2552bb0b06ec1f61e5820d924a4",
      "tree": "43f3acd8af7fd34d4ae7b64f6e06bb8429d74bb8",
      "parents": [
        "fb331d7ca004f39608fcfdae49d38df90c702ea9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 10:54:15 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 11:55:10 2013 -0700"
      },
      "message": "Fix cpplint whitespace/comments issues\n\nChange-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    },
    {
      "commit": "4f6ad8ab428038129b2d0d6c40b7fd625cca15e1",
      "tree": "d1025ed9203d0cdf7aa959d9cecd8dc1f0c0bfeb",
      "parents": [
        "aabe8adacc7bf3a8ab6f6f3dd37fc839b6fd762f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 18 15:27:28 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 18 15:29:59 2013 -0700"
      },
      "message": "Various performance improvements.\n\nPerformance had regressed due to verify object and method invocation changes.\nAvoid trampolines for static calls in same class.\nVarious inlining changes.\nMake verify object something that\u0027s only compiled-in in debug builds.\n\nChange-Id: Ia261a52232c3b10667c668f8adfadc0da3048bc5\n"
    },
    {
      "commit": "2dd0e2cea360bc9206eb88ecc40d259e796c239d",
      "tree": "9d619dc9508cbe73e4793bf6f08cbc761abfb48a",
      "parents": [
        "ac21b797b3a425975d656d6b84a7b24401d35f42"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 24 12:42:14 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 30 16:48:31 2013 -0800"
      },
      "message": "Directory restructuring of object.h\n\nBreak object.h into constituent files.\nReduce number of #includes in other GC header files.\nIntroduce -inl.h files to avoid mirror files #include-ing each other.\nCheck invariants of verifier RegTypes for all constructors.\n\nChange-Id: Iecf1171c02910ac152d52947330ef456df4043bc\n"
    },
    {
      "commit": "63818dc8b06af4a1e65c41b453f1a42166c22728",
      "tree": "8d99894096a612c072b3bce521ae5ac24ffbbf7a",
      "parents": [
        "2e9f7ed8d00271cb1cf082d68b4f4bc60702d6ec"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 26 12:23:04 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 26 12:23:04 2012 -0700"
      },
      "message": "Fix segv in indirect reference table dump.\n\nReferenceTable::Dump is common code but can\u0027t handle NULLs. Process\nIndirectReferenceTable\u0027s use so that it doesn\u0027t pass NULLs for removed\nslots.\nImprove unit tests.\n\nChange-Id: Ia41375f8f2ecc907ceda8c39d146ce6ef607fb08\n"
    },
    {
      "commit": "00f7d0eaa6bd93d33bf0c1429bf4ba0b3f28abac",
      "tree": "6a2172ece15c4699e6c2a67ce76f019db0a9a21d",
      "parents": [
        "634ea28f78c4a138e6a1de54eae8696095422415"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 19 15:28:27 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 10:45:52 2012 -0700"
      },
      "message": "Global lock levels.\n\nIntroduce the notion of the mutators/GC being a shared-exclusive (aka\nreader-writer) lock. Introduce globally ordered locks, analysable by\nannotalysis, statically at compile time. Add locking attributes to\nmethods.\n\nMore subtly, remove the heap_lock_ and split between various locks that\nare held for smaller periods (where work doesn\u0027t get blocked). Remove\nbuggy Dalvik style thread transitions. Make GC use CMS in all cases when\nconcurrent is enabled. Fix bug where suspend counts rather than debug\nsuspend counts were sent to JDWP. Move the PathClassLoader to\nWellKnownClasses. In debugger refactor calls to send request and\npossibly suspend. Break apart different VmWait thread states. Move\nidentity hash code to a shared method.\n\nChange-Id: Icdbfc3ce3fcccd14341860ac7305d8e97b51f5c6\n"
    },
    {
      "commit": "0399dde18753aa9bd2bd0d7cf60beef154d164a4",
      "tree": "ea88327c01ca321074aaa59b97e4c54348802937",
      "parents": [
        "de5705dcf4ab5f92d48e144bcd7b59f7bcd18e16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 06 17:09:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 21 22:11:24 2012 -0700"
      },
      "message": "Remove Frame, merge shadow and quick representations.\n\nChange-Id: I5ae03a5e52111792d2df7e83cbd89ab25777844b\n"
    },
    {
      "commit": "73e66f73f5093b64f2b023ebbb85916a13d5c937",
      "tree": "fca2dcdf446aec9aad2a3096098c038279279e53",
      "parents": [
        "145d491d1a30b291eb3ea608507a04451237f327"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 09:34:45 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 09:34:45 2012 -0700"
      },
      "message": "Tidy up and finish reference table dumping.\n\nChange-Id: I9f0d214e27a75d373e3144b738f1e3da51bbc0ca\n"
    },
    {
      "commit": "0e57ccbbc2de9eeaeecd699575aab22a3f555619",
      "tree": "3137981abc7f07f3cdcc87bfbf5fbd73fa0c966a",
      "parents": [
        "0879504b6ac72f6d93dcccf9e1b7e1769a73b230"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 03 16:04:52 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 04 11:18:48 2012 -0700"
      },
      "message": "Start automatically generating operator\u003c\u003cs for enums.\n\nChange-Id: I0f53db089b9a1ba38ce82b75ab22448877be67e0\n"
    },
    {
      "commit": "28f1a147d77ec772db98bed890b50a9ddcff2365",
      "tree": "bebca04cea429109260854778da197ae594450d7",
      "parents": [
        "1cb0ae742072b5ea2c7f677e6ad220ba01255dae"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Thu Mar 15 21:51:52 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 20:53:38 2012 -0700"
      },
      "message": "Implement LLVM version of jni_compiler to pass 17 jni_compiler tests.\n\nBecause we now have both shadow_frame and sirt (which is just for SirtRef\u003c\u003e\nin the LLVM version), we define a new function NumStackReferences() as follows:\n  NumStackReferences() \u003d NumSirtReferences() + NumShadowFrameReferences().\n\n(cherry picked from commit 18fe89a14d212da9ec6841f4d19d08482a9610b7)\n\nChange-Id: Idd95ee4276801b1555be87934cd9c4f33ab8a88a\n"
    },
    {
      "commit": "3294429c8b80933d391e2440ec8f74f2c66fb070",
      "tree": "6bbd93a62455c2314c29838ab2c40b77074c7bf8",
      "parents": [
        "398f64b5805246765b699839b439e18c0dfbf2ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 18:26:15 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 18:26:15 2012 -0700"
      },
      "message": "Initialize the JNI indirect reference table to make Valgrind happy.\n\nThis eliminates the benign warning about the \u0027serial\u0027 field being\nuninitialized.\n\nBug: 5542417\nChange-Id: Ibce1df7fd1e340306982a8ec08d3cc38d6ab32a1\n"
    },
    {
      "commit": "467c9699c3de467f76f03494a9389ebba285cb6c",
      "tree": "6feed1eee61f319960c71350c32a360bd3f6ff7e",
      "parents": [
        "8dfcbea64ef8c9279329119e42a626771669044d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 21 11:05:16 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 21 11:05:16 2012 -0800"
      },
      "message": "Fix JNI work around for IRT removal\n\nIf we are in work around mode AND we have an invalid reference, try to\ncompute its index. Previous code would unconditionally try to look up\nindexes for all references even if they weren\u0027t invalid.\n\nChange-Id: I606689961f9aee6e5eba0ac8e15a1b8b2fc505b7\n"
    },
    {
      "commit": "ba8eee10607a524f43b55a6f33c13924fb16d435",
      "tree": "45f3c3728bcaee9ff04baeaf1706693e677757bf",
      "parents": [
        "844f9a072454eb9dca1022299b6bf99ef4294008"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "message": "Remove more lint.\n\nChange-Id: I48714db4169d9ea0536342809361210910ee2091\n"
    },
    {
      "commit": "d07986fad0d08cdf05505cf9230714a2cf0dd9ae",
      "tree": "731b6abf2c2e0a5e51453a80029e1a9073b12354",
      "parents": [
        "7fe2c691866ad643b9e21dd2c9d36fa79ec454c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 06 18:27:45 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 09:16:24 2011 -0800"
      },
      "message": "Implement JDWP InvokeMethod and breakpoints on exception throwing.\n\nChange-Id: I1142bee843104f0850fd7270752104d5d73a44f0\n"
    },
    {
      "commit": "2ced6a534157d5d963693346904389c19775d2da",
      "tree": "469f865b0cca1c8388aad9b656258a7eef645c8c",
      "parents": [
        "7f14116b1daeb2d6c80ed93716f734d34865eae1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 18:44:48 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 10:52:26 2011 -0700"
      },
      "message": "Implement EnsureCapacity, PushLocalFrame, and PopLocalFrame.\n\nThese are as good as the old implementations, except that unbalanced usages\nwon\u0027t be cleaned up completely (you\u0027ll slowly grow the vector in your JNIEnv).\n\nThis patch also renames IndirectReferenceTable::Contains to the less misleading\nContainsDirectPointer, and fixes JNI::GetObjectRefType to not claim that\ninvalid local references are locals indefinitely.\n\nWe also now include detail messages in OOMEs where possible. (Test 061 still\npasses.) We still log regardless, since OOME should be a rare thing.\n\nChange-Id: I77b2f44ea066e92c517e5c96700ec533727b9c78\n"
    },
    {
      "commit": "06b37d91bb3d543002b1aee9829691f5e8bebc7e",
      "tree": "15d08cf8993856596ca8567507a8e87d4569bd32",
      "parents": [
        "3b6baaa203fa63f1522b2172a1645f90412afdae"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 11:51:29 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 11:51:29 2011 -0700"
      },
      "message": "Always log the value when an alignment check fails.\n\nAnd move checking that the alignment is a power of two to compile-time.\n\nChange-Id: I551f364af05912958ed2d4d095b1ce35b6abaf6e\n"
    },
    {
      "commit": "726079d3e2e50854cd6ca4c393f4529a796dba58",
      "tree": "717baafeaeadead98668b9ae6e0323cbb6347a25",
      "parents": [
        "fe2e17f424584ad6969c6fcf7cf6364c69355d53"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 18:43:44 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 11:02:18 2011 -0700"
      },
      "message": "Finish the OutOfMemoryError implementation.\n\nThis copes with the double-OOME case.\n\nAlso check that I don\u0027t leave local references in a newly-attached thread\u0027s\nlocal reference table, and fix the leaks this discovered.\n\nAlso fix the code that implements fillInNativeStackTrace to cope with the\nsituation where we\u0027re not able to allocate (because we\u0027re throwing\nOutOfMemoryError and there\u0027s not enough space left for our arrays).\n\nAlso fix the order of checking for a pending exception and popping the\nlocal references in the JNI native method invocation stub. (This fixes\nthe warnings we\u0027d been seeing from the IndirectReferenceTable in test 064.)\n\nAlso improve some -Xcheck:jni output.\n\nThis fixes test 061.\n\nChange-Id: Icc04a2c06339bd28d6772190350a86abfc5734b8\n"
    },
    {
      "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"
    }
  ]
}
