)]}'
{
  "log": [
    {
      "commit": "1eb512d33f94d1dd7ea38263307ba0f7a0dfa653",
      "tree": "b4d4d9b16013ab90fb4b40d23013d7ef44bb5852",
      "parents": [
        "b917ea1a62aa0ab8eca3f689ef64b5be34e11abb"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 18 15:42:20 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 20 14:55:26 2013 -0700"
      },
      "message": "Fast JNI support.\n\nUse a modifier to signal a native method is a fast JNI method. If the\nmodifier is set then don\u0027t perform runnable transitions.\n\nChange-Id: I7835b4d837bfdd1cb8e2d54b919c0d5e6cf90499\n"
    },
    {
      "commit": "be031fff278799984166ec866c2dd202447e0f23",
      "tree": "48c60def3d4727cd5d8ba5a83b12ed27092bbb4b",
      "parents": [
        "34633b22f74393344987a50b8aaee548a9dadc18"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Oct 08 16:42:37 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 09 17:29:11 2013 -0700"
      },
      "message": "Remove four counter increments out of the allocation path.\n\n- This change removes the four allocation counters (the number of\nbytes allocated, the number of objects allocated, the number of bytes\nallocated ever, the number of objects allocated ever) from the\ndlmalloc space allocation path. Now those counter values are computed\non the fly based on a combination of the two new counters that are\nincremented by the GC side (the number of bytes freed ever and the\nnumber of objects freed ever) and mspace_inspect_all() calls.\n\n- This results in a 1-2% speedup (though with some noise) in Ritz\nMemAllocTest on Nexus 4.\n\nBug: 9986565\nChange-Id: Id9a8e05a745ac1e5ea7a2b5fd9319814a9d4af13\n"
    },
    {
      "commit": "a436fde2762664a3ecdda5eefcadd20b2e104f59",
      "tree": "22431bc387483220728a3bc99ec7314abce3ad60",
      "parents": [
        "10cc81056261625902a8a073bafb9f499eec4ff7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 27 23:34:06 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 27 23:37:33 2013 -0700"
      },
      "message": "Handle OOMEs in class linker with grace.\n\nCheck for OOMEs and then fail due to them in class loading.\nMake the compiler driver spot OOMEs during resolution and abort compilation to\navoid needless GC thrash then eventual death.\nAllocate the pre-allocated OOME during Runtime::Init as Runtime::Start isn\u0027t\ncalled in the context of the compiler/tools.\n\nChange-Id: Id72199d0fe82001b5bf22758b3cdc9cc4b8efbb9\n"
    },
    {
      "commit": "1a4d6d809b4c24580b4667e3075d545738d83ec7",
      "tree": "2b1ba966630ab935e85aa8519d3ed33b907ce107",
      "parents": [
        "e2f77e7592842cad5a59e73535b8982c35e156ca"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 13 20:07:05 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 13 20:07:05 2013 -0700"
      },
      "message": "If CheckJNI is enabled don\u0027t allow app workarounds\n\nChange-Id: I030231d2b1ebcabb5c3922ea91230b40998711ba\n"
    },
    {
      "commit": "cc386f94631dd1d60b0b0b2d4e1e243dda363f32",
      "tree": "dab43dbcd94c1a92d32f88a90cf900c8c4d90da9",
      "parents": [
        "36e58b8ab7f2cf8609ecebb09dd302db3f51f40c",
        "c39e342317d77e701b4cd01cd5b05902e6512f4b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 09 13:49:35 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 09 13:49:35 2013 -0700"
      },
      "message": "am c39e3423: Use JNI to access activity manager process state.\n\n* commit \u0027c39e342317d77e701b4cd01cd5b05902e6512f4b\u0027:\n  Use JNI to access activity manager process state.\n"
    },
    {
      "commit": "c39e342317d77e701b4cd01cd5b05902e6512f4b",
      "tree": "b43a85e1c60377505d56d0d91fe4da704f4458fc",
      "parents": [
        "f6a7406e9210449ddd23bff23ad208e1877b35b7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 07 16:41:36 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 09 11:03:47 2013 -0700"
      },
      "message": "Use JNI to access activity manager process state.\n\nAfter a GC occurs, we use JNI to access activity manager process\nstate to decide whether or not we will trim.\n\nChange-Id: Iad981e3a7cdc694729d8792cc0f19e0262154388\n"
    },
    {
      "commit": "3839f7a4d482049cfb8d5a0a9e955e7ede27e1d3",
      "tree": "423184963c9824ae908d5e7f516f59ded973a1ed",
      "parents": [
        "d8de72f54f6076218373af4abf76dd2a548f13e3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 07 23:26:58 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 07 23:26:58 2013 -0700"
      },
      "message": "Fix portable build.\n\nChange-Id: Icec79ae87b027e49e9d71404b127d61601bbb3d6\n"
    },
    {
      "commit": "848871b4d8481229c32e0d048a9856e5a9a17ef9",
      "tree": "4be4602e3becc899f76a29a87618801458fe04b9",
      "parents": [
        "423fb4d70f2ac36bf9f630146b4150771a8e7e76"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 05 10:56:33 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 07 22:17:00 2013 -0700"
      },
      "message": "Entry point clean up.\n\nCreate set of entry points needed for image methods to avoid fix-up at load time:\n - interpreter - bridge to interpreter, bridge to compiled code\n - jni - dlsym lookup\n - quick - resolution and bridge to interpreter\n - portable - resolution and bridge to interpreter\n\nFix JNI work around to use JNI work around argument rewriting code that\u0027d been\naccidentally disabled.\nRemove abstact method error stub, use interpreter bridge instead.\nConsolidate trampoline (previously stub) generation in generic helper.\nSimplify trampolines to jump directly into assembly code, keeps stack crawlable.\nDex: replace use of int with ThreadOffset for values that are thread offsets.\nTidy entry point routines between interpreter, jni, quick and portable.\n\nChange-Id: I52a7c2bbb1b7e0ff8a3c3100b774212309d0828e\n"
    },
    {
      "commit": "bbf8a09601f5379293b498b7d181ffc2a1f93b6a",
      "tree": "88ffc1d3de2b367154c4413d0471e7d96ede73b7",
      "parents": [
        "1359a18a4b9b7c9442afcbb1bf7eec1398b85ae6",
        "3da08f4d2cef02bd0a3cc45ae3b7555fc547d29a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 19 09:55:14 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 19 09:55:14 2013 -0700"
      },
      "message": "resolved conflicts for merge of 3da08f4d to dalvik-dev\n\nChange-Id: Ia237450dac762602bb159904a1032e6fccb2d7fd\n"
    },
    {
      "commit": "82353313bbe00d033b6733535d0dcd6f56c36d8d",
      "tree": "7f154381b5288793aedaff313a0b2e7e800e8967",
      "parents": [
        "0cd7ec2dcd8d7ba30bf3ca420b40dac52849876c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 18 10:47:51 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 18 14:33:24 2013 -0700"
      },
      "message": "Add interface for updating the heap\u0027s process state\n\nIn the future, the heap\u0027s process state will be used\nto determine GC behavior.\n\nChange-Id: Iba4f038d28dbf483b6573d8feb25e4246ead1d50\n"
    },
    {
      "commit": "1db9113bcc12368e405583804ceb8aa7c80cc0cd",
      "tree": "b826b626f901b6012adecf697cb979d371aca78f",
      "parents": [
        "bba5dd55b7deda3a3271be502f1d3b0c30a759d6",
        "7940e44f4517de5e2634a7e07d58d0fb26160513"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 18:05:20 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 18:05:53 2013 -0700"
      },
      "message": "resolved conflicts for merge of 7940e44f to dalvik-dev\n\nChange-Id: I6529b2fc27dfaedd2cb87b3697d049ccabed36ee\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": "bba5dd55b7deda3a3271be502f1d3b0c30a759d6",
      "tree": "74bf9e72fbd66def253f317b9d8b6d7b8d67b86b",
      "parents": [],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri Jul 12 22:57:56 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 12 22:57:56 2013 +0000"
      },
      "message": "Merge \"Semi-pruned SSA support for sea-ir.\" into dalvik-dev"
    },
    {
      "commit": "cef450c613d8324db7c418130596182b8e9a5cdd",
      "tree": "2355aca9a92bd8ff515c7b5f759f92220c396467",
      "parents": [
        "55163b8c34f40c9107cc3aa72e0d2f542f7a164e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jun 28 14:38:26 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Jun 30 13:17:06 2013 -0700"
      },
      "message": "add dalvik.system.VMRuntime.vmLibrary implementation for ART\n\nChange-Id: Ibc1a5abb5a0ee49cb20e55dc2e169a224fcf9d8b\n"
    },
    {
      "commit": "1d54e73444e017d3a65234e0f193846f3e27472b",
      "tree": "1de93661e95a0ce6fa78fdfc23d0cfd3dd2a06f7",
      "parents": [
        "4c22e7eabef3f815841dfc6e0d5bbead96150752"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 02 21:10:01 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 21 11:10:42 2013 -0700"
      },
      "message": "GC clean up.\n\nGreater use of directories and namespaces.\nFix bugs that cause verify options to fail.\nAddress numerous other issues:\n\nGC barrier wait occurring holding locks:\nGC barrier waits occur when we wait for threads to run the check point function\non themselves. This is happening with the heap bitmap and mutator lock held\nmeaning that a thread that tries to take either lock exclusively will block\nwaiting on a thread that is waiting. If this thread is the thread we\u0027re waiting\nto run the check point then the VM will deadlock.\nThis deadlock occurred unnoticed as the call to check for wait safety was\nremoved in: https://googleplex-android-review.googlesource.com/#/c/249423/1.\n\nNewTimingLogger:\nExisting timing log states when a split ends but not when it begins. This isn\u0027t\ngood for systrace, in the context of GC it means that races between mutators\nand the GC are hard to discover what phase the GC is in, we know what phase it\njust finished and derive but that\u0027s not ideal.\n\nSupport for only 1 discontinuous space:\nCode special cases continuous and large object space, rather than assuming we\ncan have a collection of both.\n\nSorted atomic stacks:\nUsed to improve verification performance. Simplify their use and add extra\nchecks.\n\nSimplify mod-union table abstractions.\n\nReduce use of std::strings and their associated overhead in hot code.\n\nMake time units of fields explicit.\n\nReduce confusion that IsAllocSpace is really IsDlMallocSpace.\n\nMake GetTotalMemory (exposed via System) equal to the footprint (as in Dalvik)\nrather than the max memory footprint.\n\nChange-Id: Ie87067140fa4499b15edab691fe6565d79599812\n"
    },
    {
      "commit": "62d6c772205b8859f0ebf7ad105402ec4c3e2e01",
      "tree": "e2f2ba6d71ed5a39c9f6909e3f7c08e998053315",
      "parents": [
        "c9b17c7ee96cd04fac9048aab624ed554fe260bf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 08:32:07 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 08 14:24:13 2013 -0700"
      },
      "message": "Interpreter entries and instrumentation as a listener.\n\nMake the instrumentation responsible for whether we want method entry/exit\nstubs, and allow it to use interpreter entry stubs when instruction by\ninstruction instrumentation is required. Improve deoptimization so more JDWP\ntest cases are passing.\n\nRefactor exception debug posting, in particular improve reporting in the\ninterpreter. Improve class linker exception throwing so that broken dex files\nare more likely to be reported. Fixes the performance issue Bug: 8410519.\n\nFix some error reporting lock level errors for the large object space. Make\nfast object verification faster.\n\nAdd some debug mode robustness to finding dex PCs in GC maps.\n\nAdd printf attributes to JniAbortF and fix errors.\n\nExpand run-test 044 to test return behaviors and fix issues with not throwing\nappropriate exceptions for proxies.\n\nEnsure causes are reported with a class linker NoClassDefFoundError and JNI\nNoSuchFieldError.\n\nRemove unused debugMe and updateDebuggerFromCode.\n\nThere\u0027s a minor sizing tweak to the arg array builder, and an extra reference\narray check in the interpreter.\n\nSome clean-up of trace code.\n\nFix reg type cache destructor if it is called after the reg type cache is\nshutdown (as is the case in oatdump).\n\nChange-Id: I6519c7b35df77f978d011999354c864f4918e8ce\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": "c928de90ad22ecdf83c18a07008409595f13d3b1",
      "tree": "065a08f379960f7ba946318aaa742d7ddd0c94bd",
      "parents": [
        "0f827169742aad6209d830db773a101849c32a83"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "message": "Remove Iceland.\n\nART_USE_LLVM_COMPILER is removed and when necessary ART_USE_PORTABLE_COMPILER\nis used in #ifdefs.\n\nChange-Id: Iffa9ce5b0246c7c427ccc4e67ecc134624632e55\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": "4893188d8ff9744f5d37b344e5a0bd582242eded",
      "tree": "dc5ac7a136b6b084fefb246ce2a2fde71bd06ebc",
      "parents": [
        "28d76682d591034a5bcb610487c1f2db32d01c84"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 22 14:35:16 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 22 16:24:35 2013 -0800"
      },
      "message": "Avoid heap trims in foreground and audio apps.\n\nHeap trimming the dlmalloc spaces holds their locks causing jank.\nImprove diagnostic message to break apart managed and native heap trims and\ndetail amount of heap advised back to the kernel.\n\nChange-Id: Ic08cf4749342cbd057b162b901d1676bb7e6418b\n"
    },
    {
      "commit": "3056d0ca38acc3d829a13ec8f97d35a002ee354e",
      "tree": "395028dc5fbfaf00f52594fe2df34b57b88e65f4",
      "parents": [
        "ec139de9e77663c13a907a5244267db8bed947b5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 19 10:49:56 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 19 11:33:07 2012 -0700"
      },
      "message": "Improve accuracy of heap trim times\n\nBefore, WaitForConcurrentGc was being called inside of Heap::Trim.\nThis caused the printed trim times to be larger than they should be.\n\nChange-Id: Icc76b5ed7fb99350536d48a5215e7c1fdb8b4567\n"
    },
    {
      "commit": "1c23e1edb7361bbaec6e57fca86d8d3797960ad2",
      "tree": "af8aa791777271fc5105f19a70aa972768493856",
      "parents": [
        "ed6d5ed3494648780b9e91422c90d6bc22c16b79"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 12 14:14:11 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 12 17:34:08 2012 -0700"
      },
      "message": "More space refactoring.\n\nAdd common interface, AllocSpace.\n\nRenamed the old AllocSpace to DLMallocSpace.\n\nAdded an new option enforce_target_size_, which when enabled, doesn\u0027t let\nthe heap grow past ideal heap size calculated during last Gc.\n\nRemoved redundant AllocationSize calls.\n\nMoved large object space to its own file instead of being in space.h/cc.\n\nChange-Id: I15e60531114bf213800599737cbd66ef44b46b15\n"
    },
    {
      "commit": "7469ebf3888b8037421cb6834f37f946646265ec",
      "tree": "b1eb8cd8d1e3b6263c2de77616020de4b4b5019f",
      "parents": [
        "d8195f19840911a73b1491dfc8e7c18139753731"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 24 16:28:36 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 08 18:02:42 2012 -0700"
      },
      "message": "Refactor and remove copy mark bits.\n\nRefactor code GC realted code to be in a GC folder.\n\nRemove copy mark bits by using pointer changing instead.\n\nEnable concurrent sweeping of system weaks.\n\nFix non concurrent GC plan.\n\nChange-Id: I9c71478be27d21a75f8a4e6af6faabe896e5e263\n"
    },
    {
      "commit": "50b35e2fd1a68cd1240e4a9d9f363e11764957d1",
      "tree": "4f3c58b7b293380f19e4f33357cb352e3330772e",
      "parents": [
        "8e9a1497f0d7da4d55f6e7ed8a7d96ba6db7222d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 04 10:09:15 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 05 11:07:39 2012 -0700"
      },
      "message": "Explicitly pass Thread::Current to MutexLock and Alloc.\n\nChange-Id: I8b75bc0617915465f102815b32306aa7760dcae4\n"
    },
    {
      "commit": "2fde53367dbe721e5273c34b590e67112322cc9e",
      "tree": "c5e10aa7d9d41b29298a42a0b96807787e27c574",
      "parents": [
        "2e447e0e8725503d975c50fbbd13df4c769ca85e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 14 14:51:54 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 04 10:14:03 2012 -0700"
      },
      "message": "Refactor spaces and add free list large object space\n\nAdded some more abstraction for spaces, we now have ContinuousSpaces and DiscontinousSpaces.\n\nAdded a free list version of large object space.\n\nPerformance should be better than the memory map version since we avoid creating more than\none memory map.\n\nAdded a cause for Gc which prints with the Gc message, dalvik has this as well.\n\nChange-Id: Ie4aa6b204fbde7193e8305eb246158fae0444cc1\n"
    },
    {
      "commit": "81d425b0b232962441616f8b14f73620bffef5e5",
      "tree": "cd1e46656269acf20e78817d675e56d9b9133e6c",
      "parents": [
        "bfaf917edbb1de8d158c3615e0da8ac3143d10c8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 27 16:03:43 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 27 17:19:25 2012 -0700"
      },
      "message": "Pass self to lock methods.\n\nThis avoids frequent recomputation of\nThread::Current/pthread_getspecific.\n\nAlso add a futex based reader/writer mutex that is disabled.\n\nChange-Id: I118fdb99ef1d1c4bfda6446ba3a0d8b6ab31eaee\n"
    },
    {
      "commit": "b726dcb581bf72da46527378ccb6889020f0e6e9",
      "tree": "c0383ed788652926e93147e50d659ed226519548",
      "parents": [
        "fd678beb171a4686a4f2d53ca4188a4ade8fa54e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 08:57:23 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 09:06:19 2012 -0700"
      },
      "message": "Rename GlobalSynchronization to Locks\n\nAlso address some review comments in common_throws relating to\nToStr\u003cInvokeType\u003e and exception detail messages.\n\nChange-Id: Ibf2c0f147689fa236d349bd7f01eed3c2522552b\n"
    },
    {
      "commit": "fd678beb171a4686a4f2d53ca4188a4ade8fa54e",
      "tree": "ab932e92d683d8033241bb2248da98e76249d3eb",
      "parents": [
        "5bfa60ffcc953340feb711ed05cf576ac821905e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 30 14:50:54 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 04 14:58:14 2012 -0700"
      },
      "message": "Additional heap verification for the Gc\n\nThere are now two verification booleans which can be enabled. When these get enabled, it verifies that each live object only references other live objects.\n\nChanged SetClass to use SetFieldPtr to avoid having an extra card mark. This is safe since all classes are held live by the class linker.\n\nChange-Id: I005bb59e5cc8153a79d3ccb3d7b5cabd29fb4051\n"
    },
    {
      "commit": "15bf2d34efa2218e287b584fb3653d268b9edc8d",
      "tree": "4435664bd2c9a041d8c355940f2b5c95e03d38f7",
      "parents": [
        "e4f0b2ab4abd8e942a099e9b9b4682fbdd9eb21c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 28 17:33:04 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 30 17:22:52 2012 -0700"
      },
      "message": "Use bionic\u0027s dlmalloc 2.8.5.\n\nAlso fix free space computations for DDMS.\n\nChange-Id: Icbc045b5461af89a0516f37f01acaaa815205348\n"
    },
    {
      "commit": "b18e77abdb06a443744fbb6589e0932fa89f6073",
      "tree": "0e77099cfedbbb13a1fee3c1b93c34305b447d1c",
      "parents": [
        "22ad71521f3006b9bf344738c0276a501934fc01"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 21 14:20:03 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 21 14:20:21 2012 -0700"
      },
      "message": "Switch art over to the new bionic dlmalloc 2.8.5 callback\n\nChange-Id: I1314e87a51553fd358dbf9c44f804a7eb2de3a7d\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": "b062fdd4cb097fbae69b4bcb479c34d83ecab8ca",
      "tree": "215ea8fb42828a0f753ac5bd424ca098ce748342",
      "parents": [
        "ca314c6a1be1b4cc11f4d284da90af7dc8a4ce25"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 03 09:51:48 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 11 17:17:46 2012 -0700"
      },
      "message": "Each space has its own bitmap(s)\n\nEach alloc space now has One mark+live bitmap. Each image space has only one live bitmap.\n\nChange-Id: I2e919d1bd7d9f4d35d0e95ed83a58df6f754df6e\n"
    },
    {
      "commit": "365c10235438607541fa2259a5fec48061b90bd8",
      "tree": "26516a4985a8bbef4c8da36b99bf1e54af3ad24d",
      "parents": [
        "147440427984816b6ed5235a9b1fb2cbf99496d0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 22 15:05:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 15:21:01 2012 -0700"
      },
      "message": "Increase use of ScopedJniThreadState.\n\nMove the routines for changing Object* to jobject and vice-versa\n(AddLocalReference and Decode) to ScopedJniThreadState to enforce use of\nObject*s in the Runnable thread state. In the Runnable thread state\nsuspension is necessary before GC can take place.\n\nReduce use of const ClassLoader* as the code bottoms out in FindClass\nand with a field assignment where the const is cast away (ie if we\u0027re\nnot going to enforce the const-ness we shouldn\u0027t pretend it is).\n\nRefactor the Thread::Attach API so that we\u0027re not handling raw Objects on\nunattached threads.\n\nRemove some unreachable code.\n\nChange-Id: I0fa969f49ee6a8f10752af74a6b0e04d46b4cd97\n"
    },
    {
      "commit": "7664f5cd118b355a5fe0c7536cb48ac991ed2b62",
      "tree": "0564c36316e2aa0a892ff9914258433f14641a07",
      "parents": [
        "9eb5f03e0dd90ac25e01fcf81f832c50a1f09d2c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 08 18:15:32 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 11 11:17:13 2012 -0700"
      },
      "message": "Fix GC performance regression\n\nEnable CMS and fix performance regression due to recursive marking image spaces. Dependent on my java change list.\n\nChange-Id: I4765792aa8226e811ac158f04ab88217db755573\n"
    },
    {
      "commit": "9eebd3b36f1f04c430623d6a2cffff05d80513ba",
      "tree": "487a51f0f4e78c385e240ce7722d46d4ca220be9",
      "parents": [
        "a9719eb4167b544438268d46692389761652fc5d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 13:56:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 14:10:51 2012 -0700"
      },
      "message": "Trim the native heap too, like dalvik did.\n\nChange-Id: I240f33937ffe7a3d3df2a66cf5b4ee5296bce16d\n"
    },
    {
      "commit": "eac766769e3114a078c188ea26776a81f0edb3cf",
      "tree": "4b9b8dfc89725173431817baba4455c013e40577",
      "parents": [
        "3f9ace8d90bfc48c8d7bf35af66de8ce8238de7f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 21:56:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 25 12:04:43 2012 -0700"
      },
      "message": "DO NOT MERGE Fix all unsafe caching to be like libcore.\n\nThis way, if a runtime is restarted within a process, we re-initialize all\nthe cached data.\n\nConflicts:\n\n\tsrc/native/java_lang_Runtime.cc -- nativeExit lost an argument in dalvik-dev\n\n(cherry picked from commit 7756d5473fa27ce7e6ac7c31770eef7030431da4)\n\nChange-Id: I6184fc20c2a9ec16c4b053584a4d1c3b64452d0f\n"
    },
    {
      "commit": "fbe5b757cff040a455f93388d6eebdee0653a089",
      "tree": "1cc69bee1f70aa8adae7fb32add6c46f8a3a0ddb",
      "parents": [
        "da83d972b1aa90ada23b592bcea00603d1ee78b7"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Apr 19 00:26:00 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Apr 19 00:33:43 2012 -0700"
      },
      "message": "Fix LLVM build. Otherwise, function not used warning.\n\nNote that we use -Werror.\n\nChange-Id: I14c2d1d040d392cf5b2866298dc9c62a216f329b\n"
    },
    {
      "commit": "264675757a1d1ba43f53634d1301b7d6b79fe02c",
      "tree": "de8ebe45f28c4c287d3be5e8cca7fee2fe5c587a",
      "parents": [
        "69eafaae2c910ea6f704a3867f9b78647174a0df"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Tue Apr 17 20:51:22 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Apr 18 18:44:23 2012 -0700"
      },
      "message": "Don\u0027t use work_around_app_jni_bugs for llvm now.\n\nChange-Id: Id698e60c09dc863311445498d8813e38a48b8cc4\n"
    },
    {
      "commit": "0dae08ead9112adb81ad507b81187f00f77bc168",
      "tree": "5c09e5ab16fa544360e6354796f999cfeaf991e7",
      "parents": [
        "776ac1fa61237db645adb4370a4aab888530caf4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Apr 14 13:55:11 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Apr 14 13:55:11 2012 -0700"
      },
      "message": "Move JNI methods out of top-level.\n\nChange-Id: Ia9c883ba9a13b205cda7b72024e2939f02583acb\n"
    },
    {
      "commit": "34e069606d6f1698cd3c33b39e72b79ae27e1c7b",
      "tree": "0feb7e9bde6cfe01c0df3ef2d8de3210570f7ce2",
      "parents": [
        "e62934d85fbc2d935afdad57eeade39ecbd7440a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 13:55:55 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 13:55:55 2012 -0700"
      },
      "message": "Remove the useless \"suspend count already zero\" message for new threads.\n\nWe can actually detect the expected case of this warning ourselves, and\nnot emit it. Then we can upgrade the WARNING to a FATAL.\n\nI also tripped over the fact that the operator\u003c\u003c for Thread::State was out\nof date, so I\u0027ve moved the Thread enums up to namespace scope so the script\ncan automatically generate correct operator\u003c\u003c implementations for us. (All\nthe high-numbered thread states have been off by one for a couple of weeks.)\n\nChange-Id: I5de573d33d641e5a3cba87b370e9620c8c66e633\n"
    },
    {
      "commit": "c0f0933249cf516b37717faa766e1e9808f7c1f8",
      "tree": "04aedbf3e8502637673b82cf181dfab1b5aca1a6",
      "parents": [
        "942df41c03ddb9f7b47a34fcfc4414d8b8ca8ce1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 13:27:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 13:27:06 2012 -0700"
      },
      "message": "Add the missing link between compiled code and the debugger.\n\nWhen a debugger connects and disconnects, we now let compiled code know that we\nneed to be kept informed about what\u0027s going on.\n\nAlso fix a threading bug when threads exit with a debugger attached.\n\nAlso some minor tidying, mostly involving naming.\n\nChange-Id: Iba0e8b9d192ac76ba1cd29a8b1e6d94f6f20dea8\n"
    },
    {
      "commit": "1bac54ffa933fbe9b92b62437577f2f4583eff1a",
      "tree": "a27134343ed3cd45a286c3a68b9a4469e70f13e7",
      "parents": [
        "96970cdab3e28511322ce37fa578f6eff8931d72"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 12:48:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 12:48:31 2012 -0700"
      },
      "message": "Fix all our unused parameter warnings so we let GCC report them.\n\nThere were a couple of genuine bugs here (fixed), plus there\u0027s a missing\nfeature in trace.cc that I\u0027ve just added a TODO for.\n\nAlso note that I haven\u0027t touched the compilers; this warning is still\nexplicitly disabled for that code. I\u0027ll do that when there\u0027s less going\non in those directories.\n\nChange-Id: Ic3570bf82411a07c7530bfaf1995ac995b9fc00f\n"
    },
    {
      "commit": "0512f02dd6623c0870c11fbf3274d7462f732136",
      "tree": "c90b32c42b285d3cea45272601b5cf007b4ea264",
      "parents": [
        "88c5c355fc3d881f905564911d746b2313d5fc89"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 22:10:52 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 22:10:52 2012 -0700"
      },
      "message": "Remove anonymous namespaces.\n\nNo one likes them and we\u0027re pretty inconsistent at using them. We\u0027re\nmuch better with \u0027static\u0027.\n\nChange-Id: I65eeffd0fb60633edca30923af0caedb06a0105d\n"
    },
    {
      "commit": "88c5c355fc3d881f905564911d746b2313d5fc89",
      "tree": "d5b11b85131064cb6200465e674060933f48ebd7",
      "parents": [
        "141b0c75986949da0adbf9c07ad92bc675f1bfed"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 18:49:48 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 21:14:57 2012 -0700"
      },
      "message": "Make CheckJNI and JNI workarounds mutually exclusive...\n\n...in the opposite direction; needing workarounds turns off CheckJNI.\nThis isn\u0027t necessarily a good idea, but I like the cleanup parts of\nthis change.\n\nChange-Id: I708235ea3e5cc35ef90b01dd810e097e3ff9dd26\n"
    },
    {
      "commit": "b3bd5f07884f5a1f2b84224363b1372d7c28d447",
      "tree": "6e2997ab64b4a4f32d7ef539a4649adc736ea553",
      "parents": [
        "ddbd01ac1660d57416879d5a576482f1048dde64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 08 21:05:27 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 15:37:46 2012 -0800"
      },
      "message": "Refactor the compilers out of libart.\n\nThis builds three separate compilers and dynamically links with the right one\nat runtime.\n\nChange-Id: I59d22b9884f41de733c09f97e29ee290236d5f4b\n"
    },
    {
      "commit": "a15e67d5ee5aa9615596cee2be42c2b2caf128c6",
      "tree": "cd126ce1e809688011385d521abf19c9c302d1b1",
      "parents": [
        "9b5ee8837b4864b6ac114e9fead17bdeb04c6d55"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 28 13:51:55 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 28 15:21:27 2012 -0800"
      },
      "message": "Remove pad word from arrays\n\nThis change removes the 4 byte pad from all arrays except longs and\ndoubles. It saves 76kb from the boot image, and will also reduce the\nsize of arrays in the heap (and thereby reduce garbage collection).\n\nChange-Id: I3ff277d5bf14c57c0f7552215818e588ec6cc275\n"
    },
    {
      "commit": "475a6442b2b96d3b881aa0dcab9bccb64add5569",
      "tree": "2c570edf8219fb3109f5bafb38c1b7d58d73fa47",
      "parents": [
        "467c9699c3de467f76f03494a9389ebba285cb6c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 21 15:39:39 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 21 15:39:39 2012 -0800"
      },
      "message": "Don\u0027t enable JNI work arounds with check JNI\n\nChange-Id: I310b363126a4436163208ff618a6285061133a17\n"
    },
    {
      "commit": "60db5ab3a2e480db9236325a14cb5a867881d8bb",
      "tree": "c4a514941c2d41b82581d2c3d83ecb742e575231",
      "parents": [
        "6a91799974e992e915facb9d9372dc8847a09a64"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 20 17:02:00 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 20 18:15:35 2012 -0800"
      },
      "message": "SIRT work around JNI support for legacy apps\n\nLegacy apps may be broken and expect a jobject to equal an Object*. This\nis a work around to support outgoing SIRT arguments being converted to\nbe Object*s. It steals the unused GC map pointer on native methods.\n\nChange-Id: I8fb3701b0cdf15be9e8f9b722e47386505482666\n"
    },
    {
      "commit": "a004aa933a58428489e42d77f707c2b063b73747",
      "tree": "1224764c4a524957e94dfe2d27e277d024986668",
      "parents": [
        "573b7c9324b11ff7f42f68c9ad52d26ebc4b6d12"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 08 18:05:09 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 16 17:48:28 2012 -0800"
      },
      "message": "user build support for art (2 of 3)\n\nChange-Id: I4696fee58e43db48540e2442c4235fc4bb02d9e3\n"
    },
    {
      "commit": "0d0ba69e764c54b21c463239136bfd5038d389a9",
      "tree": "194fdb5b604f9eea2fef537deec71b8e5759d25d",
      "parents": [
        "8323972b16642b8a3accf6fcbb6677b65a7a20fb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 17:28:52 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 17:28:52 2012 -0800"
      },
      "message": "A couple of logging changes people have asked for.\n\nHow many threads dex2oat uses, and more detail about heap trimming.\n\nChange-Id: Id60dbedf2480c639dc8c38b4a59eb0b15eb3b912\n"
    },
    {
      "commit": "37be8fb2f370449ccdf07e28866cedad53b41b0d",
      "tree": "b6026d1750ad54e232acb1512835be0bbd10ae85",
      "parents": [
        "f2e08b29d3e49f491cd1c29c226154e92380c179"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 09:34:29 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 09:34:29 2012 -0800"
      },
      "message": "We only need the heap lock when trimming.\n\nChange-Id: I217fb11738dbb6cd3a5b045e006042b79f45a596\n"
    },
    {
      "commit": "8cf5bc0ab8742df107f0f4fc8ec0e991b6568f11",
      "tree": "2c21156aa0314dfa4f5b0cea9489e3aa16ebe743",
      "parents": [
        "c27273f0508fb56ba35bead311151fbe45724d35"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 16:32:16 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 17:07:51 2012 -0800"
      },
      "message": "Simple heap trimming.\n\nChange-Id: I8a94b637e64c6b5586db3c41b6e9230e7c8250c8\n"
    },
    {
      "commit": "7d5ffb5ef4702e7a032db8a75783f1bac2ce04c9",
      "tree": "083507bf64a59741209f6f0dfdcb27a2fbef32c0",
      "parents": [
        "ed846c33412368bd8fea18f7353c4f4d3ceb0b26"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 01 14:27:54 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 01 15:23:08 2012 -0800"
      },
      "message": "Remove dex2oat warnings by providing \".\" class path defaulting only to JNI callers\n\nChange-Id: Ibc532b4a6e72ad92d7b537896447949a2a764166\n"
    },
    {
      "commit": "49b4f07b3b8b15ba8f87356d10ad533d34c40dd1",
      "tree": "e871a47a7d72b448c7ce8e9784f0758afcb4a021",
      "parents": [
        "5fedcf46538aeb036a1f68e022463703c372d825"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 18 14:23:48 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 18 14:23:48 2012 -0800"
      },
      "message": "Disable work_around_app_jni_bugs\n\nChange-Id: Ib214611e44fdb632eb961bfde0b4da530fd97195\n"
    },
    {
      "commit": "c2dc62d1c9241dfe880a81698713c314b13aa63f",
      "tree": "b84921ea9b805afe24592e37a2e6163013d70e6a",
      "parents": [
        "b4807ec95e8ba663b47c13da3e065874b1b586e6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 20:06:12 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 20:32:22 2012 -0800"
      },
      "message": "Wire up work_around_app_jni_bugs.\n\nThis removes the cached value from struct JNIEnv. YAGNI.\n\nChange-Id: Iad1a9182e86d7bf533af14000b99bb0340d6af9b\n"
    },
    {
      "commit": "c3b77c7c2971124cbf3b2d9da64e7a8a9a649f2e",
      "tree": "b8f2b70fb281d2d8b617491755bcdb7f798af837",
      "parents": [
        "90040194a1b5c441dde5c8a8b6d637c23972e0f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 15 20:56:48 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 16 14:17:50 2011 -0800"
      },
      "message": "Avoid copying and strlen(3) in the FindClass path.\n\nChange-Id: I789f3c883596d1852a2c1954ce7a207e6f937117\n"
    },
    {
      "commit": "6d4d9fcb4f01e287ee29e81cd1c941ee5d11d379",
      "tree": "4c715bef86a3c5a47f9cea43c4a092cf4766ed4b",
      "parents": [
        "86b0010c79ef95b5333cd540b7d3af34a9f1a643"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 30 16:24:48 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 06 14:02:09 2011 -0800"
      },
      "message": "Reduce meta-data object sizes, introduce meta-data helper classes.\n\nChange-Id: Id14ad218f1c74c659701352fdf1a45bf6444daa3\n"
    },
    {
      "commit": "b82b6878fb000d4731063b1bf15c39ff7c50b61f",
      "tree": "8764bcc9307fb2f57820b25b1d098e15166a24bc",
      "parents": [
        "bfe487be25652c5456236661b9d9c3579d2296c1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 17:18:07 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 21:43:27 2011 -0700"
      },
      "message": "Make sure threads allocating are in the kRunnable state\n\nChange-Id: I55a08fcd38b3388698ef571d2d4fa9553210e197\n"
    },
    {
      "commit": "f6a1e1e44b94221c4e6b063b36921c712a33910b",
      "tree": "868c28cb66e1a1d34dd4060592e48e1a598342ed",
      "parents": [
        "94e60fb48459f3173c8abd6afcee85df68ab1b55"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 25 16:28:04 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 25 16:28:04 2011 -0700"
      },
      "message": "Implement more DDMS support.\n\nYou can now launch DDMS without killing running oatexec processes...\n\nChange-Id: I13e1d6df4f0cbd0c06b69471823a13e4e820b93b\n"
    },
    {
      "commit": "6a4be3a6226cec645cf905dd352e44f7968a7fa4",
      "tree": "15c98c404db44f60850a94d9b3cff29ff16e1cd5",
      "parents": [
        "fb8a127fd2ca8eb6cbbc9d62b708c1fc2b3003a4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 20 16:34:03 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 20 17:01:32 2011 -0700"
      },
      "message": "Fix calling conventions for UnresolvedDirectMethodTrampolineFromCode\n\nChange-Id: I1b35c33d89f0526c80bc8d21e064617d0eac6cd1\n"
    },
    {
      "commit": "5cb5ad27944efb08d4556b3c0d362302e37e832b",
      "tree": "63334f19072ca2ba7179973f0ce62101ee89605d",
      "parents": [
        "d6fe38d96b6116bd53cf2cb14734af8d69e08661"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 12:13:39 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 12:13:39 2011 -0700"
      },
      "message": "Fix exception throwing to support no detail message.\n\n(The empty string as a detail message is distinct from a NULL detail message,\nand is treated differently by Throwable.printStackTrace.)\n\nChange-Id: I8c65deac9f18c5782dcf6e72e4c37e6dd4174fe9\n"
    },
    {
      "commit": "01158d7a57c8321370667a6045220237d16e0da8",
      "tree": "f62e0bef39f7f04c969327f6a8540d7cff6e373d",
      "parents": [
        "6699709cf27b706b5221527d9815dd9365911710"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 19 19:47:10 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 20 11:48:27 2011 -0700"
      },
      "message": "Implement most of VMStack and some of Zygote.\n\nChange-Id: I07e18259a0452a2a9b077148f4f1ca67d3f63427\n"
    },
    {
      "commit": "7ede61eceed2f8da14a4fff05c57c748c160d57f",
      "tree": "f3fc2ac910aaf0ad0295d914e48da820b5bbffd6",
      "parents": [
        "8d768a954b101a9532f980253ac46be2c53aba11"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 18:18:06 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 18:18:06 2011 -0700"
      },
      "message": "Implement VMRuntime.\n\n(Some of this forwards to unimplemented stuff in Heap.)\n\nChange-Id: I01e51d5673e61ddfdbfa2098310122502c3afcf1\n"
    }
  ]
}
