)]}'
{
  "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": "05f3057d6a4d23d712092ccd36a531590bff323b",
      "tree": "3f342c813afdb44a08466e379c060f917d073e5a",
      "parents": [
        "4aeb567fa8b1f5e17ef7beacf86fed505cc7335c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 20 12:13:11 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 20 12:15:09 2013 -0800"
      },
      "message": "Move monitor related object routines to object-inl.h\n\nAlso pass through readily available self Thread. Remove unused wait method.\nRename ObjectLock.Wait to document it doesn\u0027t honor interrupts.\n\nChange-Id: I991e5036997b3f60ee4fdf1a420beabab9a70c85\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": "700c8d31733534a3d978b75a03f6f7e177dc7e81",
      "tree": "6b9d8d93a70e31dba3b0a880f886ce408776314c",
      "parents": [
        "9adbff5b85fcae2b3e2443344415f6c17ea3ba0a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 05 10:42:02 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 25 14:28:43 2013 -0800"
      },
      "message": "Move .oat files to ELF format\n\nGenerates .oat in ELF file format using MCLinker\n- Uses MCLinker IRBuilder to create a synthetic .o from OatWriter output.\n- Uses new ElfFile for prelinking to support art image optimizations.\n\nAdapted OatFile to load using dlopen, ElfFile, or memory, removing raw MemMap mechanism.\n\nChanged image code to not assume oat data will be immediately after\nimage to allow space for ELF headers.\n\nPasses test-art and works with installd.\n\nChange-Id: Idc026eddb5de93f4b97490c405f3ed7b39589749\n"
    },
    {
      "commit": "07ed66b5ae659c452cbe1ab20c3dbf1d6f546461",
      "tree": "2350745da33df6fcb9fb0c9059e55ea5d5ea8f67",
      "parents": [
        "76b6167407c2b6f5d40ad895b2793a6b037f54b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:34:25 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:35:05 2012 -0800"
      },
      "message": "Move logging.h into base/logging.h.\n\nChange-Id: Id68f85f7c3a71b156cb40dec63f94d4fb827f279\n"
    },
    {
      "commit": "1cac343f8621a81bcd3f52f8eee0f497a66d7408",
      "tree": "b2c2dc7326ae708e4d2aa185c6234df8341d3dcc",
      "parents": [
        "89c41e5f2fa10e7b97698b9714bd4883a73132f0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 10:56:22 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 10:56:22 2012 -0800"
      },
      "message": "Remove now unused RelocationBehavior\n\nChange-Id: Ifdb98a63376014a698b53bc926fb1c5512dc2e57\n"
    },
    {
      "commit": "28db0129e5d7ef642cf8845c86c0e11832817085",
      "tree": "3f1ca5abeb2e622e193573165bf20a626447337e",
      "parents": [
        "a85b8376740641f13dc078aea6be94d15a800803"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 18 16:20:41 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 18 22:26:03 2012 -0700"
      },
      "message": "Add oat file dependency on boot.oat load location\n\nChange-Id: I89742e361675bd4e5177e3af213bcc826ddd60de\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": "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": "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": "afe25515c358617321d69ab4f25003e3d905d613",
      "tree": "c30ec73f0ae2f0b233f88b6eaf1c0b6bfd1df2dd",
      "parents": [
        "85545cd13c16c5074cca987f65247d7abddb39f7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 27 17:02:58 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 27 17:16:42 2012 -0700"
      },
      "message": "Update DexFile_isDexOptNeeded to handle system.img oat files with classes.dex\n\nChange-Id: I564bacec777b745a9c911a8fe8dd98437b1ddd2d\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": "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": "0c717dd1c56bd29cf860d0feda8e629dab2cadb3",
      "tree": "a587807a9821ba6986e56fc9d3fed68540e41268",
      "parents": [
        "ccb7bf1271560783adccddb2ab74c53d0efd3fd1"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Mar 28 18:31:07 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Apr 06 17:03:33 2012 -0700"
      },
      "message": "Add ELF loader to OatFile.\n\nChange-Id: I062c3cc78ff9a35d0efcbc9451e7e7ccb055667b\n"
    },
    {
      "commit": "58cbbc25c91b96f4766c66cefa0a0cf6ba7b1d45",
      "tree": "ca81d9634ac2443bf3d9484eda1fc03ea73de175",
      "parents": [
        "68aefb06c449df0bd8a34f3491f7594ee3f9dd0b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Mar 29 17:52:00 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Mar 29 17:52:04 2012 -0700"
      },
      "message": "Do not use FindOatFileFromOatLocation in DexFile_isDexOptNeeded\n\nisDexOptNeeded is trying to sniff out bad files and\nFindOatFileFromOatLocation will register the file on the opened oat\nfile list so later if the same process tries to run code from one of\nthe oats, it will find it already opened and not validate its contents\nare up-to-date. This happens in the special case of the system server\nwhich is responsible for scanning to make sure things are up-to-date\nproactively, but also starts up services using those files.\n\nChange-Id: Ia9b483a46336b46bc1ec22180e60099e74886927\n"
    },
    {
      "commit": "81f3ca17e9e8d360cc4a1b6c3155cf01ba3be3bc",
      "tree": "bbf93e69c7f5f29a53f12fe623486acd3a60cdd0",
      "parents": [
        "3fa13791c51985d9956d01bc465de6d36c3390d3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 17 00:27:35 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Mar 18 19:45:03 2012 -0700"
      },
      "message": "Add image dependency to oat files\n\nChange-Id: I945356f71357f1aa0092f4fe6c57eccfb029b4a6\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": "bf2cb16f442fc48acd296d3d321590fb58173f36",
      "tree": "bec72946b66c0aba01ebc77e6a98c562e6d40ae2",
      "parents": [
        "b977257d920a015d2e9da5a6c0ee06acb4fd5065"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 27 17:49:19 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 27 17:49:19 2012 -0800"
      },
      "message": "Fix oat-target-sync generated oat files to have leading /\n\nChange-Id: I62321b05106c08e9e8cc15d2cadf8abee91ce568\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": "66a556f94e5dc9ba55bec9a11bee5671faa03e23",
      "tree": "52b304c17a0a5c33b235f60ebfa3d8c19810b7cd",
      "parents": [
        "42882d1ae5a297b037f560a6ec190be1a584579d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 00:05:38 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 00:05:38 2012 -0800"
      },
      "message": "Move DexFile.defineClass exception suppression to managed code\n\nChange-Id: I8abb16f6a2752a04eccce2b501d20236d65adaaa\n"
    },
    {
      "commit": "5b332c89fa3fdd7dc184b22c2587d28af304d019",
      "tree": "f348c63b6756adad52d1e242786df1c9136d6eee",
      "parents": [
        "9cb39392bacbd2a561c6bd840fff821ff7afaa7e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 01 15:02:31 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Feb 03 18:11:56 2012 -0800"
      },
      "message": "Fix checksum verification when opening DexFiles from OatFiles\n\nChange-Id: Ic3d13f3d591c34f159bf0739536a1751c3e7dc75\n"
    },
    {
      "commit": "f6174e8a1566bb357e82506f7ec97dc359c90eb2",
      "tree": "b74b1fc81d0dc0b2f2da7ab6f5187493f15a0b66",
      "parents": [
        "4d9716c19cc25911e639272048abd0d6702bb082"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 31 16:14:17 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 31 17:48:30 2012 -0800"
      },
      "message": "Fix to prevent a dex file from being verified multiple times.\n\nInstead of verifying a dex file whenever one is initialized, they\u0027re now\nverified when not opened from memory. Also, the way dalvik_system_DexFile\nopens dex files has been changed to check for an existing oat file and\nget the corresponding dex file from there instead.\n\nChange-Id: I75fc26247150107d628e2c4e364ef8a53fbf9481\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": "ba8eee10607a524f43b55a6f33c13924fb16d435",
      "tree": "45f3c3728bcaee9ff04baeaf1706693e677757bf",
      "parents": [
        "844f9a072454eb9dca1022299b6bf99ef4294008"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "message": "Remove more lint.\n\nChange-Id: I48714db4169d9ea0536342809361210910ee2091\n"
    },
    {
      "commit": "e8f3212ff9d47dbe368ea7f2e243b5e9e8680620",
      "tree": "ab36337dffd478b91baf3153a7786384450d4a9e",
      "parents": [
        "ff17f1fd3ff32f93e45588eb2b158832d73f9afa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 18:23:30 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 18:23:30 2012 -0800"
      },
      "message": "Address review comments.\n\nChange-Id: I93e1f3244babb6f7a809a5fbb8cb718f34ccf220\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": "b3e66dfcd069db8818cd902d787ff1d7bbca45f2",
      "tree": "b2fb80c539a6d7c51ae978376390a895f6f9ef7c",
      "parents": [
        "01646a0d8103e5e73ed53e4d36593a1cc3c26a03"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 12 14:49:18 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 12 14:49:18 2012 -0800"
      },
      "message": "Minor fixes.\n\nFix a crash when shutting down if a daemon thread suspended while holding the\nheap lock. For some reason, presumably involving extra daemon threads, CTS hits\nthis a lot.\n\nSilently ignore a couple of dalvikvm options for backwards compatibility. This\nmakes CTS less noisy.\n\nRemove redundant parentheses that would make it easy for us to introduce a \u003d\u003d/\u003d\nbug.\n\nChange-Id: Id44eab29ce393a85585459c280ad47c5a5c749b9\n"
    },
    {
      "commit": "725aee5889a9e57c08689f6c1cb9763e8d1fd377",
      "tree": "38f99953b4c6aea4ada9fc6dc6ec243316cf8188",
      "parents": [
        "761bfa80704937024fdbe58c2b6fd4599760efaf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 11 11:56:56 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 11 11:56:56 2012 -0800"
      },
      "message": "Fixes for 071-dexfile\n\nEnsure dex2oat has the correct process group.\nDon\u0027t unmap dex file in DexFile.open.\nDiagnostic warning messages in DexFile.open in particular as the class\nloader will swallow the IOExceptions without logging.\nFix location of test-ex.jar for test 068-classloader.\n\nChange-Id: Ie54ebb98b687db1eb30091c86de9beb860c26c3d\n"
    },
    {
      "commit": "c981848a3425662034c5429b61c035e7533b896d",
      "tree": "134579a74a90734da2c5bf43d2ce13f22e3d11d2",
      "parents": [
        "cab0101c2b28a6be003f177ccb04347f0a6b62d7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 11 08:52:51 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 11 08:52:51 2012 -0800"
      },
      "message": "Tweaks to DexFile defineClass JNI code\n\nChange-Id: I248f5e8fc500b540c9100a09507d5d644f73f1ff\n"
    },
    {
      "commit": "cab0101c2b28a6be003f177ccb04347f0a6b62d7",
      "tree": "5620c2074caa44458aaebceccd5229557174d3fb",
      "parents": [
        "672297c77a92e31e88feb179e4548284ba17d330"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 10 17:35:46 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 10 17:35:46 2012 -0800"
      },
      "message": "Fix 086-null-super and 087-gc-after-link\n\nParallel run-test means that the dex files for 086 and 087 are no longer\nalways in test.jar. Correct the behavior of the class linker when\nClassloader.loadClass returns null to be the behavior of Dalvik.\n\nChange-Id: Icf6363e118d03a01060012ac558b5f1a484d74f9\n"
    },
    {
      "commit": "2e3d1b262af0839380e1d60e86d8b281943ef944",
      "tree": "f703c068e2a037d12dac592e1ebc6f1849ce4fbf",
      "parents": [
        "d170fc48b0895ee98ec0d6e3cf1987c8260af95d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jan 09 18:01:56 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jan 09 21:20:50 2012 -0800"
      },
      "message": "Changes to compile with gcc 4.6\n\nChange-Id: I55908b3b98b49373ce948fd1f12e0a5cd56ae4f7\n"
    },
    {
      "commit": "d601af8d9549ca95a911afb2fc67c4e562da661f",
      "tree": "3b4b2e277ecc02533f9e63b889ee501348568990",
      "parents": [
        "769fde14cf82840e458f3ca0b1accdaedc60e837"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 06 10:15:19 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 06 15:25:19 2012 -0800"
      },
      "message": "Move old dex file creation logic to oat file creation\n\nChange-Id: I643adaf918c00bd38c3e85d7622d30b06eab1c68\n"
    },
    {
      "commit": "89521898b56f2ebc3fb68acfb6bc6dde9b6f5c38",
      "tree": "6811878efd4490f78ae099ec7e14c1a1ffe4d868",
      "parents": [
        "c74a6971fb9a65dbee337d51e7981a37be208a00"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 07 22:05:07 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 04 00:23:07 2012 -0800"
      },
      "message": "Merge art-cache dex files into oat files\n\nChange-Id: I5a327a4e0b678bd9dabb12de4e21ef05e3fefd0b\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": "ae826983f7903bc0a6bbbe8426bf393fb2f6d747",
      "tree": "6fb83f2b19a1a50ade3c93cbf10485cd8fbc793f",
      "parents": [
        "8aa6fc39f5cc0279d4ba2ee064de9758560dfedd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 09 01:33:42 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 29 13:46:50 2011 -0800"
      },
      "message": "Add --image-classes to dex2oat\n\nChange-Id: Ia88f9d302e0f9cd72be2199ee46d212d99864c67\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": "262bf46ddc91e5b4fbd367127ff21a1877d939f2",
      "tree": "a8c775ccabe058392fb008bc523605e34ed01bdb",
      "parents": [
        "ecbce8f17a80ddc8e5d80b075a8e334f1c2daf3c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Oct 20 18:36:32 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Oct 24 11:23:14 2011 -0700"
      },
      "message": "dex2oat invoked by system if it can\u0027t find an oat file for a dex file.\n\nThis allows the old dalvik tests to be run without ever explicitly\nrunning dex2oat on anything. Just upload the jar files and the system\nwill take care of generating the files it needs.\n\nChange-Id: Iad553bf6f57e28da4edb8eb0df47e62e08a0be44\n"
    },
    {
      "commit": "c393a4f7c91534ac41a81d66b12c22e68df28fc7",
      "tree": "7c0fbc951c448be0b2ccccbfe323afc80efa2d6f",
      "parents": [
        "1cb66f5f569a3c631d940d8bd10f7466e5e5ed29"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 19 13:46:09 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 19 15:24:08 2011 -0700"
      },
      "message": "System calls dex2oat when opening a dex file with an output location\n\nThis fix addresses the old dalvik test 071. The test has 2 source jars,\nand one is loaded later. To support this, the other jar has to be run\nthough dex2oat. Eventually, we want the system to invoke dex2oat on any\njar files that need it.\n\nChange-Id: Ie8428004f397cdb56ee437d0b38c0670f14e77fa\n"
    },
    {
      "commit": "c252c3eacd83a0c110dd065690a7f652be35b0e7",
      "tree": "a004a0b73d40b018e5beaec8be77ed229aece42d",
      "parents": [
        "fad714344ca81a21e775ef45ae09d9a035723caf"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 16 23:21:02 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 16 23:21:02 2011 -0700"
      },
      "message": "Clarify cause of 071 failure with an UNIMPLEMENTED\n\nChange-Id: I6b76a53a44bb2c26fc226ef32628a63944db3dbe\n"
    },
    {
      "commit": "fad714344ca81a21e775ef45ae09d9a035723caf",
      "tree": "0b700f9d533036362bfbca77b8911153a8406884",
      "parents": [
        "31edec5b9e506cb702818c074ffef4edcc142105"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 16 20:25:10 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 16 22:16:42 2011 -0700"
      },
      "message": "Assorted fixes\n\n- Match ClassLinker::oat_files_ against cached oat file locations\n- Have DexFile_isDexOptNeeded do checksum comparsion of oat to dex\n- Complete TODO in Heap::Lock to use TryLock before switching to kVmWait\n- Fix ThrowNew to use Throwable constructor without String when no msg is available\n\nChange-Id: Ie9d7bfef9e80b77e5f7625a4d7c9c4a23c7b30b5\n"
    },
    {
      "commit": "1d9f52b7ca91c6d30b7acfac1c9ab24d93fff470",
      "tree": "0b78747cefb673ffb907a5706f1a1021542f19f4",
      "parents": [
        "03a20ba67cfdc46f5ad8d77242a666a4cb0512f2"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 13 10:50:45 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 13 11:27:45 2011 -0700"
      },
      "message": "Implement DexFile_isDexOptNeeded\n\nChange-Id: Ib4d641ca7000b0f563cb9ab9c0970d6b8ad92060\n"
    },
    {
      "commit": "03a20ba67cfdc46f5ad8d77242a666a4cb0512f2",
      "tree": "c9ad51b063cdcc39b30503fee1a1bb4f755800dd",
      "parents": [
        "b278356581806fd2acd8b14a1b8fb7dc482bcf4e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 13 10:24:13 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 13 10:24:13 2011 -0700"
      },
      "message": "Implement DexFile_getClassNameList\n\nChange-Id: I9b48628e338a5346bc3ac21f3469e4e3d224a956\n"
    },
    {
      "commit": "41ec477bc70f51716b08b4a0ced18efc9e99b564",
      "tree": "844133c0fde64e1baad25ef263cc9002087ab793",
      "parents": [
        "582a7d16bb0db323d8bd730beb61578aa3765f43"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 11 01:35:58 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 11 01:35:58 2011 -0700"
      },
      "message": "Fixed DexFile.defineClass to return null, not throw Exception\n\nChange-Id: I09e16d5530698b41f18ae33cca7745aa3d164922\n"
    },
    {
      "commit": "df143242f4beaad4cc9fbabebfc033b68c40964e",
      "tree": "31695ba744f983aa0d8e80c314902e4355cff5ae",
      "parents": [
        "72ee0ae6207a5c0f1b13bb6a556e3e6f4d77a46a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 18:05:34 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 18:21:23 2011 -0700"
      },
      "message": "Setup Thread\u0027s context ClassLoader and add image DexFiles to ClassLinker\u0027s boot classpath\n\nChange-Id: I84337c69ff743c58be9e7125d17fcccb514614ef\n"
    },
    {
      "commit": "bc4b76dc2680327bf3f9460caed4547b5ac5f5e9",
      "tree": "e5cbba856bcf4864f4934374767299917f0a36b1",
      "parents": [
        "aded5f7ab991f3c1132851599d3bc60ff6707eed"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 12:59:25 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 13:42:05 2011 -0700"
      },
      "message": "Fix class name format for jniThrowExceptionFmt\n\nChange-Id: I25d087b23294f00f7cd6d38add79bb15aaa8f0fb\n"
    },
    {
      "commit": "aded5f7ab991f3c1132851599d3bc60ff6707eed",
      "tree": "7fb5e92c224adf98cadd67b7df99cc2d2851cbcb",
      "parents": [
        "bcbaaf3df56178263dbc110dcb0d1cf6c9d167c3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 07 17:15:04 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 12:51:28 2011 -0700"
      },
      "message": "Working ClassLoader\n\nChange-Id: Ia1122165e47f846a1d4506111849f830d9f14c1b\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"
    }
  ]
}
