)]}'
{
  "log": [
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "2afe49450f2e018f18b5de45428b9174bfd6f196",
      "tree": "2d6f96d2dfc4c8baaef172259a824708e510225e",
      "parents": [
        "84e524207b23d58a1b1e5f4443000ccac97c4184"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon May 19 10:25:33 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon May 19 10:26:17 2014 -0700"
      },
      "message": "Follow up to \"Add ISA directory to image and odex pathnames.\"\n\nChange-Id: I7f08cc3052fbed93a56ccf1ab7675ae8bc129da9\n"
    },
    {
      "commit": "84e524207b23d58a1b1e5f4443000ccac97c4184",
      "tree": "6eb6204994d342a653fba4eea275a536a720b036",
      "parents": [
        "f04544ffdb801946d087ae1322c890e34e185156",
        "0e12bdc49744eb6d5c29b9611a8dbe10bac4cd53"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon May 19 16:50:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 19 16:50:21 2014 +0000"
      },
      "message": "Merge \"Add ISA directory to image and odex pathnames.\""
    },
    {
      "commit": "f832284dd847ff077577bb5712225430bbbb3b67",
      "tree": "44f6b91098639c6ebc438b4ec998d0dc128cef9a",
      "parents": [
        "8f0776768712b2021aa8fb649b51017b9f0fc7a9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 16 10:59:25 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 18 12:50:33 2014 -0700"
      },
      "message": "Delete ClassHelper and fix compaction bug in GetDirectInterface\n\nCleanup helps to prevent compaction bugs. Fixed a fairly serious\ncompaction error caused by calling ClassHelper::GetDirectInterface\nwithout handling the case where it causes thread suspension due to\nResolveType.\n\nBug: 8981901\n\nChange-Id: I82b3bb6dd48d21eb6ece7aae0733c4a23c2bc408\n"
    },
    {
      "commit": "0e12bdc49744eb6d5c29b9611a8dbe10bac4cd53",
      "tree": "aba31f1d671b4816fb63fca00b985ab0d2b6a12b",
      "parents": [
        "de1129a26e0474ea8bb9112938ebb867163969fd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 14 17:44:28 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 16 16:14:50 2014 -0700"
      },
      "message": "Add ISA directory to image and odex pathnames.\n\nBug: 14882223\nBug: 14694978\nChange-Id: Ic1b5ae836b8e91ea461dcd4f3da8e38dc3bec00f\n"
    },
    {
      "commit": "507dfdd147c97bfbadebfd63584d094b6a4e7b47",
      "tree": "cce43931b6dcd088cb2932c2491f86116353a27f",
      "parents": [
        "922ddb30982d2597eab634d8b8598bec0eb7d3b7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:42:40 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:50:51 2014 -0700"
      },
      "message": "Compatibility layer to transition from UniquePtr to std::unique_ptr.\n\nUse ART_WITH_STLPORT (enabled for the target) to cause the use of UniquePtr,\nfor the host switch to std::unique_ptr. For now the type remains called\nUniquePtr.\nMake dalvik compile with clang on the host, move its build to C++11.\n\nChange-Id: I5ba8d2757904bc089ed62047ea03de3c0853fb12\n"
    },
    {
      "commit": "41ccffd58512f1fa1aeb9ad288cbb667899ff1be",
      "tree": "43d46ff4a785515b903d652371ba4fb997c88ba3",
      "parents": [
        "52f84884433f3875f4b1bc5595b8d5a2d6fb3d99"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 06 10:37:30 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 06 11:14:17 2014 -0700"
      },
      "message": "Automatically create non-/data dalvik-cache directories\n\nBug: 14471634\nChange-Id: Ie8ae4537102352dc1b270e9b65e681adf3631a80\n"
    },
    {
      "commit": "ef204fae79009caa1ec7df1f79462bf8b92b5e58",
      "tree": "9b9466c9179fd5a609e40946aaa32405a026a4fc",
      "parents": [
        "11d9f06a96a6909905c248ed684366190140095c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 30 17:25:23 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 11:25:21 2014 +0100"
      },
      "message": "Fix errno checking for dalvik-cache creation.\n\nOn the host, it\u0027s possible for /tmp/foo/dalvik-cache/\u003cisa\u003e to\nnot exist, but for /tmp/foo/dalvik-cache to be already present.\nIn this scenario, the first mkdir() can fail with EEXIST.\n\n(cherry picked from commit 6fa28aef44106eef4a7195adb5eb77f6e5531572)\n\nChange-Id: I1da79ad23a4ff510a0f87eca4b52d9f52ab791ad\n"
    },
    {
      "commit": "11d9f06a96a6909905c248ed684366190140095c",
      "tree": "27b02ab216b98ba1656d66072fd46c5adec61242",
      "parents": [
        "b3016551e5f264264dbb633a1ddf03ac97f9c66c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 23 20:24:57 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 11:25:07 2014 +0100"
      },
      "message": "Use instruction specific dalvik cache dirs.\n\n- All oat \u0026 art files are now placed under /data/dalvik-cache/\u003cisa\u003e/.\n- GetDalvikCacheOrDie now requires a mandatory subdirectory argument,\n  and is implicitly rooted under /data/.\n- Added helper methods to convert InstructionSet enums into strings\n  and vice versa.\n\n(cherry picked from commit 2974bc3d8a5d161d449dd66826d668d87bdc3cbe)\n\nChange-Id: Ic7986938e6a7091a2af675ebafec768f7b5fb8cd\n"
    },
    {
      "commit": "a2cee18799d7e61adb037a4219adb23fef7d022b",
      "tree": "214a6d6d4682196aa0e2ebcb5a0cc7bcf3eec2d3",
      "parents": [
        "ed0bc0bbf26f6751f31213d24ccdac49766e93ff"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 16 19:13:59 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 18 15:32:15 2014 -0700"
      },
      "message": "Modify unwind to comply with stack parser tools.\n\nBug: 14081592\n\nChange-Id: I6906b2575c74d64f1c3ba7602779b3a789de1c69\n"
    },
    {
      "commit": "0f6784737882199197796b67b99e5f1ded383bee",
      "tree": "139888bdfad743c50e800ad46b9aec97ae3415d3",
      "parents": [
        "73a471336a9515fa7fdc5859e3c481ec451237a5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 10 16:18:37 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 10 18:02:07 2014 -0700"
      },
      "message": "Unify 64bit int constant definitions.\n\nLL and ULL prefixes are word size dependent, use the INT64_C and UINT64_C\nmacros instead.\n\nChange-Id: I5b70027651898814fc0b3e9e22a18a1047e76cb9\n"
    },
    {
      "commit": "474cc79e445d4d4fedabfc5b7acf648cf338fc26",
      "tree": "ca6e6117d11f1afd47c84622a766f59d425e7c40",
      "parents": [
        "0918614b7434783477e8668df7850a7aaf8d5611"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 07 14:18:15 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 07 14:18:15 2014 -0800"
      },
      "message": "Use GetEntryPointFromQuickCompiledCode instead of GetQuickOatCodeOffset\n\nThe latter is meant for compile time use only when an offset is stored, instead of a pointer to code\n\nChange-Id: I2fa9b8b3aaab0e6cfa1fc31c4d44aab0d9c3d30f\n"
    },
    {
      "commit": "067d20fd2fddd947ce3a014d023e9de249082ebe",
      "tree": "22ebe9335ce783d6b4cfaa311281e001d578ac12",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 05 14:57:21 2014 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 06 13:38:41 2014 -0800"
      },
      "message": "backtrace: use Java stack to help decode native\n\nBefore change:\n\n  native: usb_host_run+16 [0x400a43f9] (/libusbhost.so)\n  native: android::Vector\u003cint\u003e::do_move_forward(void*, void const*, unsigned int) const+54 [0x501b1c5b] (/libandroid_servers.so)\n  native: ??? [0x624de480] (/system@framework@boot.oat)\n  at com.android.server.usb.UsbHostManager.monitorUsbHostBus(Native method)\n  at com.android.server.usb.UsbHostManager.access$000(UsbHostManager.java:38)\n\nAfter change:\n\n  native: usb_host_run+16 [0x400933f9] (libusbhost.so)\n  native: android::Vector\u003cint\u003e::do_move_forward(void*, void const*, unsigned int) const+54 [0x4e984c5b] (libandroid_servers.so)\n  native: Java_com_android_server_usb_UsbHostManager_monitorUsbHostBus__+92 [0x624de480] (system@framework@boot.oat)\n  at com.android.server.usb.UsbHostManager.monitorUsbHostBus(Native method)\n  at com.android.server.usb.UsbHostManager.access$000(UsbHostManager.java:38)\n\nChange-Id: Iea550a251a12e9ba7df9582fd454093bfa4e90e0\n"
    },
    {
      "commit": "cc460f11b5422d8ad93c64b9c1d79b694386c272",
      "tree": "45edd34545e2d9e85f0c691ec0ffc52455796324",
      "parents": [
        "511472b9110d15cf30a205bb514eb98f6afce651"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 05 14:11:04 2014 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 05 14:11:04 2014 -0800"
      },
      "message": "backtrace: trim of unneeded slash from solib\n\nPreviously we would output solib with an unnecessary slash:\n\n  native: art::JDWP::JdwpState::Run()+6018 [0x416bf3e3] (/libart.so)\n\nTrim it off so it omits the slash:\n\n  native: art::JDWP::JdwpState::Run()+6018 [0x41961f6b] (libart.so)\n\nChange-Id: I82baf1e624227858f5750ef57058474d21777451\n"
    },
    {
      "commit": "13db9aa2d23e705d49c777abb45ba47e3747d873",
      "tree": "e170ee5e06ec205baa465083c4e213983a1ccc54",
      "parents": [
        "a2806550cefb7c70781d8ee6279e6ad5769804cb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 27 12:44:32 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 27 12:44:32 2014 -0800"
      },
      "message": "Avoid tripping up debuggered with the fatal crash abort\n\nBug: 13226780\nChange-Id: Ia876d1dc7774713ec49fb8e6b0625f118fffb198\n"
    },
    {
      "commit": "a1ce1fef2d49d1d537776a5308ace7102a815fe5",
      "tree": "a1afe850d9ebd21f4b751eb68e1ec3dc60dab001",
      "parents": [
        "930f7b843ddc6e6530439d3fdb0e2133a6292f1e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 24 23:23:58 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 26 13:17:44 2014 -0800"
      },
      "message": "Split up CommonTest into CommonRuntimeTest and CommonCompilerTest\n\nChange-Id: I8dcf6b29a5aecd445f1a3ddb06386cf81dbc9c70\n"
    },
    {
      "commit": "4cf5e57b5ec366b8730dacd45e8011e5f9b07b6d",
      "tree": "4830199916f9f0f507af7a7c0b959e2e881a0aeb",
      "parents": [
        "51c89a953df74c872993ea9a66c3ec8133b132da"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 25 11:47:48 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 25 11:51:26 2014 -0800"
      },
      "message": "Move waitpid(2) includes to art::Exec implementation\n\n(cherry picked from commit 446a13ff04dae7ef9c90584e7cf8e834ee841681)\n\nChange-Id: Id5fe3dd8e6c4cef953c39b00f2a53b23da5a6247\n"
    },
    {
      "commit": "35d8b8e0f6d174108b5e94ec2e49cf3c6a0c72c3",
      "tree": "881aa821d6393f6dc8c0b9c5c7d9e4f799010a83",
      "parents": [
        "efeedc2f56a7525cc5958a429636a74c7c8b77d3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 25 10:51:11 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 25 11:26:03 2014 -0800"
      },
      "message": "Avoid going through char* for std::string API\n\nBug: 13186058\n\n(cherry picked from commit 14ae4a873e91ae8cb1c00013579b5b058268879d)\n\nChange-Id: Ib529cc10abc2d413e9da65c043dbc2638b734acd\n"
    },
    {
      "commit": "6449c62e40ef3a9bb75f664f922555affb532ee4",
      "tree": "2f1b2120bd648c95dea32b68c8e168e42c8e24fd",
      "parents": [
        "3fcf18e25241253f23efbeebe77b2a4c4a7c54d3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 10 23:48:36 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 24 14:24:12 2014 -0800"
      },
      "message": "Create CompilerOptions\n\nPackage up most compiler related options in CompilerOptions. Details include:\n- Includes compiler filter, method thresholds, SEA IR mode.\n- Excludes those needed during Runtime::Init such as CompilerCallbacks and VerificationResults.\n- Pass CompilerOptions to CompilerDriver.\n- Remove CompilerOptions from Runtime.\n- Add ability to pass options for app and image dex2oat to runtime via\n  -Xcompiler-option and -Ximage-compiler-option respectively.\n\nOther\n- Replace 2x CompilerCallbacks implementations with one.\n- Factor out execv code for use by both image and oat generation.\n- More OatFile error_msg reporting.\n- DCHECK for SuspendAll found trying to run valgrind.\n\nChange-Id: Iecb57da907be0c856d00c3cd634b5042a229e620\n"
    },
    {
      "commit": "ef7d42fca18c16fbaf103822ad16f23246e2905d",
      "tree": "c67eea52a349c2ea7f2c3bdda8e73933c05531a8",
      "parents": [
        "822115a225185d2896607eb08d70ce5c7099adef"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 06 12:55:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 06 23:20:27 2014 -0800"
      },
      "message": "Object model changes to support 64bit.\n\nModify mirror objects so that references between them use an ObjectReference\nvalue type rather than an Object* so that functionality to compress larger\nreferences can be captured in the ObjectRefererence implementation.\nObjectReferences are 32bit and all other aspects of object layout remain as\nthey are currently.\n\nExpand fields in objects holding pointers so they can hold 64bit pointers. Its\nexpected the size of these will come down by improving where we hold compiler\nmeta-data.\nStub out x86_64 architecture specific runtime implementation.\nModify OutputStream so that reads and writes are of unsigned quantities.\nMake the use of portable or quick code more explicit.\nTemplatize AtomicInteger to support more than just int32_t as a type.\nAdd missing, and fix issues relating to, missing annotalysis information on the\nmutator lock.\nRefactor and share implementations for array copy between System and uses\nelsewhere in the runtime.\nFix numerous 64bit build issues.\n\nChange-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822\n"
    },
    {
      "commit": "943af7dab1454517c5bd11a31ab99f260afb22d1",
      "tree": "0c8101f7d24eee3ff02ed324e34333a83853194f",
      "parents": [
        "00e7f2e935d98f0eb14f5ef1d376604d0054bf5e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 16 12:41:46 2014 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 16 17:42:55 2014 -0800"
      },
      "message": "Change to support new BacktraceMap.\n\nChange-Id: I291313583dca2c8e1e946504c442f5810f0fb477\n"
    },
    {
      "commit": "16ce0923698d9a2df8a93d3895d2e851d8ac6fbf",
      "tree": "fd2584e44bdf658b45fa480a833245238c6aa707",
      "parents": [
        "aa368a44da1807a04fd66f348f7f867ca30ce3cf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 10 14:59:36 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 10 15:25:32 2014 -0800"
      },
      "message": "Make fast JNI part of pretty method output.\n\nChange-Id: Ic4951a22d12e93d7f1e1af7ffbb08b4bb9b8f587\n"
    },
    {
      "commit": "e6da9af8dfe0a3e3fbc2be700554f6478380e7b9",
      "tree": "127a0565fce79f05d82d0ff242fbbffa6e2bc6b3",
      "parents": [
        "977d409b959497eecc44a35cff16115d0f04ccab"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 16 11:54:42 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 08 14:16:12 2014 -0800"
      },
      "message": "Background compaction support.\n\nWhen the process state changes to a state which does not perceives\njank, we copy from the main free-list backed allocation space to\nthe bump pointer space and enable the semispace allocator.\n\nWhen we transition back to foreground, we copy back to a free-list\nbacked space.\n\nCreate a seperate non-moving space which only holds non-movable\nobjects. This enables us to quickly wipe the current alloc space\n(DlMalloc / RosAlloc) when we transition to background.\n\nAdded multiple alloc space support to the sticky mark sweep GC.\n\nAdded a -XX:BackgroundGC option which lets you specify\nwhich GC to use for background apps. Passing in\n-XX:BackgroundGC\u003dSS makes the heap compact the heap for apps which\ndo not perceive jank.\n\nResults:\nSimple background foreground test:\n0. Reboot phone, unlock.\n1. Open browser, click on home.\n2. Open calculator, click on home.\n3. Open calendar, click on home.\n4. Open camera, click on home.\n5. Open clock, click on home.\n6. adb shell dumpsys meminfo\n\nPSS Normal ART:\nSample 1:\n    88468 kB: Dalvik\n     3188 kB: Dalvik Other\nSample 2:\n    81125 kB: Dalvik\n     3080 kB: Dalvik Other\n\nPSS Dalvik:\nTotal PSS by category:\nSample 1:\n    81033 kB: Dalvik\n    27787 kB: Dalvik Other\nSample 2:\n    81901 kB: Dalvik\n    28869 kB: Dalvik Other\n\nPSS ART + Background Compaction:\nSample 1:\n    71014 kB: Dalvik\n     1412 kB: Dalvik Other\nSample 2:\n    73859 kB: Dalvik\n     1400 kB: Dalvik Other\n\nDalvik other reduction can be explained by less deep allocation\nstacks / less live bitmaps / less dirty cards.\n\nTODO improvements: Recycle mem-maps which are unused in the current\nstate. Not hardcode 64 MB capacity of non movable space (avoid\nreturning linear alloc nightmares). Figure out ways to deal with low\nvirtual address memory problems.\n\nBug: 8981901\n\nChange-Id: Ib235d03f45548ffc08a06b8ae57bf5bada49d6f3\n"
    },
    {
      "commit": "6e9aeb6633e42bc7d2265f73de28e521e3fc9c21",
      "tree": "22291e5e4069e620f3595b1f0c84fcd4433a554d",
      "parents": [
        "08f20c63e2bd0c41d53a4c3ddaa34fd637f5405d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 05 16:23:10 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 12 10:42:48 2013 -0800"
      },
      "message": "Update Backtrace::Create to use new define.\n\nChange-Id: Ib345ef796c99d12fb3a4118f28edec7cbffa76d2\n"
    },
    {
      "commit": "7020278bce98a0735dc6abcbd33bdf1ed2634f1d",
      "tree": "533cf9a77046a49525d916043a58949e59319f2d",
      "parents": [
        "67f128a4023bbbe55827dd2c11ed0538ee387233"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Oct 22 17:52:19 2013 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Nov 05 16:48:53 2013 -0800"
      },
      "message": "Support hardware divide instruction\n\nBug: 11299025\n\nUses sdiv for division and a combo of sdiv, mul and sub for modulus.\nOnly does this on processors that are capable of the sdiv instruction, as determined\nby the build system.\n\nAlso provides a command line arg --instruction-set-features\u003d to allow cross compilation.\nMakefile adds the --instruction-set-features\u003d arg to build-time dex2oat runs and defaults\nit to something obtained from the target architecture.\n\nProvides a GetInstructionSetFeatures() function on CompilerDriver that can be\nqueried for various features.  The only feature supported right now is hasDivideInstruction().\n\nAlso adds a few more instructions to the ARM disassembler\n\nb/11535253 is an addition to this CL to be done later.\n\nChange-Id: Ia8aaf801fd94bc71e476902749cf20f74eba9f68\n"
    },
    {
      "commit": "6b98c91275d4361d1b74effad36995cc2d687a55",
      "tree": "b96cc0d6d15cc60adf0939252b93bb47cb210448",
      "parents": [
        "610e49f5adc8b5e4a37696aa20fc029dab6b1e40",
        "7b5f0cf08f74ff36760a813888779d28a175982d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 05 07:04:12 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 05 07:04:12 2013 -0800"
      },
      "message": "am 7b5f0cf0: Use libbacktrace instead of libcorkscrew.\n\n* commit \u00277b5f0cf08f74ff36760a813888779d28a175982d\u0027:\n  Use libbacktrace instead of libcorkscrew.\n"
    },
    {
      "commit": "7b5f0cf08f74ff36760a813888779d28a175982d",
      "tree": "45d77050651a3423deabe7de7c51d8169f6cfd38",
      "parents": [
        "e2946917852af9d2ec643c7c987d2bb66cf2f086"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 01 15:18:45 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Nov 04 13:46:11 2013 -0800"
      },
      "message": "Use libbacktrace instead of libcorkscrew.\n\nAlso, removed the ignore frames of 2, this was causing threads to chop\nthe lower two frames. The original code assumed that the calls to decode\nthe frame were in the unwind trace, but that\u0027s not the case.\n\nChange-Id: Ifc0da0227f9114a5b462ef88e038439d58f951e9\n"
    },
    {
      "commit": "8d31bbd3d6536de12bc20e3d29cfe03fe848f9da",
      "tree": "2373ae08ddddaf1034623df85d647ecf9ac6c831",
      "parents": [
        "57e6d8a99058e5c74d5244b68a5f4d53526fa108"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 13 10:44:14 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 21 17:01:11 2013 -0700"
      },
      "message": "Throw IOException at source of failing to open a dex file.\n\nBefore is:\njava.lang.ClassNotFoundException: Didn\u0027t find class \"GCBench\" on path: DexPathList[[zip file \"/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\"],nativeLibraryDirectories\u003d[/disk2/dalvik-dev/out/host/linux-x86/lib]]\n        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)\n        Suppressed: java.lang.ClassNotFoundException: GCBench\n                at java.lang.Class.classForName(Native Method)\n                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)\n                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)\n                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)\n                ... 1 more\n        Caused by: java.lang.NoClassDefFoundError: Class \"LGCBench;\" not found\n                ... 5 more\nAnd after is:\njava.lang.ClassNotFoundException: Didn\u0027t find class \"GCBench\" on path: DexPathList[[zip file \"/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\"],nativeLibraryDirectories\u003d[/disk2/dalvik-dev/out/host/linux-x86/lib]]\n        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)\n        Suppressed: java.io.IOException: Zip archive \u0027/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\u0027 doesn\u0027t contain classes.dex\n                at dalvik.system.DexFile.openDexFile(Native Method)\n                at dalvik.system.DexFile.\u003cinit\u003e(DexFile.java:80)\n                at dalvik.system.DexFile.\u003cinit\u003e(DexFile.java:59)\n                at dalvik.system.DexPathList.loadDexFile(DexPathList.java:268)\n                at dalvik.system.DexPathList.makeDexElements(DexPathList.java:235)\n                at dalvik.system.DexPathList.\u003cinit\u003e(DexPathList.java:113)\n                at dalvik.system.BaseDexClassLoader.\u003cinit\u003e(BaseDexClassLoader.java:48)\n                at dalvik.system.PathClassLoader.\u003cinit\u003e(PathClassLoader.java:38)\n                at java.lang.ClassLoader.createSystemClassLoader(ClassLoader.java:128)\n                at java.lang.ClassLoader.access$000(ClassLoader.java:65)\n                at java.lang.ClassLoader$SystemClassLoader.\u003cclinit\u003e(ClassLoader.java:81)\n                at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:137)\n        Suppressed: java.lang.ClassNotFoundException: GCBench\n                at java.lang.Class.classForName(Native Method)\n                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)\n                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)\n                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)\n                ... 1 more\n        Caused by: java.lang.NoClassDefFoundError: Class \"LGCBench;\" not found\n                ... 5 more\n\nAlso, move dex file verifier messages out of logs.\nIn the process the ClassLinker::dex_lock_ needed tidying to cover a smaller\nscope. Bug 11301553.\n\nChange-Id: I80058652e11e7ea63457cc01a0cb48afe1c15543\n"
    },
    {
      "commit": "ba5352f8393a9e4fdc06c6b63e57fc241a9770c1",
      "tree": "1518d384958b7bd3b07d5934e7ad88e9d45e2bcb",
      "parents": [
        "8348939bbb6aa582a8abb33189e452354e597026",
        "19a083603128c2cded84f0e5ad59db2044b1d6b6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 16 19:34:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 16 19:34:58 2013 -0700"
      },
      "message": "am 19a08360: Fix dumpsys meminfo for art\n\n* commit \u002719a083603128c2cded84f0e5ad59db2044b1d6b6\u0027:\n  Fix dumpsys meminfo for art\n"
    },
    {
      "commit": "19a083603128c2cded84f0e5ad59db2044b1d6b6",
      "tree": "9674ec8c522b82f9221394c5c3164e3ac6589826",
      "parents": [
        "8293f74d1232775b9f94b5a2381bfefe856d0ba5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 16 14:37:22 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 16 19:22:24 2013 -0700"
      },
      "message": "Fix dumpsys meminfo for art\n\nBug: 10112253\n\n(cherry picked from commit fb2f70c7678d33c2027cdd0285d8b5421876e6aa)\n\nChange-Id: I149c30242f3c9ef1f67b95e26731c2505e840171\n"
    },
    {
      "commit": "1449f1dbd4174c8bee5a3a1dbdbc256216342fce",
      "tree": "f7d620c48a52a08bc3f2a9da5abe4e5941b852e2",
      "parents": [
        "a9650dd5e7195aec987a69a6ebbdaf33f73a6b00",
        "80f85137828f3ada45de7beb0acd2888ed7b3b24"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 12:00:22 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 12:00:22 2013 -0700"
      },
      "message": "am 80f85137: am 7c798419: am 7c3d13ae: Use file magic to determine file type, not file extension.\n\n* commit \u002780f85137828f3ada45de7beb0acd2888ed7b3b24\u0027:\n  Use file magic to determine file type, not file extension.\n"
    },
    {
      "commit": "80f85137828f3ada45de7beb0acd2888ed7b3b24",
      "tree": "e87734c162a6da19f28edb3bd18ff7620fce747c",
      "parents": [
        "acab9fa3b3b45e5cd0d63d06073f6a6008eb720a",
        "7c79841982c3f3c2fd7fba0d338a52a27c50bc52"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 11:10:40 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 11:10:40 2013 -0700"
      },
      "message": "am 7c798419: am 7c3d13ae: Use file magic to determine file type, not file extension.\n\n* commit \u00277c79841982c3f3c2fd7fba0d338a52a27c50bc52\u0027:\n  Use file magic to determine file type, not file extension.\n"
    },
    {
      "commit": "7c3d13aebdd8611cae58a1048bffb13cbdc465cb",
      "tree": "23f2415bb38e77b0d53c1de06c37a133c7b08e51",
      "parents": [
        "f15242943a7a836966cd521e3095a4b731695c71"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 04 17:15:11 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 17:00:39 2013 -0700"
      },
      "message": "Use file magic to determine file type, not file extension.\n\nBug: 10614658\nChange-Id: I9156dfca78ac8cd1c62fb258825cc791629270a4\n"
    },
    {
      "commit": "d91d6d6a80748f277fd938a412211e5af28913b1",
      "tree": "5c45f4ae53aab3f530284a97dc328b4e38ce7c94",
      "parents": [
        "9c11b56296b8cffc94b0b854ce6cff7e014b8d57"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 25 20:26:14 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 26 21:08:25 2013 -0700"
      },
      "message": "Introduce Signature type to avoid string comparisons.\n\nMethod resolution currently creates strings to then compare with strings formed\nfrom methods in other dex files. The temporary strings are purely created for\nthe sake of comparisons. This change creates a new Signature type that\nrepresents a method signature but not as a string. This type supports\ncomparisons and so can be used when searching for methods in resolution.\n\nWith this change malloc is no longer the hottest method during dex2oat (now its\nmemset) and allocations during verification have been reduced. The verifier is\ncommonly what is populating the dex cache for methods and fields not declared\nin the dex file itself.\n\nChange-Id: I5ef0542823fbcae868aaa4a2457e8da7df0e9dae\n"
    },
    {
      "commit": "a9a624b2be2180e6bd33f02c89fb8521376a2e8c",
      "tree": "c6b993d3a16f1513ca6bde12e5a8b7844f43adf8",
      "parents": [
        "e4ef0953b6a27f00a93b4807cd1ff668f4fbeb22",
        "2921201dce37ba40c55b89c0deca3c34bf64168e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 24 09:40:46 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 09:40:46 2013 -0700"
      },
      "message": "am 2921201d: Remove some non-const references in utils\n\n* commit \u00272921201dce37ba40c55b89c0deca3c34bf64168e\u0027:\n  Remove some non-const references in utils\n"
    },
    {
      "commit": "2921201dce37ba40c55b89c0deca3c34bf64168e",
      "tree": "2222b4bf7a53864c1bf514bb68e0053a966da3e5",
      "parents": [
        "bb0140e051e62ca0b51b0870c2386ae3110b0556"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 12 22:18:30 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 23 22:43:29 2013 -0700"
      },
      "message": "Remove some non-const references in utils\n\nChange-Id: Ib2d3c39fadb6a750c68c37b0aa53daab155a65a3\n"
    },
    {
      "commit": "a67249065e4c9b3cf4a7c081d95a78df28291ee9",
      "tree": "8f5b84b886362e9f3bb2e9be6b24c2b61a02f907",
      "parents": [
        "450dcb56ecbf6f729401e753f0a27e4170177ddd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 23 09:23:37 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 23 09:25:56 2013 -0700"
      },
      "message": "Move hot utf routines into -inl.h.\n\nChange-Id: I7050d8282a7e5870b2bf671d6867c57625e00ccc\n"
    },
    {
      "commit": "caacdf326cfe09decfca0a15c62ebe10b774e05e",
      "tree": "d1f0fe587a4d19ba613226fdbde8c3b9f87d70b4",
      "parents": [
        "0f72e4136aecaf6976fdb55916bbd7b6d5c9c77b"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu Sep 19 17:29:21 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu Sep 19 17:34:13 2013 -0700"
      },
      "message": "Fix dumpsys meminfo for art\n\nBUG:10112253\nChange-Id: I2a34cc0841bdcf922c4ab4eadda360313858a0d6\n"
    },
    {
      "commit": "57dac6ed61a0a25c14d4e2fabc84435578d42360",
      "tree": "9cb004e94b313f8aae2b0a29b4b9241bd207ec74",
      "parents": [
        "a68f43fa91531b2e8fe73fa5a5731f18a80ff801"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 15 16:36:24 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 15 16:36:24 2013 -0700"
      },
      "message": "Fix sampling profiler to use thread\u0027s cpu clock.\n\nThe sampling profiler was using the sampling thread\u0027s cpu clock to\nmeasure cpu time, instead of the sampled thread\u0027s cpu clock.\n\nChange-Id: Ief1f82e07e0353192c61521f67dec7a761905f64\n"
    },
    {
      "commit": "7571e8b761ebc2c923525e12ea9fcf07e62cb33e",
      "tree": "5d90ecf4d0ba1a72b040a376f227df1ba9278889",
      "parents": [
        "2e250c826b3c405d675017efe79e5db3651c9ee6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 12 17:04:14 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 15 10:33:53 2013 -0700"
      },
      "message": "Add flock(2)ing on dex-cache files to prevent races\n\nBug: 9071417\nChange-Id: I1ee9ff281867f90fba7a8ed8bbf06b33ac29d511\n"
    },
    {
      "commit": "ea46f950e7a51585db293cd7f047de190a482414",
      "tree": "9dddc8073547a2dcb58a19e1728932a89cb149c3",
      "parents": [
        "5e3572709b5a5d59957f835db4f73760ecef08da"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 30 01:26:50 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 13 18:09:46 2013 -0700"
      },
      "message": "Refactor java.lang.reflect implementation\n\nCherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1.\n\nMove to ArtMethod/Field instead of AbstractMethod/Field and have\njava.lang.reflect APIs delegate to ArtMethod/ArtField.\n\nBug: 10014286.\n\nChange-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7\n"
    },
    {
      "commit": "7934ac288acfb2552bb0b06ec1f61e5820d924a4",
      "tree": "43f3acd8af7fd34d4ae7b64f6e06bb8429d74bb8",
      "parents": [
        "fb331d7ca004f39608fcfdae49d38df90c702ea9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 10:54:15 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 11:55:10 2013 -0700"
      },
      "message": "Fix cpplint whitespace/comments issues\n\nChange-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    },
    {
      "commit": "30e2ea4a701d53f28431041af68dc0669e60c569",
      "tree": "55a04655d0896e1d22d41df17d1fed5f6b85396d",
      "parents": [
        "0eba633357c6c01b298434c7fd8a5705b5b2e18f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 19 23:25:37 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 20 16:53:02 2013 -0700"
      },
      "message": "Move art to use dalvik names for .oat files\n\nChange-Id: Ia383c0a0847684a513cab7db44b4ecf8fe05e1c3\n"
    },
    {
      "commit": "7675e16bcae06c0fe258aad89b3d511037dec399",
      "tree": "7b1ef4555225ba2e6d9b63fe61549c52d291a757",
      "parents": [
        "5f4bd97519aad4f075346f8c5c0a84c6105951d8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 10 16:18:04 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 10 16:18:04 2013 -0700"
      },
      "message": "Rename art-cache to dalvik-cache\n\nChange-Id: I294995066aecc29fbd739c3e9e6f60934f743064\n"
    },
    {
      "commit": "e606010a5e5ea803736576b47740a2551e5d0dfc",
      "tree": "cc01184f0f2e086642bd741fd71cd447c7a1295f",
      "parents": [
        "c4ee12e73fc844f28a9812a9141985cf05143a57"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 16 12:01:04 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 16 12:01:04 2013 -0700"
      },
      "message": "Increase logging around bad dex files.\n\nChange-Id: I294aecd401046537004c79dcd0041b61af962892\n"
    },
    {
      "commit": "52e55cbc6d18694556176b58ef79b5ae52c8039c",
      "tree": "c4e2784e0420ff89f6304a5a649a948783a62ef9",
      "parents": [
        "52003fe9e2020e9d68cee1300fdb4a3f55be85a5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 22 09:56:53 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 22 09:56:53 2013 -0700"
      },
      "message": "Remove gcc-based tsan support\n\nChange-Id: I145331e295f69e99408e03cb59df26fb337510f5\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": "60641a72cdbdbd5d7c731a0544f9ce8555e90dd4",
      "tree": "12b8a274fb611c1e53824875837ade2fc2ba3380",
      "parents": [
        "a0e8bbd2f684f4187ef3d5835a73da8e8ce6dac8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 27 14:36:16 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 27 14:36:16 2013 -0800"
      },
      "message": "Harden oatdump like we did dexdump.\n\nBug: 6936283\nChange-Id: Ia6bae922b2603e1a2539fe6f2c3b1d69c7594736\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": "56edc432fa914f7ccfa87ce443e64f5ef475666d",
      "tree": "4e05c32f3524043614a2f368a6d49f7f3bc24616",
      "parents": [
        "d75afb99f0c8b8a27ad84e2e31010383ecf72120"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 18 16:51:51 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 22 08:47:33 2013 -0800"
      },
      "message": "Support for contention logging with ART futexes.\n\nRemove dangerous postfix operators on AtomicInteger. Clean up the atomic stack.\nFactor nanosleep into a useful shared utils.h routine.\n\nChange-Id: I417a73007c23fe247f410f41b2fa41a717c22139\n"
    },
    {
      "commit": "761600567d73b23324ae0251e871c15d6849ffd8",
      "tree": "4757cb01233394fa2e9c461a68fc37a35c12dabb",
      "parents": [
        "89c41e5f2fa10e7b97698b9714bd4883a73132f0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 16:31:20 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 16:31:20 2012 -0800"
      },
      "message": "Switch over to the google3 unix_file File*.\n\nI also moved macros.h to base/macros.h to ease google3 porting, at\nthe expense of a larger than necessary change. (I learned my lesson,\nthough, and didn\u0027t make the equivalent base/logging.h change.)\n\nI\u0027m not sure whether we want to keep the unix_file MappedFile given\nour existing MemMap, but it\u0027s easier to bring it over and then remove\nit (and possibly revert the removal) than to bring it over later.\n\nChange-Id: Id50a66faa5ab17b9bc936cc9043dbc26f791f0ca\n"
    },
    {
      "commit": "bcc2926b9721f94c17ed98fae5264cc98f0e066f",
      "tree": "ebc059463499b973804d52e0bba593a12cd0326e",
      "parents": [
        "af6eaca5034a602f459a6eca9fb185f3abe8a882"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Nov 02 11:36:03 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Nov 02 17:00:27 2012 -0700"
      },
      "message": "Add dex2oat watch dog thread for host builds\n\nChange-Id: I90b4b6b3a1aebb82955b4aa84d3f2d599af1d13b\n"
    },
    {
      "commit": "120f1c74a9768e958377b6c97897511b27ae58c8",
      "tree": "fa1f90d88ea34d8ef9eec729d27c7a70956a6a09",
      "parents": [
        "cabc60e71a65fa17e5a99fba94fc61523fbeb478"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 28 17:17:10 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 03 17:29:26 2012 -0700"
      },
      "message": "Fail threads attaching during runtime shutdown.\n\nIntroduce counters to indicate that threads are being born. Don\u0027t allow\nthread birth to occur during runtime shutdown.\n\nBug: 7000936\n\nChange-Id: Ib0d78f78c0ff126a4b5d3b5a6f1a2ff8f5061ae9\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": "ba0b9c55adce3f533845ab1b25c552589e5b4118",
      "tree": "053ae9ce87645f18eb380e9709a93ef7608452d9",
      "parents": [
        "46c6bb2f52cef82660b9be7576b49f83845df93a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 20 11:25:12 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 20 11:25:12 2012 -0700"
      },
      "message": "Add the native thread state to art SIGQUIT dumps.\n\nBug: 7053953\nChange-Id: I9be3f828332e5bbb003644802d7770b58d8298ed\n"
    },
    {
      "commit": "4c70d77decc1217c8b1ebf8126b8d9d024c75d82",
      "tree": "cee4d83f26615a62ecbedaa74ae1bdb0a1113585",
      "parents": [
        "15b962f1c2eaee7a3d668f26e4e20faeb29f13d8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 10 14:08:32 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 10 15:41:46 2012 -0700"
      },
      "message": "Fix error in PrettyType.\n\nPrettyType was incorrectly adding a space at the end of the type.\n\nAlso added a brief comment explaining what pretty type does.\n\nChange-Id: Ia8b6f583a44d86a8c0db5efcd9ad495b686995d3\n"
    },
    {
      "commit": "18c24b6e05e7591069f1a2ac9c614b28fc0853ac",
      "tree": "cf1d9507d4cba52017f71fd7073ff565a90b8c36",
      "parents": [
        "1a0806c6847a9dc5cc6d73460d7e8ad3183b5c49"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 10 08:54:25 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 10 09:42:13 2012 -0700"
      },
      "message": "Add new_array type info to dex dump output.\n\nAlso cleaned up a bit of the field printing.\n\nChange-Id: Ia731d58b16f554fde9a9ac733f4d4f0148e55ac9\n"
    },
    {
      "commit": "0325e6296d2370c42e7be80d846bfc7f8b28423b",
      "tree": "3e7e2192b3756ed1ee70921910ded374189dd5ad",
      "parents": [
        "581b2ea85d9b382f6b14efadc9d2d36b526ef7c5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 05 14:22:51 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 06 15:57:22 2012 -0700"
      },
      "message": "Cumulative timing logger\n\nAdded a new class: Cumulative timing logger. This logger enables us to get an average of how long each Gc phase takes.\n\nChange-Id: I87874d4c25b5935ef30ef593a9bd36a27e45ae14\n"
    },
    {
      "commit": "f3a26411e0e8b56b64d184d3e946e72f9c31e4c7",
      "tree": "c1a552f7d21691d4c5c4b7632cfcfd1edc213a13",
      "parents": [
        "a5d602c87ca780030caf82a64701b60ce118fb2f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 24 11:06:02 2012 -0700"
      },
      "committer": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Aug 24 15:49:48 2012 -0700"
      },
      "message": "Make Mutexes work on Mac OS X 10.6\n\nChange-Id: I1692f78df5891be91d620050b7214083fbafb10f\n"
    },
    {
      "commit": "5db7ea037e9acad434efe8ab4ce798c513fdb49a",
      "tree": "7103ef5f625ea0dd8f174e17fa7cb37b09a25667",
      "parents": [
        "0088689b77a3e310a9e269d72113b63eab3552c7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 14 13:33:49 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 14 13:33:49 2012 -0700"
      },
      "message": "Run the verifier single-threaded.\n\nAlso improve crash dumps so the frame numbers are the same as when you\u0027re\nin gdb, and add a more memorably-named environment variable for waiting\nfor gdb.\n\nChange-Id: Icbeba9b60cc98102e49eee9266d97fbcc1783f53\n"
    },
    {
      "commit": "02fb9f7d83813805141da741d8fbfc45751741dd",
      "tree": "3aae602bc4bcf7815042306d2cfa45b295bc118b",
      "parents": [
        "5c599943f8c347acd84c4d9fda56a9df70649b78"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 13 22:22:33 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 13 22:22:33 2012 -0700"
      },
      "message": "Flush libcorkscrew\u0027s /proc/self/maps cache before a crash dump.\n\nChange-Id: I682282b7162312db71b7222d89b4e5592fe1c8a1\n"
    },
    {
      "commit": "95aff770aad557685411775994bf2ec6bb370367",
      "tree": "360add38920eb519830b86859d53cc7afba79c76",
      "parents": [
        "a168c83a1d247094e9efb1244b0f73a5f1e1ed97"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 12 17:44:15 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 13 15:27:51 2012 -0700"
      },
      "message": "Fix ridiculous pc offsets for static symbols in .so files.\n\nExample before:\n\n  static\tart::HandleUnexpectedSignal(int, siginfo*, void*)+4146013245 [0xf75f6fcd] (libartd.so)\n\n...and after:\n\n  static \tart::HandleUnexpectedSignal(int, siginfo*, void*)+1085 [0xf7e9872d] (libartd.so)\n\n(This matches what gdb\u0027s x/1i said.)\n\nChange-Id: I0f1ce29ad09bbe6f1f27aa8ef654e7fab2f2378e\n"
    },
    {
      "commit": "289be85116aaf7c48413858b5d0448868b4e61f3",
      "tree": "b9302aa89850df080b43d0ca0ddb3636463fb22c",
      "parents": [
        "08fcb2591b4e60eee41d0aab92f3bcc36784fa5a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 12 13:57:20 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 12 13:57:20 2012 -0700"
      },
      "message": "Include the crashing thread\u0027s name in crash dumps.\n\nChange-Id: I7fd821e3f390fde3a7280689292373d413218893\n"
    },
    {
      "commit": "225f5a1df25241babd16cdba54056b9e2cd166a2",
      "tree": "d3846f2f3a97a59124084d8fd503a3238346e66d",
      "parents": [
        "7664f5cd118b355a5fe0c7536cb48ac991ed2b62"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 11:23:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 11 11:37:58 2012 -0700"
      },
      "message": "Don\u0027t pre-allocate one OOME per thread.\n\nThere\u0027s no associated stack trace, so we can share one between all\nthreads, saving a little memory and thread start-up time. Speaking\nof stack traces: dump the stack to the log at the point where we\nrealize we\u0027re not going to be able to throw an exception with a\nstack, so the developer has _something_ to work with.\n\nChange-Id: I2246d291855bd9b9ee13f2be5b1ce14f669e9410\n"
    },
    {
      "commit": "c4c3ee2b77064f6def92d394aec9a2ac7dee4e90",
      "tree": "5375e32bb41fee9a8ce561b1be99bf68d5e15917",
      "parents": [
        "12a95026721fb872c5d273130efc7ddecdae359c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri May 25 16:16:32 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 11:38:12 2012 -0700"
      },
      "message": "Return if DumpKernelStack can\u0027t find the kernel stack file.\n\n(cherry picked from commit 05c09ece5312ebb4e1c661dde2bbc67798d63f8b)\n\nChange-Id: I78265f13fea936b7fda37e24f9e0999b417fc17a\n"
    },
    {
      "commit": "12a95026721fb872c5d273130efc7ddecdae359c",
      "tree": "fd771d922e1fe645d04054f0eeced7ae2a48aed4",
      "parents": [
        "058a6de784e5337c550e8b45bfa1f54e6d16fbf2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 21:41:38 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 11:36:01 2012 -0700"
      },
      "message": "Don\u0027t show the useless kernel stack for the thread that\u0027s reading /proc.\n\n(cherry picked from commit 1f92871d20f804913f460bb69dc4d605cabf30cc)\n\nChange-Id: Ib88cd89c13911742abf793dc9eebbeb7fbe98492\n"
    },
    {
      "commit": "058a6de784e5337c550e8b45bfa1f54e6d16fbf2",
      "tree": "767387657aa125eff1d92f6264348f064a95c277",
      "parents": [
        "46e251bf7200cc06f5a9a82ee2030e650f5e1443"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 19:13:02 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 11:23:21 2012 -0700"
      },
      "message": "Switch completely over to libcorkscrew for Mac OS.\n\n(This patch requires my Darwin libcorkscrew changes.)\n\n(cherry picked from commit 51e916f5b7baf0b0391f55a314a97b12279fe0d5)\n\nConflicts:\n\n\tsrc/runtime_linux.cc\n\nChange-Id: Ife7789597402989e6b8282cc0c0cc1d1832b044a\n"
    },
    {
      "commit": "46e251bf7200cc06f5a9a82ee2030e650f5e1443",
      "tree": "9cfe6a0184fd07cd77819702cd63394e3475383b",
      "parents": [
        "6f3d0518f06dc0eb0fb40e03b4b35e840c81e95f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 22 15:10:45 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 10:42:55 2012 -0700"
      },
      "message": "Switch to libcorkscrew for native stack traces.\n\nThis is both for the current thread (which backtrace(3) could do) and other\nthreads, which is functionality we didn\u0027t have on x86 before.\nWe jump through the appropriate hoops to get static symbols as well as dynamic\nones.\n\nAlso unify the existing native stack dumpers so they can share the best code.\n\nExample x86 check failure:\n\n  *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n  Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) fault addr 0xdeadd00d\n  Registers:\n      eax: 0x00000000    ebx: 0x55a966f0    ecx: 0x55d523c0    edx: 0x09225a50\n      edi: 0x559d9b84    esi: 0xfffd8bcc    ebp: 0x55a9aba0    esp: 0xfffd8b90\n      eip: 0x558e2e98                    eflags: 0x00010246 [ PF ZF IF ]\n       cs: 0x00000023     ds: 0x0000002b     es: 0x0000002b     fs: 0x00000007\n       gs: 0x00000063     ss: 0x0000002b\n  Backtrace:\n  \t#00 unwind_backtrace_thread+536 [0x55d76bb8] (libcorkscrew.so)\n  \t#01 art::DumpNativeStack(std::ostream\u0026, int, char const*, bool)+79 [0x55924fcf] (libartd.so)\n  \t#02 art::HandleUnexpectedSignal(int, siginfo*, void*)+1431814659 [0x5597cc23] (libartd.so)\n  \t#03 __kernel_rt_sigreturn [0x55573410] ([vdso])\n  \t#04 art::Runtime::Abort()+600 [0x558e2e98] (libartd.so)\n  \t#05 art::LogMessage::~LogMessage()+1052 [0x5580c16c] (libartd.so)\n  \t#06 art::EnsureResolved(art::Class*)+336 [0x5570dad0] (libartd.so)\n  \t#07 art::ClassLinker::FindClass(char const*, art::ClassLoader const*)+144 [0x5571bc90] (libartd.so)\n  \t#08 art::ClassLinker::FindSystemClass(char const*)+43 [0x5572287b] (libartd.so)\n  \t#09 art::ClassLinker::FinishInit()+82 [0x557228d2] (libartd.so)\n  \t#10 art::ClassLinker::InitFromImage()+1469 [0x5572451d] (libartd.so)\n  \t#11 art::ClassLinker::CreateFromImage(art::InternTable*)+60 [0x5572583c] (libartd.so)\n  \t#12 art::Runtime::Init(std::vector\u003cstd::pair\u003cstd::string, void const*\u003e, std::allocator\u003cstd::pair\u003cstd::string, void const*\u003e \u003e \u003e const\u0026, bool)+943 [0x558e882f] (libartd.so)\n  \t#13 art::Runtime::Create(std::vector\u003cstd::pair\u003cstd::string, void const*\u003e, std::allocator\u003cstd::pair\u003cstd::string, void const*\u003e \u003e \u003e const\u0026, bool)+119 [0x558e9057] (libartd.so)\n  \t#14 art::Dex2Oat::CreateRuntime(std::vector\u003cstd::pair\u003cstd::string, void const*\u003e, std::allocator\u003cstd::pair\u003cstd::string, void const*\u003e \u003e \u003e\u0026, art::InstructionSet)+42 [0x80ac68a] (dex2oatd)\n  \t#15 art::Dex2Oat::Create(std::vector\u003cstd::pair\u003cstd::string, void const*\u003e, std::allocator\u003cstd::pair\u003cstd::string, void const*\u003e \u003e \u003e\u0026, art::InstructionSet, unsigned int, bool)+60 [0x80ac87c] (dex2oatd)\n  \t#16 art::dex2oat(int, char**)+3167 [0x80894cf] (dex2oatd)\n  \t#17 main+17 [0x8086a01] (dex2oatd)\n  \t#18 __libc_start_main+230 [0x55c12bd6] (libc-2.11.1.so)\n\nExample x86 SIGQUIT dump (note the three stacks, and note the absence of all\nthe crap that makes dalvik\u0027s attempt so unreadable):\n\n  \"Thread-10\" prio\u003d5 tid\u003d11 VmWait\n    | group\u003d\"main\" sCount\u003d1 dsCount\u003d0 obj\u003d0x612d6620 self\u003d0x884f8f0\n    | sysTid\u003d30512 nice\u003d0 sched\u003d0/0 cgrp\u003ddefault handle\u003d1458686832\n    | schedstat\u003d( 1249502 8995 26 ) utm\u003d0 stm\u003d0 core\u003d14 HZ\u003d100\n    | stackSize\u003d1044KB stack\u003d0x57905000-0x57906000\n    kernel: futex_wait_queue_me+0xcd/0x110\n    kernel: futex_wait+0x1e5/0x310\n    kernel: do_futex+0x101/0xb00\n    kernel: compat_sys_futex+0x75/0x160\n    kernel: sysenter_dispatch+0x7/0x2e\n    native: __kernel_vsyscall+14 [0x5557342e] ([vdso])\n    native: pthread_mutex_lock+54 [0x55cd8bf6] (libc-2.11.1.so)\n    native: art::Mutex::Lock()+86 [0x55823a86] (libartd.so)\n    at java.lang.AbstractStringBuilder.\u003cinit\u003e(AbstractStringBuilder.java:75)\n    at java.lang.StringBuilder.\u003cinit\u003e(StringBuilder.java:54)\n    at java.lang.Thread.create(Thread.java:427)\n    at java.lang.Thread.\u003cinit\u003e(Thread.java:223)\n    at ThreadStress$1.run(ThreadStress.java:134)\n\n(cherry picked from commit 00e446e5d912100b831fdcdbc276e7c31447f0c4)\n\nConflicts:\n\n\tsrc/thread.cc\n\nChange-Id: I4712f8235992eafe6d8d6f915aa96f684bceaff2\n"
    },
    {
      "commit": "6f29d0e6d5444ff84157c922c23c221567dcc6c5",
      "tree": "bd59a7c1006507d5d230876e703814191db9f0df",
      "parents": [
        "71e85b74eb5710a689e83623706b3bb372762eb5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 11 15:50:29 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 11 16:51:58 2012 -0700"
      },
      "message": "Skip compilation of dead code from duplicate methods\n\nChange-Id: If6114b3cd8e9a2d9a901dc93c352cee6afa3361f\n"
    },
    {
      "commit": "8a31b50daf530a28c8ce2be8d758c737cb32897b",
      "tree": "d2cabe590eef1e1b6c5f23a6be3063956a1c9689",
      "parents": [
        "b57e952a167d3f72ee5c8e80267052b70c0f6308"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 30 19:36:11 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 30 19:36:30 2012 -0700"
      },
      "message": "Remove two unnecessary .c_str() calls.\n\nChange-Id: I48a604e13e678bc74b3745ceafcb8d0367e51f8b\n"
    },
    {
      "commit": "e188419b971936086a188843378375f5ced13724",
      "tree": "176f45c1395b3efee8a6330512ee023960522797",
      "parents": [
        "90dc30f4b9967e850d0594e57dfa8e7cb0369575"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 12:38:15 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 12:38:15 2012 -0700"
      },
      "message": "Make Thread::InitStackHwm work on Mac OS.\n\nChange-Id: Id0170dbdff8112d8e48d41ab50a311076863151e\n"
    },
    {
      "commit": "795e33081c73a6fead31f45b03fdfb022ef7eab8",
      "tree": "6e7c5d4ac9bd9dfc04c9bb271538b829c69e62f5",
      "parents": [
        "5b04728e9a61cf038e38820eb8a82a412015d5e3"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Apr 21 00:20:57 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Apr 21 00:40:10 2012 -0700"
      },
      "message": "Set materialized file names correctly.\n\nChange-Id: I0848ad4da4f2033dd7804686e65bd44c690a2036\n"
    },
    {
      "commit": "7b9d996e4cd7d154bb1a244d67139aff0c363cf2",
      "tree": "a9dabe8f910b4b8bf29c2f4285d860995e25f58d",
      "parents": [
        "934100aea5a0f498c17e2c4a1fd0193af1557b42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:48:18 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:57:19 2012 -0700"
      },
      "message": "Tidy up some C-isms.\n\nChange-Id: I53b457cab9067369320457549071fc3e4c23c81b\n"
    },
    {
      "commit": "c967f78cd29b6019f7cfca40a02e9b677112da70",
      "tree": "60458d56fc398c9fb7b67b6d834b85f626ac2b31",
      "parents": [
        "fd8ea97f64fb6d32cbfe35729b816a22dfa18224"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 10:23:15 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 10:23:15 2012 -0700"
      },
      "message": "Include a new heap summary line in the SIGQUIT output.\n\nLooks like this:\n\n  Heap: 87% free, 4MB/32MB; 6327 objects\n\nWhile I\u0027m here, fix another long-standing TODO to make PrettySize have the\nusual google3 behavior. (I took the specific thresholds from Chromium.)\n\nAlso distinguish between the more general \"Dump\" member functions and the\nspecific SIGQUIT-related ones by consistently calling the latter DumpForSigQuit.\n\nChange-Id: I76e783adc18dd089bac9b348f53dc9860a0fe4b9\n"
    },
    {
      "commit": "548250302e93570e2e65ac63b88bda7b39c8dc01",
      "tree": "8710a463542d4e9943c5e609f7fc874b7a729dbe",
      "parents": [
        "b4e331bd50dff797df2c9d00eb6bd6a3c3c01f58"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Apr 11 10:45:23 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Apr 11 12:05:33 2012 -0700"
      },
      "message": "Code cleanup, fix MicroTime.\n\nChange-Id: I1bd265a85bf036dde9393c7e6a7fe2dbc67dd509\n"
    },
    {
      "commit": "82914b6164fd0109531391975389e4f0ff6832c8",
      "tree": "822f3769c8aa27713dccaacfafbabd9b049ac655",
      "parents": [
        "34e069606d6f1698cd3c33b39e72b79ae27e1c7b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 15:56:29 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 15:56:29 2012 -0700"
      },
      "message": "Use PrintableString in oatdump.\n\nAnd enhance PrintableString to assume modified UTF-8, which is all we ever give\nit. \\u0000 is more readable than \\xc0\\x80 to most people.\n\nChange-Id: I45bd8d65694eda0ef4ef03abc40f41a76f07a671\n"
    },
    {
      "commit": "409d273a3a57158faaa520ff5f33508367f759f1",
      "tree": "6f57ebaf4c92669dcc60d95c8c28688d6041efb6",
      "parents": [
        "6a144338023bdc0ca6954fc71a1f9b4d94088ee4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 03 13:34:44 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 03 13:34:44 2012 -0700"
      },
      "message": "Be consistent about \"kilo\" versus \"kibi\".\n\nI\u0027m a binary man myself, but we\u0027ve mostly used decimal so far, and wider\nAndroid is mostly decimal, so...\n\nChange-Id: Ibef78f61176569e0023a7f43196a3969c7fe794b\n"
    },
    {
      "commit": "b08e8a3e32498ef3b03505917c83f28a284bd0a9",
      "tree": "8b08dd6952d112700bba4b1a46837129603728e0",
      "parents": [
        "2d7021776f10fe666ecd197713bcf88507851c37"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 02 10:51:41 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 02 10:51:41 2012 -0700"
      },
      "message": "Restrict Mac OS 10.5 devices to 1 dex2oat thread.\n\nAlso make extra sure we\u0027ve included the header file that tells us what Mac OS\nversion we\u0027re compiling for.\n\nChange-Id: Ie57f01a325217e638df4e9b90d94b27303149124\n"
    },
    {
      "commit": "d23f5206cf72ca3fb53ac3049649bb7d018232bf",
      "tree": "24005b3acfa8fb80a6e6d0403ecfe40ec2ceda2d",
      "parents": [
        "c1503430c715f9d71cf4297a186a9a3442f5b9ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 19:50:04 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 19:50:04 2012 -0700"
      },
      "message": "Another crack at implementing a usable GetTid() for Mac OS 10.5...\n\nChange-Id: Ic607bc99fa665e81bbbaea1ea0bd1b35f26196ba\n"
    },
    {
      "commit": "5d6d5dc456bc0066979e9593df13c5533347095d",
      "tree": "9cd7710d1c7b8a3eecab3d78c0fb25cb4f5f695f",
      "parents": [
        "68aefb06c449df0bd8a34f3491f7594ee3f9dd0b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 29 11:59:27 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 29 11:59:27 2012 -0700"
      },
      "message": "Try to work around Mac OS 10.5 lossage.\n\nUntested, since 10.5 is obsolete and the only 10.5 machines I have available\nare the build servers...\n\nChange-Id: Icbd7a052069e0664f0c2dfef3dd755b4435dda0c\n"
    },
    {
      "commit": "f1498437b0d6beb9f4f91980b98cbeb0b5c773ce",
      "tree": "99c89626bda53f5c4e6654a467f0494d582064e3",
      "parents": [
        "deaac40ea7e7d3754d917808fcc1aad52d8f52b7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 28 19:34:27 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 28 19:34:27 2012 -0700"
      },
      "message": "Clean up Mutex a little and add the missing pieces for Mac OS.\n\nThis -- as you\u0027d expect, given that we\u0027re fine on bionic and glibc --\ndidn\u0027t find any bugs. But it\u0027s another step towards completeness and\nlets me rule out Mac pthread_mutex_t weirdness as a potential cause of\nour Mac dex2oat crashes.\n\nChange-Id: If3f4aacf8dbc7c7b9fd6b8932bc01616ccf86b47\n"
    },
    {
      "commit": "7a967b3d4468ab56bf1b75ebd4d7bf9e6798761b",
      "tree": "b100ef49346ef43dc301951a3a416a1393eeac1a",
      "parents": [
        "0ce131582cc78d1fcd918620e7da992df93fdff7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 28 15:23:10 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 28 16:31:49 2012 -0700"
      },
      "message": "Warn if oat file does end with expected extension\n\n(cherry picked from commit 272df23ebb17297b53a60906304a35bc56eebdd9)\n\nChange-Id: If126ee29811546698f2a8f9bb62300c2a9391017\n"
    },
    {
      "commit": "22869a9026a08b544eca4cefd67386d347e30d2c",
      "tree": "814001ed308907e6562516c247658291cc805545",
      "parents": [
        "ab7b9dcbfc4264a0bc4889c3e463ff88a67f6a30"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 14:08:24 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 14:08:24 2012 -0700"
      },
      "message": "Warn if a thread attaches without a name and blow up if a thread detaches while running.\n\nAlso don\u0027t crash if a thread attaches without a name. Doing so is allowed, even\nif it\u0027s not a good idea.\n\nChange-Id: If5796af689e9221ce21f443023b0d793a8be15b0\n"
    },
    {
      "commit": "398f64b5805246765b699839b439e18c0dfbf2ee",
      "tree": "de3f86de82289b1734b12cdc7c4292f4aff16f55",
      "parents": [
        "ee0fa76b2e5d39ad36d1ff144b2d0270df81e606"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 18:05:48 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 18:05:48 2012 -0700"
      },
      "message": "Remove more lint, mostly C-style casts.\n\nChange-Id: Iaf1f23290e35ed48e5795fb20690953a9a834457\n"
    },
    {
      "commit": "b25c3f6a86dc634ce44fb2849385b49465caa84d",
      "tree": "f359c72d821d913f78b977d8dde0fc7023afb511",
      "parents": [
        "fc9e6fabed89d948fa8c0e9d673e430076712c60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 16:35:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 17:11:59 2012 -0700"
      },
      "message": "Fix cpplint\u0027s whitespace complaints.\n\nChange-Id: I11fd2db2badf7bd98e7866ca2155d8ef1e112408\n"
    },
    {
      "commit": "f8c11935a232138684219a0d5e3247c0b96bd664",
      "tree": "bcce2a96ef71353de7c5f704943f5bf1d5e2d81f",
      "parents": [
        "dfaf67fb5fc575874ee9f6471de35926458b6d8b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 23 19:53:59 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 23 19:53:59 2012 -0700"
      },
      "message": "Fix crashes when a resolution method is passed to PrettyMethod.\n\nFound by dump-oat-boot.\n\nChange-Id: Icf670e37663c9761f64a683ea22a7a9c4df68b97\n"
    },
    {
      "commit": "9058f2bf308871bd43c194c6a771587ecf79740d",
      "tree": "256f51b2af0977f65d0ab18de72fad16e8d850fe",
      "parents": [
        "634eb2eb14f87753519d0ef2c5f256e55888f378"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 22 18:06:48 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 22 18:06:48 2012 -0700"
      },
      "message": "Make our new NullPointerException detail messages more readable to Java programmers.\n\nTwo to-dos to-done.\n\nChange-Id: I0276dd8b9c062e8e9523cb51defed2c3eda77e2b\n"
    },
    {
      "commit": "1bac54ffa933fbe9b92b62437577f2f4583eff1a",
      "tree": "a27134343ed3cd45a286c3a68b9a4469e70f13e7",
      "parents": [
        "96970cdab3e28511322ce37fa578f6eff8931d72"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 12:48:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 12:48:31 2012 -0700"
      },
      "message": "Fix all our unused parameter warnings so we let GCC report them.\n\nThere were a couple of genuine bugs here (fixed), plus there\u0027s a missing\nfeature in trace.cc that I\u0027ve just added a TODO for.\n\nAlso note that I haven\u0027t touched the compilers; this warning is still\nexplicitly disabled for that code. I\u0027ll do that when there\u0027s less going\non in those directories.\n\nChange-Id: Ic3570bf82411a07c7530bfaf1995ac995b9fc00f\n"
    },
    {
      "commit": "0512f02dd6623c0870c11fbf3274d7462f732136",
      "tree": "c90b32c42b285d3cea45272601b5cf007b4ea264",
      "parents": [
        "88c5c355fc3d881f905564911d746b2313d5fc89"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 22:10:52 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 22:10:52 2012 -0700"
      },
      "message": "Remove anonymous namespaces.\n\nNo one likes them and we\u0027re pretty inconsistent at using them. We\u0027re\nmuch better with \u0027static\u0027.\n\nChange-Id: I65eeffd0fb60633edca30923af0caedb06a0105d\n"
    },
    {
      "commit": "4ae722af0d45b71a29407fe9939117b22c6dd090",
      "tree": "865da481fea9fb219d7a085cda91b0dfa7ed4653",
      "parents": [
        "e0bb2f7374188cc6f63ea9caae606eac8957ff19"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 11:08:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 11:08:51 2012 -0700"
      },
      "message": "Mac OS only gained pthread_setname_np in 10.6...\n\n...and our build servers apparently run 10.5!\n\nChange-Id: I69c2f2212e616d83c043bb24e683b5437bceea54\n"
    },
    {
      "commit": "7c6a61eeac2a8a0c744a8d1f21faf357474a0f23",
      "tree": "ad99211b225711d2e89ad63e56312e3035ce1d45",
      "parents": [
        "b5d09b2f87202bc132ac3991d4b6d71f4f6d9264"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 12 18:01:41 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 12 18:01:41 2012 -0700"
      },
      "message": "Fix SetThreadName for Mac OS.\n\nChange-Id: Id05585c097af0317aff85253b3f935f87362d2ff\n"
    },
    {
      "commit": "2435a5751431152aaeaa2faaa86b2a30d3eecfe3",
      "tree": "ec5c4a2140364e6342aad6c02606dd8885d0d8be",
      "parents": [
        "dd6aa87f0484c6097df0657f242eeef9ac9ff9e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 16:07:41 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 16:07:41 2012 -0800"
      },
      "message": "Support for single-stepping by line.\n\nPlus various other test fixes.\n\nChange-Id: I2ef923e56a16a14380eda150685b5e3db944616e\n"
    },
    {
      "commit": "c308a5d8c1993ff51be355531548e91409bdbd82",
      "tree": "0d0e88307b368d310be077363702c7b28b0a20f4",
      "parents": [
        "b6744c5a8a619501d89c0a137b61ca5b4ec93411"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 16 17:12:06 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 16 17:39:56 2012 -0800"
      },
      "message": "Fix a bug in Dbg::GetClassDescriptor.\n\nThe callers were incorrectly assuming we always returned a descriptor, which\nisn\u0027t true when handed bad input.\n\nChange-Id: I5509d18d8c234d97fa5ec2e0a01d4cdb44acfc55\n"
    },
    {
      "commit": "91bf6cd47174f5c17265320f7a350722720390a5",
      "tree": "f4823c09793162e00b2fdd43990e12f2837d7562",
      "parents": [
        "f05d0dd011d3dbcf78bf35d0771f67371f5f6b58"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 17:27:48 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 17:27:48 2012 -0800"
      },
      "message": "More debugger support.\n\nThis wires up method-entry events and fixes a bug in exception events.\n\nChange-Id: Ia7c46786a8073434fbb4546615072622f301ef84\n"
    },
    {
      "commit": "f1a5adc87760f938b01df26d906295063546b259",
      "tree": "99f9a917b667cdaab69fa7df0978e4310eb6c207",
      "parents": [
        "5b1f162d9cbec1c6b2863bd220bdaecdcb18b139"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 10 18:09:35 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 10 18:09:35 2012 -0800"
      },
      "message": "Reduce StringPiece usage a bit.\n\nVarious easy cases, in case we want to move towards making the StringPiece\nconstructors explicit.\n\nChange-Id: I49e5efc5b787f847ab4cb12d66d1d16aed03fa67\n"
    },
    {
      "commit": "48436bbff87aae61bba20029b4382fa41ce787fe",
      "tree": "f05982ea479f43a86c81ab715341238fa56a4d42",
      "parents": [
        "06e3ad4a651c2c58dba5e865cd06d2f98462bf1d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 15:23:28 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 15:52:48 2012 -0800"
      },
      "message": "Split should have a matching Join, if only for convenient debugging output.\n\nChange-Id: I68275a6410af706875f53540db4ef0242f414470\n"
    },
    {
      "commit": "06e3ad4a651c2c58dba5e865cd06d2f98462bf1d",
      "tree": "8110ea5a4880e0a6b2c39ce26dab934af29a91c0",
      "parents": [
        "bd411021057416e56a1544b98831b92faf66a1a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 14:51:57 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 15:09:59 2012 -0800"
      },
      "message": "Turn on some basic tsan annotations.\n\nThe most useful bit here is that tsan now knows the names of our threads.\n\nChange-Id: I8eef8f31e954ffc373555b392d6d9678d76ead34\n"
    },
    {
      "commit": "a56fcd60596ae8694da21fccde5c56832e437c56",
      "tree": "522352376c179e452706bacad29c00f6fc5acb7f",
      "parents": [
        "b12552a95d68b9e4a567103190074ae47b6a61dc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Feb 04 21:23:01 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Feb 04 22:48:30 2012 -0800"
      },
      "message": "Honor ANDROID_ROOT and ANDROID_DATA\n\nChange-Id: I8e43093830a734694bbf7308d08dd18527302270\n"
    },
    {
      "commit": "2faa5f1271587cda765f26bcf2951065300a01ff",
      "tree": "c59557857c36741cfcd1b6bf5ae039886a8ad6e7",
      "parents": [
        "0850c69c88d49efd4075288511b70d6c032bd0c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 30 14:42:07 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 30 16:46:29 2012 -0800"
      },
      "message": "Fix copyright headers.\n\nChange-Id: I5b7bc76a370238d810d78522bd5531600746700f\n"
    }
  ],
  "next": "d8c00d04361366a0156943bd98fee57392743e80"
}
