)]}'
{
  "log": [
    {
      "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": "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": "4445a7e3398a6143939168097a3aa275b734504d",
      "tree": "9eda34219b4a840125694a86ddba49077e15b944",
      "parents": [
        "50b35e2fd1a68cd1240e4a9d9f363e11764957d1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 05 17:19:13 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Oct 06 09:48:02 2012 -0700"
      },
      "message": "Class clean-up.\n\nMove Class code out of native and into Java.\nRemove ClassLinker::FindDexFile.\n\nChange-Id: Idd9c4563d2c32e76690675242ff491276ace9848\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": "66f19258f9728d4ffe026074d8fd429d639802fa",
      "tree": "fd94009774c6cbbb1528ea096e606133bd35f104",
      "parents": [
        "a5e1e3d153990845d80cb8d013157210f11a473c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 18 08:57:04 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 21 17:32:56 2012 -0700"
      },
      "message": "Change dex cache to be java object instead of array, add pointer to dex file in dex cache.\n\nGeneric clean up to facilitate having GDB macros for Pretty* helper functions.\n\nImproved cleanliness of DexCache since having it as an object array was not the best solution.\n\nFixed a bug in InOrderWalk caused by ResolveType sometimes allocating classes.\n\nRename C++ Method to AbstractMethod and add two new classes Constructor, Method which both inherit from AbstractMethod.\n\nRename done to have the C++ code be closer to the java code.\n\nChange-Id: I4995b4c5e47a3822192b08afa24a639d3b1f4da9\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": "26c5e1503425cae17f5b16fdf06a2d62ec03a59b",
      "tree": "91e3e62df1b13958b8b73a2ea871ccb877f8162a",
      "parents": [
        "5a8e3d5e87aed128837fb84874d18a1f68e63397"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 11:47:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 11:47:22 2012 -0700"
      },
      "message": "Port \"Avoid method overriding if its super method is inaccessible\" to art.\n\nThis is an art equivalent of https://android-review.googlesource.com/#/c/32480/3.\n\nChange-Id: Ifc2cd21e7e92f596bced3eabae4d16f16f4095ef\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": "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": "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": "3f9137d85b3c2c0800fb26e3415ace1a6b7cc4de",
      "tree": "7b2c72c1ccf3512fb52fc48ecfb84f9c5c680a82",
      "parents": [
        "6ac6a365a9bdb00e85b46eb8fadfb0cebf653cba"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sun Apr 08 15:59:19 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Apr 10 04:49:44 2012 -0700"
      },
      "message": "Fix NPE message in LLVM.\n\nChange-Id: Ie65060d065d747a6c9ad22c61d5fb29f6cf3c249\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": "6a144338023bdc0ca6954fc71a1f9b4d94088ee4",
      "tree": "51efa8edbf277f2fa73f7e21b36fec4cb1a3339d",
      "parents": [
        "cb67388650ac7cedfc80b524adebd595147d4d3f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 03 13:07:11 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 03 13:07:11 2012 -0700"
      },
      "message": "Switch to Thread::WalkStack rather than manual Frame::Next.\n\nAlso fix test 039.\n\nChange-Id: I07d0559bb86d67a7f7947768bd8370fb4cf06c26\n"
    },
    {
      "commit": "0045a290e6b79a274250e3112880c04bde437d4a",
      "tree": "a125d556b6c817218b14f6f3f72079b83d0032c4",
      "parents": [
        "d23f5206cf72ca3fb53ac3049649bb7d018232bf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 31 21:08:41 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 31 22:38:22 2012 -0700"
      },
      "message": "Avoid a case of eager initialization.\n\nDon\u0027t mark as initialized classes that contain static field\ninitialization.\n\nChange-Id: Iedcabbdf355e8861eb7731650eee1467f68ae0cd\n"
    },
    {
      "commit": "c1503430c715f9d71cf4297a186a9a3442f5b9ee",
      "tree": "2835f926b366f23c09d0e09a12df62c77b2c3e8b",
      "parents": [
        "8d524a1bd3cbbe701572b232cf2e690835c95346"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 17:24:47 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 17:24:47 2012 -0700"
      },
      "message": "Remove the native Class.isInstance, and add tests.\n\nChange-Id: I5e669b71e11a6b794e3434e0406d891edd3fe59d\n"
    },
    {
      "commit": "04a2967e9f9375cd8395220f306e7b1a0b7d2b11",
      "tree": "89e1e40e1bc5d59a3d408e57b281ec55bc18082c",
      "parents": [
        "fc1d9f581592d54cc14240b9909824af38656931"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 15:47:01 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 15:47:01 2012 -0700"
      },
      "message": "Make sure we\u0027re in runnable in Class.getDeclaredFields, where we may allocate.\n\nChange-Id: I6cb37d9144fb19e903c5687514e74d8ec26438bc\n"
    },
    {
      "commit": "441d9126a8682da29f0ea3fa0040b7e0c63025be",
      "tree": "9d856632c8d19394d5f0561b1ce3199c8ecba099",
      "parents": [
        "a035e838be7df28c354b75cfa30296c4d0da0b8b"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 21 17:29:10 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 23 17:15:47 2012 -0700"
      },
      "message": "Class getField/Method returns NULL if type/args are unresolved.\n\nThese changes check that a field\u0027s type is resolved before returning it\nthrough getDeclaredField, and that a method\u0027s return type and argument\ntypes are resolved before returning it through getDeclaredMethods. This\nfixes test failures in libcore MissingClassesTest.\n\n(cherry picked from commit 1ae431a01516b6c91f031aff37c756b7e4f63dd1)\n\nChange-Id: I6bd5601a975e677be6438b1efcb1b1f1ecde900c\n"
    },
    {
      "commit": "923e8b8e936ead33408e111682aa9372e3a7ed43",
      "tree": "189443deaaff7a72dcd602db59ef597273cabd9b",
      "parents": [
        "634eb2eb14f87753519d0ef2c5f256e55888f378"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 23 11:44:07 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 23 14:42:39 2012 -0700"
      },
      "message": "Expand test 046 and move reflective class initialization later.\n\nWe have no reason to do this later; we\u0027re just being conservative. We\nmight want to revisit this in a future release so you only pay once,\nwhen you cache your Field or Method instance.\n\nChange-Id: Ib18fa75c0648561d3c5e1554cb3955ed57ab9314\n"
    },
    {
      "commit": "15216930d0d360e995480786a0a5cf9ee48a4ef7",
      "tree": "68eef3df89d935f86dbd261832854f78266a6af6",
      "parents": [
        "e5b7894351ecc5ef99442eea0700c913178c95ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 21 21:53:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 21 21:53:06 2012 -0700"
      },
      "message": "Ensure that classes we\u0027re using for reflection are initialized.\n\nDalvik did the equivalent of EnsureInitialized both when handing out\nfields and when receiving them back. We\u0027d prefer to just check for\ninitialization once, up front, so let\u0027s do that and just assert in\ndebug builds that there isn\u0027t some bizarre way to get here.\n\nChange-Id: I225ec30df5a78a60259121a50f6a7c4154956bce\n"
    },
    {
      "commit": "2ed52c4419dd537c98cd7898bc8bdcf8826b8940",
      "tree": "e90598e39df514d8a86cbb160288b4fd563eb1c1",
      "parents": [
        "051c9fc1de07bbc265af38cf60f061394163c68f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 21 16:56:56 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 21 16:57:43 2012 -0700"
      },
      "message": "Stash the directly-implemented interfaces in Proxy so we can implement Class.getInterfaces.\n\nAlso extend test 044 to spot this (found by a libcore test).\n\nChange-Id: I50019db49c549f045d94173c3ed9ae81f05ef858\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": "01a96581a139291206ec44921ff3f557ce84511f",
      "tree": "0c832425a620d2c36fc6d706066b2c1e882e51ea",
      "parents": [
        "4d26534f6a65d7af89cc32da8fbc32beed693201"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 12 15:17:29 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 12 15:17:29 2012 -0700"
      },
      "message": "Class_newInstanceImpl should use FindDeclaredDirectMethod\n\nOtherwise it will find Object.\u003cinit\u003e()\n\nChange-Id: I35cd12100c641fd9c8b729f27ac3f1dd1cdf4f86\n"
    },
    {
      "commit": "5643742f61f04ac003836747bcae88f2278eb61b",
      "tree": "9fd2f36bb37dfd7bfc52478e996a3f0a55cf01d2",
      "parents": [
        "d857b632cb23846ef656c330b89c4d1cb727116e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 21:46:00 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 21:46:00 2012 -0800"
      },
      "message": "Don\u0027t report miranda methods in declared methods\n\nChange-Id: I8b7e0da78c1b05f2e1d54b1dde74426b24147a7e\n"
    },
    {
      "commit": "f45b154459377f370e6c4ccfa6d19adcb8b4b2c0",
      "tree": "dd06196e58ee8d308e0082b662022c6d90d064b8",
      "parents": [
        "7769f50d809da9a52885e75c0b593748abc0215e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:03:48 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:03:48 2012 -0800"
      },
      "message": "Verify thread state for all allocations, fix 2 failures\n\nChange-Id: If3611f4eda5a567cc2c573f47dbabfe40a00e205\n"
    },
    {
      "commit": "d418edaf4df0a410d678389e171ac6d96ae2af15",
      "tree": "d90fedd6af5fb69e9e983a68723cdded97354ed0",
      "parents": [
        "160f3e20e81a9137e75a18a8613c09c51c8c004f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 30 12:14:28 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 30 15:41:32 2012 -0800"
      },
      "message": "Class clean-up and compute name during image writing.\n\nName is computed lazily, if this occurs for an image class it will cause\na card mark and for that part of the image to be scanned every GC. By\nprecomputing the name we avoid the GC overhead, speed up some reflection\noperations, save allocation heap footprint at a cost of ~300kb in the\nimage.\n\nRemove and reorganize reflection native methods to agree with patch to\nlibcore.\n\nChange-Id: I4b621be4a9d9bb381a647963066c3305ce40745f\n"
    },
    {
      "commit": "dc18020e83aa1261d4f661f1f9330bda20dffd71",
      "tree": "b78bdb731ac41aae2ad28faa23f6377ae796c240",
      "parents": [
        "3bb17a644e2945c3913cfbde245d2f520d62a3ff"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Jan 29 14:47:29 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Jan 29 14:47:29 2012 -0800"
      },
      "message": "Avoid getSuperclass being native.\n\nAdd unit test from Change Iaf3e98ed\n\nChange-Id: Ic408d2f781a5822506c31a270eb1e61ada929c53\n"
    },
    {
      "commit": "7bfc96384ebe6883199021ca67f97e19f6ca2a76",
      "tree": "22737409b435343e09d0030e2a9605e2d72f2386",
      "parents": [
        "bb551fa68ffc57f679b8c914ac856666f0348b77"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 26 12:02:54 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 26 12:02:54 2012 -0800"
      },
      "message": "This fixes several of the VM tests.\n\nChange-Id: I4140302914d2066d754c93ee511e51c8e5498cfd\n"
    },
    {
      "commit": "844f9a072454eb9dca1022299b6bf99ef4294008",
      "tree": "f21b0a3c2418540c9c65914b6029a881ecae0747",
      "parents": [
        "e8f3212ff9d47dbe368ea7f2e243b5e9e8680620"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:19:58 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:19:58 2012 -0800"
      },
      "message": "You can\u0027t call initCause on a ClassNotFoundException.\n\nUnlike NoClassDefFoundError, ClassNotFoundException has to be constructed\nwith a cause, or it will stupidly set a null cause which can\u0027t then be\nchanged.\n\nThis patch also fixes incorrect caching of jclass local references in statics,\nwhich I noticed while fixing the test I\u0027d broken.\n\nChange-Id: I017f4a4e4158554427ccb37b650c985add28980c\n"
    },
    {
      "commit": "a7679b67ca945194fa2442015e606cd250f0de2b",
      "tree": "275b34ff004649c9bc223ae87a92bfe1a46f5068",
      "parents": [
        "61a699e2ad3913ca76ba8f44c18f1bdf567c1f6f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 17:15:23 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 17:15:23 2012 -0800"
      },
      "message": "Improve exceptions thrown during class loading.\n\nWe\u0027ve always gone to a lot of trouble to have good detail messages when\nsomething goes wrong during class loading, but none of those exceptions\nwould ever make it to the calling code. This adds missing exception\nchaining, and also adds a test for the case where a subclass is missing\nits superclass; before we\u0027d have reported that the subclass was missing,\nbut now we make it clear that the real error was an inability to find\nthe superclass.\n\nChange-Id: I07ebc011ccdaed16be82bf08b323393e1d790989\n"
    },
    {
      "commit": "c2b4447ae9c0c1e77595620acac6508999df6698",
      "tree": "20192c2044d004b364a7f8aa6c9cd3a272e3e706",
      "parents": [
        "fbef9462e3bf2301dd5b337d351b6b70f7e31bc8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 21:17:17 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 15 06:45:50 2011 -0800"
      },
      "message": "Fix for test 044-proxy\n\nProxy implementation was incomplete following meta-data refactoring,\ncomplete this change.\n\nChange-Id: Ic0567bdef373dbae17031a30aabc779027173229\n"
    },
    {
      "commit": "955724179c6c739524f610023287f56b24dc31de",
      "tree": "64f751693e72173ae0d044d8c54989b01f1195af",
      "parents": [
        "b87f73ea7524f6eb9da6da1af931a3d3fbb833ff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 18:14:20 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 18:14:20 2011 -0800"
      },
      "message": "Don\u0027t default-construct std::strings and then assign them.\n\nChange-Id: I8c994d1e6a8d2ebe52eaa4f0132e0deb2ecfa5f3\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": "1bba14f20039b6e706b719fdd5754eb30088d014",
      "tree": "be62972c4ff6a9afca9cf05259b624f4cdadafd9",
      "parents": [
        "c1f143de3d0370a17a4561eb83bf10a5d7908aa3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 18:00:36 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 18:41:01 2011 -0800"
      },
      "message": "Implement getting of 64-bit locals (double, long).\n\nAlso implement the JDWP \"GetClassLoader\" request, used by jswat\u0027s \"classes\"\ncommand.\n\nAlso implement the JDWP \"exit\" request, tested with jswat\u0027s \"shutdown\".\n\nChange-Id: Ic8424a332151242211d8a772721deb3199b24682\n"
    },
    {
      "commit": "50e537e4ad78897295c77ec21f4ef9cd45c99528",
      "tree": "eb6aef3edc9c8fb5a6bbe318ac629026667639c3",
      "parents": [
        "bb1104b42675e82105df7af53eff39547ccbbf4a"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 29 16:53:29 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 29 17:09:48 2011 -0500"
      },
      "message": "Add \u0027const\u0027 to signature in FindConstructorOrMethodInArray\n\nChange-Id: I17e134f6b4b7d920574dbf399f7d6baf2a0737f6\n"
    },
    {
      "commit": "53494318448f783b89c20d7b42be7a608b168de1",
      "tree": "d89b9e892797868b0393814b62798beae9536e2d",
      "parents": [
        "8aa6fc39f5cc0279d4ba2ee064de9758560dfedd"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 29 16:43:09 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 29 16:43:09 2011 -0500"
      },
      "message": "Move the exception check to after the code that throws the exception.\n\nI\u0027d mistakenly put the exception check after the method lookup,\nbut the exception was actually thrown by IsVisibleField(). The\ntest passed because this class had multiple fields to initialize.\n\nChange-Id: I7c76abfad5d90cc36cb4fadedeb6628ca51ed433\n"
    },
    {
      "commit": "4ed21576f4ff58d37c872c4c790823d80d90d249",
      "tree": "02bd0c4fb08e30c9114292a4cdccd47b9b338b6c",
      "parents": [
        "434424a3f60f2129aaa1780ac6a5c2618bc789e0"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 23 13:23:23 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 23 13:23:23 2011 -0500"
      },
      "message": "Fix reflection to throw rather than crash when a type is not loaded.\n\nThis was caught by MissingClassesTest.\n\nChange-Id: I719649c0efc5aceb1c4594cfa69f6a0d407fcacb\n"
    },
    {
      "commit": "8ea36f84a1fff2943127ef21ce371c99a7d191af",
      "tree": "1928f6ac2684401f19bc32c49458ecd1e0aa9210",
      "parents": [
        "dbb4079eb1e7d7738c81a97c8dd2550885c1093a"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 21 10:35:06 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 21 10:35:06 2011 -0500"
      },
      "message": "Prefer non-synthetic methods in Class.getMethod()\n\nThis fixes four failing tests in MethodOverridesTest.\n\nChange-Id: I758a7b914554ff2b03d8ecce1b5df8d502f0b827\n"
    },
    {
      "commit": "dbb4079eb1e7d7738c81a97c8dd2550885c1093a",
      "tree": "733d5c08027ae65fb89132609d2aec9e6e2d747d",
      "parents": [
        "25e79a5e9ecd4bf30e0ea90a7dd4313f7f44bc3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 18 17:05:22 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 18 17:47:00 2011 -0800"
      },
      "message": "Start implementing jdb \"locals\".\n\nThis lets us show the names and types of the locals, but all the values\nwill show up as 0/null. We\u0027re going to have to walk the whole stack and\ntake callee-save frames into account to do that right.\n\nChange-Id: Ic6e115513b6e65ae7ed4b7274e70bc514e83190a\n"
    },
    {
      "commit": "906e685ce43092812bf403016057376d0657a671",
      "tree": "e2badcc3005f66acc7a847ae265437627ba4f7a6",
      "parents": [
        "47179f76e3f03fe3eb21dfb081d50733ca316371"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 28 14:52:10 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 28 14:52:10 2011 -0700"
      },
      "message": "Fix the unintelligible IsValidClassName API by breaking it into three.\n\nThere are only three of the four possibilities you actually want, so we may as\nwell just call them by name.\n\nChange-Id: I481d91d98d6d47430f1972891fa81a61c57ad331\n"
    },
    {
      "commit": "9074b99bfbd5419e340f138a018b673ce71f77e8",
      "tree": "0910d8eb0e08eb6cb45a1f307b31b1bc17d70c31",
      "parents": [
        "b82b6878fb000d4731063b1bf15c39ff7c50b61f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 26 17:41:55 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 26 22:53:21 2011 -0700"
      },
      "message": "Better unresolved type support.\n\nAlso fix bug where miranda methods were changing their declaring class\nand thereby breaking their return type indices.\nAdd support for dumping stacks on abort.\n\nChange-Id: I3782864736b12d1f81ab9aea4909213d3344ba13\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": "8f903f2c1832a93d3b479d412664e0972cc14d6a",
      "tree": "6accebb1fc566b935181bd7febdee00113f25a07",
      "parents": [
        "7c6deaa3382f1f4fb0f591af206f03045c6e9004"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Oct 21 15:53:46 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Oct 21 15:55:07 2011 -0400"
      },
      "message": "Move Class.getDeclaredClass to managed code. Part 3.\n\nChange-Id: I10266738610f3eaad1f02295232195329b376e96\n"
    },
    {
      "commit": "163c464ffa9c3c32348518749efab4161e308e79",
      "tree": "67bdca0d3828b6465bb0d838b111f3bc29720e26",
      "parents": [
        "c0da31a2aacfc6347cc04c7024aea9cf2e44953e"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Oct 12 10:42:15 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Oct 12 10:42:15 2011 -0400"
      },
      "message": "Track move of InnerClass annotation to managed code.\n\nChange-Id: I5d08ebe33048a1380d8f868e5e87c3aab7265770\n"
    },
    {
      "commit": "9dcc79df4ffc90b62f8e0eab18fa2aa90c38d5bd",
      "tree": "a757a16060e37aa12158060e67c9b54d29f52ee4",
      "parents": [
        "e983d0062addbf374938df04d626243e08b79412"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 16:31:10 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 16:31:10 2011 -0700"
      },
      "message": "Add Class.getModifiers.\n\nThis doesn\u0027t cope with inner classes, but it lets us run more tests.\n\nChange-Id: I3f87b49e87cbe72a7d1d9aeede12ec88d59f8ea3\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": "6bf1915f20a11748d8d4b78ad020172bb2e6c946",
      "tree": "6cc01188a48bdb2ac247b4338001dcf57d7a85fb",
      "parents": [
        "5371b18d8ff3cd31895255374f575650df4839f0"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Sep 29 13:12:33 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Sep 29 13:42:49 2011 -0400"
      },
      "message": "Revert \"Reverts to track dalvik and libcore\"\n\nThis reverts commit 53d6ff445706c390c541d10ef11f1b2f19ab14e8.\n\nChange-Id: I7cfff5b532b0dd6ffef010732cd248f58236421b\n"
    },
    {
      "commit": "5d40f182181488eb39ccd19ffd306bb1fb9740c9",
      "tree": "f76c0593d7be5975543411a3d85134e846774ba5",
      "parents": [
        "1ff230d113d25fbcd2986773799ac1ef504a6af0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 26 22:29:18 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 27 01:24:39 2011 -0700"
      },
      "message": "Fixes for \"null instanceof\" and class initialization\n\nFirst issue was that the codegen seemed to expect r0 to contain 0 for\na false result in the null object case. This is a quick fix to make\nthat true. Given that the code is doing the work of a null check and\npulling out the object\u0027s class, the code should probably just pass the\nclass to the helper function, making this a case of IsAssignableFrom,\nnot instanceof.\n\nSecond issues were related to missing EnsureInitialized calls in two\ndifferent code paths, one coming from reflection, one coming from\nmanaged code. New Class::AllocObject assert should help keep us out of\ntrouble in the future in this area, although perhaps Heap::AllocObject\nshould have a check as well.\n\nChange-Id: Ib7975b6457481c1ac85135d38f42c6061e6443a0\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": "c0dd312b4ae5d11c59145f86a327c799877fbf53",
      "tree": "2fe0b14a122ec003033a76b309097b124be5ce36",
      "parents": [
        "c0ecd655083e559159d1ad22a6213d16527e0e2b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 26 10:15:43 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 26 10:15:43 2011 -0700"
      },
      "message": "~ should have been !.\n\nChange-Id: Ia5c939dddba192593883e1c009663ce6a0ecdb9c\n"
    },
    {
      "commit": "2a20cfd0b7fc81099f5de0da782ebcc1cb262792",
      "tree": "ef9b496f2ea83edce5cbe4a427dbaafd710bff16",
      "parents": [
        "65ca077378935beb113bb5aec5e890054ca3286e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 19:30:41 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 25 10:29:48 2011 -0700"
      },
      "message": "Implement java.lang.reflect.Constructor.constructNative.\n\nChange-Id: Iefa92ad1bd89073d4bfa9a80b9e4f0dea90a5849\n"
    },
    {
      "commit": "8060925c45cc2607ab92390d7366c6c0cfdfe4bb",
      "tree": "42a50d2de4cc7622b19d6cd7a20b3d99d60a00a2",
      "parents": [
        "bc2f3e3e41d02eb2896dc16390c5c4023a7b5649"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 17:24:51 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 18:08:21 2011 -0700"
      },
      "message": "Implement Class.getDeclared(Constructors|Fields|Methods).\n\nThis required making sure that a Method* that represents a constructor\nhas java.lang.reflect.Constructor as its class.\n\nChange-Id: I25908845a2b8d686d5404ac584693db0edd5853c\n"
    },
    {
      "commit": "bc2f3e3e41d02eb2896dc16390c5c4023a7b5649",
      "tree": "1f229465f28c2178a7fe849e45bc2fd91d3dab4a",
      "parents": [
        "21d9e8323124a832a21679ca83808bc9c68ed365"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 22 17:16:54 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 23 17:11:55 2011 -0700"
      },
      "message": "Add support for oat_process for use as a wrap.* launcher\n\nAdd test support for running Calculator\n\nChange-Id: I7ec0681febe6f6c836452e8afb4c12a2ebfa0ea8\n"
    },
    {
      "commit": "dd8df69d5f6fcd8de424fa25484d698f9e614526",
      "tree": "c6ff9654c665ce191ac8dc6e3002d918c4cc30f3",
      "parents": [
        "d1bb4f6b7c8dda429f61937cd42f3a0b7367c271"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 14:42:41 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 14:42:41 2011 -0700"
      },
      "message": "Class.isAssignableFrom and Class.isInstance.\n\nChange-Id: I5fd52a80a08cad1ca98f7e13a6cf56add952d8af\n"
    },
    {
      "commit": "418d20fc407052d4152157f61e7453359f902383",
      "tree": "250a190e03cb4c8d509dc3a13fd4607f888965ca",
      "parents": [
        "c41e5b5ae1befe2c602d55de1dbc04d1914f4a6c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 14:00:39 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 13:58:05 2011 -0700"
      },
      "message": "Implement reflective method invocation.\n\nChange-Id: Ib3af9d7e00bf226398610b5ac6efbfe3eb2d15e8\n"
    },
    {
      "commit": "53d6ff445706c390c541d10ef11f1b2f19ab14e8",
      "tree": "f1e863afe6c57bf0bf9b32a2c4642f3707b4ec41",
      "parents": [
        "d8b877a20c87e3c7ebef4a3ddd1d8896b2a5b822"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 23 10:45:07 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 23 11:03:48 2011 -0700"
      },
      "message": "Reverts to track dalvik and libcore\n\nRevert \"Tracking removal of Method.NO_ANNOTATIONS static field from libcore\"\nThis reverts commit c6766ed17d27417bfce62c31b342b3faa47ada5d.\n\nRevert \"Implement Class.getDex.\"\nThis reverts commit 98fb41647a5664922a196fd1f6b343e6bad8e51e\n\nRevert \"Track libcore change.\"\nThis revert commit c3d530c371d5c915f4d4545810d77d391dbbfec9\n\nChange-Id: I7159af63f100fc9810e6c2e5ef18b0c4942acc8b\n"
    },
    {
      "commit": "98fb41647a5664922a196fd1f6b343e6bad8e51e",
      "tree": "8af776aee481d8d0a56d743487ca1eface1d6bc6",
      "parents": [
        "0c64f5ebef8ad6470be87cd2d50934180c91b70a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 15:24:13 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 15:24:13 2011 -0700"
      },
      "message": "Implement Class.getDex.\n\nChange-Id: Iefb1e21a364e3e3b9f32ffd6ba57b55cfaee8c3b\n"
    },
    {
      "commit": "0c64f5ebef8ad6470be87cd2d50934180c91b70a",
      "tree": "8ea66d89ba6c92d6edfb8f7253cb29ec0583d207",
      "parents": [
        "c3d530c371d5c915f4d4545810d77d391dbbfec9"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Sep 22 16:52:20 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Sep 22 16:55:25 2011 -0400"
      },
      "message": "Move annotations to managed code.\n\nChange-Id: I8491f5d8b489b6fb4f80d4cbca9a05c0cf47816d\n"
    },
    {
      "commit": "c3d530c371d5c915f4d4545810d77d391dbbfec9",
      "tree": "094472092750d9d278b7eb53f8d5aa178f4d281d",
      "parents": [
        "f91c8c328c922ecd522e1d3508d2603e78de8a7b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 12:10:40 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 12:10:40 2011 -0700"
      },
      "message": "Track libcore change.\n\nChange-Id: Ibb4374008f2657b8ffd2ed08329d319151107d04\n"
    },
    {
      "commit": "f91c8c328c922ecd522e1d3508d2603e78de8a7b",
      "tree": "9ae1b28516bfac8698f34e56b4a07037b5c81c28",
      "parents": [
        "ff1ed4770bf7ff024a807b9f909b1a26abb78341"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 21 17:30:34 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 22 11:28:21 2011 -0700"
      },
      "message": "Adding JNI code for dalvik.system.DexFile and java.lang.Class\n\nChange-Id: I079c037db77aeaca0dec06660f7551f57adf2607\n"
    },
    {
      "commit": "03c99df35373efa1924d0ab9c0d21f9061afe8ea",
      "tree": "211cd72a2713c6a2d9f99f8c999e651f50432959",
      "parents": [
        "534f045c57532f5689ccad269faa35b655a44f77"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 10:52:00 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 10:52:00 2011 -0700"
      },
      "message": "Fix Class_getDeclaredConstructorOrMethod to look at direct as well as virtual methods\n\nChange-Id: Ibc34e3e55b408b2ef04e439960c63fb6e98d06eb\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": "3a7b4f26387b3529899f3cf16cdd6f1e200ded80",
      "tree": "c8f743def22ea61bf7bf63af029085bf8ee5ca23",
      "parents": [
        "81eccc06e0adae55e57008e9e61a25920569d5b9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 17 15:01:57 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 17 15:03:18 2011 -0700"
      },
      "message": "Class.getDeclaredConstructorOrMethod\n\nChange-Id: I96e39e18d099b683c690bccc1ba93f310b3ee823\n"
    },
    {
      "commit": "f867b6f706818c886087f61b89d1e8f5fc4653cf",
      "tree": "87a87a20f884601848ad09ced087035d121ab2d0",
      "parents": [
        "6bdc3b255d313a71016e78802dbcc97fa995c851"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 16 12:17:25 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 16 23:18:48 2011 -0700"
      },
      "message": "Filling in some Class, Method, and Field native code needed during startup and I/O\n\nChange-Id: Ia2f2a0ec295d1bd848e6f65254bd9fec2fde56f6\n"
    },
    {
      "commit": "6bdc3b255d313a71016e78802dbcc97fa995c851",
      "tree": "1c6642eceeaca5f3490a893cd57141a18341ee7c",
      "parents": [
        "85d1545e985ac689db4bad7849880e843707c862"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 19:24:10 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 19:24:10 2011 -0700"
      },
      "message": "More java.lang.Class functionality.\n\n(Some of these are just stubs, but I need them to get the GC daemons\ngoing.)\n\nChange-Id: I3c472bf06d3a11a183781605cd3ed9fc67640d33\n"
    },
    {
      "commit": "8d768a954b101a9532f980253ac46be2c53aba11",
      "tree": "ba6fa0be68a2289d5de3eb6c4de6fe93f6cd858a",
      "parents": [
        "43a364291dcdfe08e530e9568748359735dd7442"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 16:35:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 16:35:25 2011 -0700"
      },
      "message": "Thread suspension.\n\nIncludes SuspendAll/ResumeAll, and uses them in Heap and SignalCatcher.\n\nChange-Id: Ie39b868ca5961f5016f367acade5071392bb723e\n"
    },
    {
      "commit": "d369bb76dee0df2d2a106e9bf7f4e6446ed6deaa",
      "tree": "fbcfe2341a78a860b97649f719406709a8c87341",
      "parents": [
        "aaa208006d7c8cc0f381c4aa9b525be24066c495"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 12 14:41:14 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 12 15:10:49 2011 -0700"
      },
      "message": "Various things.\n\nThis patch:\n\n1. adds good-enough implementations for a couple of Class native methods we\nneed.\n\n2. removes a fixed TODO from image_test.\n\n3. adds missing null checks to the Thread native methods, and forwards\nThread.nativeCreate to Thread::Create.\n\n4. stops jni_compiler from overwriting already-registered native methods\nwith the dynamic lookup stub.\n\n5. adds workarounds to Thread::CreatePeer so we can cope better without\ncode, attempts to initialize thread groups correctly, dumps thread state\nfrom the managed peer (where one exists), and implements Thread::DumpStack\nfor debugging (and SIGQUIT dumps).\n\nChange-Id: I3281226dd22ec852dca5165748fc75a254904ac0\n"
    }
  ]
}
