)]}'
{
  "log": [
    {
      "commit": "2d88862f0752a7a0e65145b088f49dabd49d4284",
      "tree": "3fac6bbd9a0ff3836f361e46579151c8a93420b6",
      "parents": [
        "751d4ed43e8118f145edf18db4d987daf7dabbae"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 17:02:00 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 17:02:52 2013 -0700"
      },
      "message": "Fixing cpplint readability/casting issues\n\nChange-Id: I6821da0e23737995a9b884a04e9b63fac640cd05\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": "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": "6324e2174e60e951f4e7dab22dc65bafd730e097",
      "tree": "181757d11a3e47e329925b72c4af14085da1ffdf",
      "parents": [
        "f9e609f10cdf55391c35735f395ba68567c7cd23"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 15 17:55:35 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 15 17:55:35 2013 -0800"
      },
      "message": "Fix art\u0027s System.arraycopy now bionic doesn\u0027t have _memmove_words.\n\nChange-Id: Ib4fc502eda7f5902e0cbe50ed9df892314a49017\n"
    },
    {
      "commit": "693ff61274cd2c9b8eb7e68c370f84a911b8ca52",
      "tree": "11f1f6b3e5302b8a58c5ca44c3a1bec1b16d90a4",
      "parents": [
        "12a2bdd245ea866b665d4800b493397ec412892a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 01 10:56:12 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 01 21:29:49 2013 -0800"
      },
      "message": "Performance improvements by removing a DMB and inlining.\n\nCorrect the version of CAS used by Mutex::Lock to be acquire and not release.\nDon\u0027t do a memory barrier in thread transitions when there is already a\nbarrier associated with the mutator lock.\nForce inlining of the hot thread and shared lock code, heavily used by down\ncalls and JNI.\nForce inlining of mirror routines that are used by runtime support and hot.\n\nPerformance was measured and improved using perf and maps.\n\nChange-Id: I012580e337143236d8b6d06c1e270183ae51083c\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": "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": "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": "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": "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": "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": "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": "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": "81aa5b312a843faf8f20e777cb49b2e5d278df74",
      "tree": "c541665873b4baa4d75483aa5238677c37db7af4",
      "parents": [
        "6368967dc8a06835891b2e8925a45ee1af4e880e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 13:47:13 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 13:47:13 2012 -0800"
      },
      "message": "Emit the same detail messages as dalvik for ArrayStoreExceptions from System.arraycopy.\n\nChange-Id: I9b5e923fbd8eb92258de8a6639a129b0d180f286\n"
    },
    {
      "commit": "025c5de6aab0719c77a19d62b2df80291ec225e6",
      "tree": "dd3d0a8e10738aae7cf06d530cb20d054eac1e0e",
      "parents": [
        "a68a1cb0769d618331d65a94d1a9cde68fcbb5ea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 10 11:05:48 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 10 11:05:48 2012 -0800"
      },
      "message": "Avoid a benign race where the exception message might be misleading.\n\nReport the type of the object that failed the type check, without\nassuming that the array hasn\u0027t been mutated since.\n\nChange-Id: I57cd5057ded3ea994c46aa1aabca62299dd5e7b7\n"
    },
    {
      "commit": "ab3530dce2119432ce076e2499743cc7ee358e67",
      "tree": "9b84e4d5c041a07e3beafb9d17722ed72f2c6d6a",
      "parents": [
        "a09aea2cf9b56571aa146a4ae42303751e17825f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 09 16:04:56 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 09 16:04:56 2012 -0800"
      },
      "message": "Fix the System.arraycopy race condition.\n\nBug: 5247258\nChange-Id: I48c5d77e8312db0f2c1d8f944b17f6920799685e\n"
    },
    {
      "commit": "5d76c435082332ef79a22962386fa92a0870e378",
      "tree": "db8fdd7bfba3617494157b483e9df979f76dfdcc",
      "parents": [
        "4b6fe5a568ca2bc5e8fa110bf7af692cab220a15"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 21:42:49 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 01:25:57 2011 -0700"
      },
      "message": "Mark non-image spaces and use write barrier for image spaces.\n\nDon\u0027t mark string and class roots that are in the image, alloc space\nreferences will be caught by the write barrier.\n\nChange-Id: Idcf9e4ede3b83556d4f8a01276273726dc6eea46\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": "cc607471d301e468ac0d84deacd1f60667331f67",
      "tree": "f2a8818b996e2cfca2f27863da797ad57ae98bd8",
      "parents": [
        "29405cfc691196c21325e80d9a9f3795026eff4e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 15:34:11 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 15:34:11 2011 -0700"
      },
      "message": "Use CHECK_OP instead of CHECK where possible.\n\nChange-Id: I2f12650e42bab057d0fd3b2978250306a6b264ab\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": "25c3325bf95036bf325fc7cb21b4fd6d40282857",
      "tree": "58d95f906ca62f9cf69106c459db972e32af01a0",
      "parents": [
        "e5de95b3f9609e02fefd7cda7b21f30c9412eb4c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 15:58:35 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 19 09:31:34 2011 -0700"
      },
      "message": "Fix compiler class initialization to properly deal with super classes\n\nAlso moving active parts of compiler_test to be oat tests including\nIntMath and Invoke. Added an interface invocation test case to Invoke\ntest. Changed Compiler to CHECK that it is not used once the\nRuntime::IsStarted, forcing some jni_compiler_test to have two phases,\none for compiling before Runtime::Start and one for JNI operations\nafter the Runtime::IsStarted.\n\nFinally, fixed Class::CanPutArrayElementFromCode by removing\nCanPutArrayElement and calling IsAssignableFrom directly.\n\nChange-Id: I52ca4dbc0e02db65f274ccc3ca7468dce365a44e\n"
    },
    {
      "commit": "b6db9d29038a0e8dea8a399b155bd60448ec5e97",
      "tree": "f0a0f96027d1732b21839dd088eb1708ece2cf4b",
      "parents": [
        "03c99df35373efa1924d0ab9c0d21f9061afe8ea"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 11:39:12 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 11:39:12 2011 -0700"
      },
      "message": "Convert a DCHECK to a COMPILE_ASSERT\n\nChange-Id: I3719ef5ad7339bba4b21bbb96b2e4f0554846d4a\n"
    },
    {
      "commit": "5b8e4c810a97c9dc417142b8c6e07871ae15c797",
      "tree": "1a28a30bfca5e29d2abb33ad8fa27e66ab9beae9",
      "parents": [
        "3a7b4f26387b3529899f3cf16cdd6f1e200ded80"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 01:38:59 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 01:56:40 2011 -0700"
      },
      "message": "Change Class::component_type_ and implement reflect.Array\n\nChange-Id: I9e06f31577551c738eca2621146c8d2328119442\n"
    },
    {
      "commit": "54e7df1896a4066cbb9fe6f72249829f0b8c49c6",
      "tree": "c7889163c116637001c98270f897d41ca02ce8a5",
      "parents": [
        "a0a764a1f5757f0f7ffa695b855b9d0ac8c2e455"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 11:47:04 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 11:47:04 2011 -0700"
      },
      "message": "Various bits of cleanup.\n\nMost notable: PrettyField now includes the type (but, like PrettyMethod,\nlets you turn this off), and there\u0027s a new PrettyClass, and PrettyType\nhas been renamed to PrettyTypeOf.\n\nI\u0027ve also moved the dalvik \"sync\" stuff into files named \"monitor\", and\nmade some of the implementation details private.\n\nChange-Id: I39ea79b45e173f9ebbf9878bcead207766a5653f\n"
    },
    {
      "commit": "3a4f8df8f75cbb9495b84a96c60e12fcce65ccf9",
      "tree": "2e8b9d3a2ddd6e987162c48f0b0fb50577d3e7fd",
      "parents": [
        "f0cde549bed96e16401a347a4511b59130c61e84"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 15:22:36 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 15:22:36 2011 -0700"
      },
      "message": "A few more trivial write barrier calls.\n\nChange-Id: I4b0f3c4347eed9a2e0a494ae1382065c026d5c40\n"
    },
    {
      "commit": "0f4c41d75c821162184501cd4b510a93f6eb580f",
      "tree": "01afed2e082c398cd655e31485215ed82ef591c0",
      "parents": [
        "1da522de18ac6e4c2913c3233529e9dd115059f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 04 14:58:03 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 04 15:03:48 2011 -0700"
      },
      "message": "Various fixes.\n\nCHECK_xx arguments should be the \"right\" way round, not backwards like\nASSERT_xx and EXPECT_xx.\n\nUse /mnt/sdcard/ rather than /sdcard/ to bypass FUSE and avoid getting\nintermittent mkdir(2) \"Device or resource busy\" failures.\n\nBetter diagnostics when methods not found by test helpers.\n\nRemove the whitelist from oatCompileMethod.\n\nLeave evidence in the log of what we\u0027ve compiled and where we put it.\n\nDisable card marking by generated code until we have a cards to mark.\n\nDistinguish between CanPutArrayElementFromCode and CanPutArrayElement.\nImplement both.\n\nAdd a new test to see how much of the basic System and String/StringBuilder\nfacilities are working.\n\nChange-Id: Ie24f2859e404ab912e6cc77d170ceb4df5ecdf19\n"
    },
    {
      "commit": "0cfe1fb7060576d047f7f894fc0d8b87de84fcab",
      "tree": "4255eae2034dcb0febe28411c50cba76189f39ae",
      "parents": [
        "a09576416788b916095739e43a16917e7948f3a4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 26 03:29:44 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 02 14:48:01 2011 -0700"
      },
      "message": "Use accessor methods for Object fields.\n\nEnsure that Object fields are modified via accessors so that it\u0027s easy\nto insert barriers (make all fields within Objects private). Add validity\nchecks to Field and Method accessors to ensure they are accessed when a\nClass is in a suitable state. Add validity checks to all Object\naccessors to check heap isn\u0027t corrupted. Remove hacked in strings from Field\nand Method; make type fields used the dex cache that is lazily initialized.\nClean up various other TODOs and lint issues.\n\nChange-Id: Iac0afc515c01f5419874d9cdcdb9a7b45443e3fb\n"
    },
    {
      "commit": "1b4c85959b3d9a4a33bc2160c46c1bbde67350c7",
      "tree": "d92052beeb7a5e29f955d91b0a4ba3b15d2e4a8d",
      "parents": [
        "cf4c6c41b0084dc4567ff709fb8ce9ebd72b26ac"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Aug 31 10:43:51 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 01 15:59:35 2011 -0700"
      },
      "message": "Complete OP_CONST_STRING, OP_CONST_CLASS\n\nAdded dummy ThrowException \u0026 ResolveTypeFromCode routines.  Fix\nOP_CONST_STRING and OP_CONST_CLASS to be position independent.  Misc.\nbug fixes.\n\nCreated a dummy ThrowException compiler run-time helper function.  It\nshould be replaced with the real version.\n\nChange-Id: Iba6a11cf110d3da4fa36ca434fe1b2675b68434d\n"
    },
    {
      "commit": "bf86d0438e9ef9c145ebcf16a2e74c4efaa2686a",
      "tree": "e8641925dd68c6e03b41ceb3de58108436f988a0",
      "parents": [
        "ad7c2a3b4daa2abd707375444f4b0db7d69a3838"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 31 17:53:14 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 08:51:12 2011 -0700"
      },
      "message": "Start adding implementations for runtime-provided native methods.\n\nThe library can\u0027t do everything...\n\nChange-Id: Ib808c00570c7214aeb2ca058b1a66cacbeb372f1\n"
    }
  ]
}
