)]}'
{
  "log": [
    {
      "commit": "e832e64a7e82d7f72aedbd7d798fb929d458ee8f",
      "tree": "307c7d13edf397b2b7b5491590d5404aa099be00",
      "parents": [
        "a477bbb62ba197815d840d07708526a2bb9c8b4d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 10 11:08:06 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 17 17:43:40 2014 -0800"
      },
      "message": "Change 64 bit ArtMethod fields to be pointer sized\n\nChanged the 64 bit entrypoint and gc map fields in ArtMethod to be\npointer sized. This saves a large amount of memory on 32 bit systems.\nReduces ArtMethod size by 16 bytes on 32 bit.\n\nTotal number of ArtMethod on low memory mako: 169957\nImage size: 49203 methods -\u003e 787248 image size reduction.\nZygote space size: 1070 methods -\u003e 17120 size reduction.\nApp methods: ~120k -\u003e 2 MB savings.\n\nSavings per app on low memory mako: 125K+ per app\n(less active apps -\u003e more image methods per app).\n\nSavings depend on how often the shared methods are on dirty pages vs\nshared.\n\nTODO in another CL, delete gc map field from ArtMethod since we\nshould be able to get it from the Oat method header.\n\nBug: 17643507\n\nChange-Id: Ie9508f05907a9f693882d4d32a564460bf273ee8\n"
    },
    {
      "commit": "a477bbb62ba197815d840d07708526a2bb9c8b4d",
      "tree": "f82b4ea8e95cd357a9d88194f798fd8112458f2a",
      "parents": [
        "63b803af4e6d715c0b0d19a2dbc382fa3dbbc631"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 14 18:05:24 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 14 18:07:45 2014 +0000"
      },
      "message": "Bump oat version.\n\nNeed to rebuild images after commit\n  bfa3ed0ad988e1da13626ddbaf6dcae0c58ea79e\n\nBug: 18211592\nChange-Id: I10c7353ba0fc216ff73c3ff16480c7fe9da13f2d\n"
    },
    {
      "commit": "63b803af4e6d715c0b0d19a2dbc382fa3dbbc631",
      "tree": "6a3e5382ae65ef9e4f6ddaa1f8fa183de39dd7d5",
      "parents": [
        "8073ba11c62ea8aeb8322b18e730005733c06e70",
        "bfa3ed0ad988e1da13626ddbaf6dcae0c58ea79e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 14 10:06:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 14 10:06:11 2014 +0000"
      },
      "message": "Merge \"Keep original order of fields in Class.\" into lmp-mr1-dev"
    },
    {
      "commit": "8073ba11c62ea8aeb8322b18e730005733c06e70",
      "tree": "f21c94614e71afb36bd160ea7b9f2382e5d2fdc7",
      "parents": [
        "ff1031666f840e0a031fd141a8d733ad90a150ce"
      ],
      "author": {
        "name": "Pavel Vyssotski",
        "email": "pavel.n.vyssotski@intel.com",
        "time": "Thu Nov 13 18:25:23 2014 +0600"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 13 15:47:22 2014 -0800"
      },
      "message": "ART: Implicit null check should break def tracking\n\nImplicit null check can provoke exception that needs to be sure all VRs are saved on stack.\nThe fix is to reset the def tracking system at the moment of adding an implicit null check.\n\n  b/18368901\n\nSigned-off-by: Pavel Vyssotski \u003cpavel.n.vyssotski@intel.com\u003e\n\n(cherry picked from commit 9c3617a8f7413bb1181e72bc1f7086d986a86e18)\n\nChange-Id: If7d705b8417cf29076da9ce19ec54d698f3cb0d5\n"
    },
    {
      "commit": "ff1031666f840e0a031fd141a8d733ad90a150ce",
      "tree": "11a1b90c42dcf10e72dc5577284ab910331a3db3",
      "parents": [
        "7bcea103af7cd130254835a30b45d5277a478074",
        "26318f722958ac1cba6a812026a1377f37c54941"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 13 18:32:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 13 18:32:19 2014 +0000"
      },
      "message": "Merge \"ART: Compiled-classes list for compiler-driver\" into lmp-mr1-dev"
    },
    {
      "commit": "bfa3ed0ad988e1da13626ddbaf6dcae0c58ea79e",
      "tree": "94a5efc09745b0dad86c9992869e84d48ff47a21",
      "parents": [
        "7bcea103af7cd130254835a30b45d5277a478074"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 10 18:32:59 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 13 18:05:23 2014 +0000"
      },
      "message": "Keep original order of fields in Class.\n\nThe fields of a class are ordered alphabetically in the dex\nfile. Keep the same order in the field arrays so that we can\ndo binary search lookups by name. Those lookups will be\nimplemented in a subsequent change in libcore/.\n\nBug: 18211592\nChange-Id: I8f979de62ffe37d1c7d5c721717d2f3501e7c9e6\n"
    },
    {
      "commit": "7bcea103af7cd130254835a30b45d5277a478074",
      "tree": "edeed15a2a9e240244cc1c1a4060a3ff06c56923",
      "parents": [
        "364a7c603dc4f5a38133434e98cc647d405e12be"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 12 15:41:57 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 12 15:41:57 2014 +0000"
      },
      "message": "Fix bad OOM check in Thread::CreatePeer().\n\nBug: 18342629\nChange-Id: Ic070ed6b72d11b2e1e2a89904bd9659b2146f863\n"
    },
    {
      "commit": "364a7c603dc4f5a38133434e98cc647d405e12be",
      "tree": "f3cf59b407a8f052e40d17db32f09c1236e979cb",
      "parents": [
        "9f2a22593119a17123cec180ff75cb6c02fb1ced",
        "c38276177aeeda4326a54f1121790c154df04300"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 12 12:48:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 12 12:48:27 2014 +0000"
      },
      "message": "Merge \"Prune image cache if the boot marker is still in place.\" into lmp-mr1-dev"
    },
    {
      "commit": "9f2a22593119a17123cec180ff75cb6c02fb1ced",
      "tree": "8c09008bba257a4afa70f1a11feac9b4aea77fa0",
      "parents": [
        "18e8d6ca4c77848d4f9342bb74080a12a21d9941",
        "17b6b06c7d08903587f0f6703847b73ca53f0a85"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 12 00:13:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 12 00:13:47 2014 +0000"
      },
      "message": "Merge \"Reduce suspend check threshold\" into lmp-mr1-dev"
    },
    {
      "commit": "26318f722958ac1cba6a812026a1377f37c54941",
      "tree": "54bcf85f5da0c19b2c8772cadd5043ec886a46f7",
      "parents": [
        "d25b68dad56c86d56c2d09f19046cf300c1c6de2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 11 13:28:29 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 11 13:43:46 2014 -0800"
      },
      "message": "ART: Compiled-classes list for compiler-driver\n\nSimilar to the image-classes list, introduce a list of class names\nthat are to be compiled when creating a boot image. This defaults\nto all classes.\n\nBug: 18336591\nChange-Id: I95f69afdb500a9defb6795803d4040bbe67c5a01\n"
    },
    {
      "commit": "18e8d6ca4c77848d4f9342bb74080a12a21d9941",
      "tree": "954310a67550e4902edea63c103d27c4f30c165c",
      "parents": [
        "787adb7aa2ae953fa41e8ad5bdfc3409f1c61f60",
        "a7ade888ab99b1453571d14c41d4a0322c400fcd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 11 17:39:06 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 11 17:39:07 2014 +0000"
      },
      "message": "Merge \"Add null check for thread name creation\" into lmp-mr1-dev"
    },
    {
      "commit": "c38276177aeeda4326a54f1121790c154df04300",
      "tree": "50386482bc28beabe8209d430921fb5f52c74b41",
      "parents": [
        "787adb7aa2ae953fa41e8ad5bdfc3409f1c61f60"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Nov 07 17:46:28 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Nov 11 10:44:54 2014 +0000"
      },
      "message": "Prune image cache if the boot marker is still in place.\n\nWe place a marker in each isa cache dir and have the framework\ndelete it for us.\n\nThis seems like a convenient place to do it given all the other\ndalvik-cache related code that hooks in here, and also because\nthis is the first point where we try to access the cache.\n\nTODO: Add a timeout to the (higher level) zygote code to correctly\nkill the surviving zygote if one of them never comes up.\n\nbug: 18280671\n\nChange-Id: I4d964adc826e62c29ab73a098474a116f9818366\n"
    },
    {
      "commit": "a7ade888ab99b1453571d14c41d4a0322c400fcd",
      "tree": "954310a67550e4902edea63c103d27c4f30c165c",
      "parents": [
        "200b82ba39bd1f4a50cbff8e1b5dca4f5843053f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 10 16:58:19 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 10 17:44:38 2014 -0800"
      },
      "message": "Add null check for thread name creation\n\nPreviously we didn\u0027t check for null which could result in check jni\nfailures if we tried to throw another OOM in the next allocation.\n\nBug: 18297817\nChange-Id: I459b1de7760a4009e410fdbdcacdb748d13fbc1d\n"
    },
    {
      "commit": "787adb7aa2ae953fa41e8ad5bdfc3409f1c61f60",
      "tree": "a873f343d7102b6adc760492846bd2bcf543fbca",
      "parents": [
        "92d5d32c138378d02af18681fbfee88200e8de73",
        "d00804c6b7ebde7ffdd06037e93291efe867744d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 11 00:04:21 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 11 00:04:21 2014 +0000"
      },
      "message": "am d00804c6: ART: Prune links in the dalvik cache\n\n* commit \u0027d00804c6b7ebde7ffdd06037e93291efe867744d\u0027:\n  ART: Prune links in the dalvik cache\n"
    },
    {
      "commit": "92d5d32c138378d02af18681fbfee88200e8de73",
      "tree": "a873f343d7102b6adc760492846bd2bcf543fbca",
      "parents": [
        "bb1464bc2f57dc030800b1c070ba8abfa559e3ef",
        "e225eab4a17dd8db7f9d8412e4edc04e330462bc"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Nov 11 00:04:20 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 11 00:04:20 2014 +0000"
      },
      "message": "am e225eab4: art: Fix classlinker and nopatchoat test for PIC case\n\n* commit \u0027e225eab4a17dd8db7f9d8412e4edc04e330462bc\u0027:\n  art: Fix classlinker and nopatchoat test for PIC case\n"
    },
    {
      "commit": "bb1464bc2f57dc030800b1c070ba8abfa559e3ef",
      "tree": "a873f343d7102b6adc760492846bd2bcf543fbca",
      "parents": [
        "fb6478f302ef30a3bfc4367b896e99acd74d38b2",
        "48447025389cd67605041a28d4ded1528381bc4e"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Nov 11 00:04:19 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 11 00:04:19 2014 +0000"
      },
      "message": "am 48447025: ART: Add support for patching and loading OAT files compiled with PIC\n\n* commit \u002748447025389cd67605041a28d4ded1528381bc4e\u0027:\n  ART: Add support for patching and loading OAT files compiled with PIC\n"
    },
    {
      "commit": "fb6478f302ef30a3bfc4367b896e99acd74d38b2",
      "tree": "a873f343d7102b6adc760492846bd2bcf543fbca",
      "parents": [
        "1b35c8e431807fcfe0f8ed949db9e5f5166c0acd",
        "998ee7d0f62a1ee7efaaad49e728d19c38b4c9c3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 11 00:04:18 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 11 00:04:18 2014 +0000"
      },
      "message": "am 998ee7d0: (-s ours) ART: Add pic flag to oat header store\n\n* commit \u0027998ee7d0f62a1ee7efaaad49e728d19c38b4c9c3\u0027:\n  ART: Add pic flag to oat header store\n"
    },
    {
      "commit": "1b35c8e431807fcfe0f8ed949db9e5f5166c0acd",
      "tree": "a873f343d7102b6adc760492846bd2bcf543fbca",
      "parents": [
        "200b82ba39bd1f4a50cbff8e1b5dca4f5843053f",
        "300590bd7291251d9ac9aa762785a517d7f9f919"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Nov 10 23:52:34 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 10 23:52:34 2014 +0000"
      },
      "message": "am 300590bd: dex2oat: Add a --compile-pic option\n\n* commit \u0027300590bd7291251d9ac9aa762785a517d7f9f919\u0027:\n  dex2oat: Add a --compile-pic option\n"
    },
    {
      "commit": "d00804c6b7ebde7ffdd06037e93291efe867744d",
      "tree": "317930687c6413bbd51b6c36655a3495a42e8b67",
      "parents": [
        "e225eab4a17dd8db7f9d8412e4edc04e330462bc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Nov 09 18:14:30 2014 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 10 13:19:13 2014 -0800"
      },
      "message": "ART: Prune links in the dalvik cache\n\nWhen pruning the isa-specific directory of the cache, also remove\nsymbolic links.\n\nBug: 18035729\nBug: 18153744\n\n(cherry picked from commit de5ed50940452f06b00514af0667972542ee5d59)\n\nChange-Id: I84dbf578577b080785bbb81b660e4148bb512410\n"
    },
    {
      "commit": "e225eab4a17dd8db7f9d8412e4edc04e330462bc",
      "tree": "6522bb6c3caa26b5e864b7364aa86c4f97d15183",
      "parents": [
        "48447025389cd67605041a28d4ded1528381bc4e"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 29 19:45:42 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 10 12:49:53 2014 -0800"
      },
      "message": "art: Fix classlinker and nopatchoat test for PIC case\n\nClassLinker should not be checking oat data begin and the patch delta\nas part of the checksum verification (when PIC is enabled).\n\nAlso update nopatchoat test since it needs to be parametric on whether\nPIC is used.\n\n(cherry-picked from AOSP master\n230faa7c44ec1986d5fa93d205eb23cb8024e333)\n\nBug: 18035729\n\n(cherry picked from commit 5ef2990c2933152021633e6697d5325103649499)\n\nChange-Id: Ia0a601c657b813767114095c3b7577421e03bde4\n"
    },
    {
      "commit": "48447025389cd67605041a28d4ded1528381bc4e",
      "tree": "6805d28d859fa435e4bc439c03a1d1c3209a1101",
      "parents": [
        "998ee7d0f62a1ee7efaaad49e728d19c38b4c9c3"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 22 11:37:02 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 10 12:49:40 2014 -0800"
      },
      "message": "ART: Add support for patching and loading OAT files compiled with PIC\n\n* Images (.art) compiled with pic now have a new field added.\n* isDexOptNeeded will now skip patch-ing for apps compiled PIC\n* First-boot patching now only copies boot.art, boot.oat is linked\n\nAs a result, all system preopted dex files (with --compile-pic) no\nlonger take up any space in /data/dalvik-cache/\u003cisa\u003e.\n\n(cherry-picked from AOSP master\n46774767fcf7780d1455e755729198648d08742e)\n\nConflicts (from aosp master):\n\tcompiler/image_test.cc\n\tcompiler/image_writer.cc\n\tcompiler/image_writer.h\n\tcompiler/oat_test.cc\n\tdex2oat/dex2oat.cc\n\toatdump/oatdump.cc\n\truntime/elf_file.cc\n\truntime/elf_file.h\n\truntime/elf_file_impl.h\n\truntime/oat_file.cc\n\truntime/oat_file.h\n\nBug: 18035729\n\n(cherry picked from commit 90ca5c0301651101de0e363842e5d08ae65233f7)\n\nChange-Id: I8d99f95cc3d1fa221fc530ebb1fcc4b3263c183d\n"
    },
    {
      "commit": "998ee7d0f62a1ee7efaaad49e728d19c38b4c9c3",
      "tree": "c2022eb9aa22fd39f922abe3563ab34b01ec0a99",
      "parents": [
        "300590bd7291251d9ac9aa762785a517d7f9f919"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 23 11:37:40 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 10 12:48:32 2014 -0800"
      },
      "message": "ART: Add pic flag to oat header store\n\nAdd the compile-time PIC flag to the oat-header key-value store.\nIgnore image offset and patch delta when loading PIC oat files.\n\n(cherry-picked from AOSP master\n7ba649636c4475c3992fa15a57acd2546d69ff38)\n\nBug: 18035729\nSigned-off-by: Igor Murashkin \u003ciam@google.com\u003e\n\n(cherry picked from commit d7392faea80acb5d73a027bb384e3222bc2c2e43)\n\nChange-Id: If5f6cf13f4c7ecb6038415e68fbb0ae9cee5ec60\n"
    },
    {
      "commit": "300590bd7291251d9ac9aa762785a517d7f9f919",
      "tree": "de36e237c2f16e15504f7aebbcffdf8293733cb1",
      "parents": [
        "f0cb1eb5b2020c3c527aca3ff458801b90b5e06c"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 16 18:36:16 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 10 12:44:47 2014 -0800"
      },
      "message": "dex2oat: Add a --compile-pic option\n\n(cherry-picked from AOSP master\n83c5612e69fa05610baf4f4d237fe0995a79cde5)\n\nBug: 18035729\n\n(cherry picked from commit 643b5df2b065ccf5bb19a183573da691e9d0311f)\n\nChange-Id: I14edee7c7cb996bc388d89b4c5274db2caf91004\n"
    },
    {
      "commit": "200b82ba39bd1f4a50cbff8e1b5dca4f5843053f",
      "tree": "a873f343d7102b6adc760492846bd2bcf543fbca",
      "parents": [
        "cacde61b7134a6311702697626caea53316bd76a",
        "de5ed50940452f06b00514af0667972542ee5d59"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 18:27:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 10 18:27:19 2014 +0000"
      },
      "message": "Merge \"ART: Prune links in the dalvik cache\" into lmp-mr1-dev"
    },
    {
      "commit": "de5ed50940452f06b00514af0667972542ee5d59",
      "tree": "b2d269bd9f38573e0771cbf3874bf0d5af08d552",
      "parents": [
        "d25b68dad56c86d56c2d09f19046cf300c1c6de2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Nov 09 18:14:30 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 10:18:15 2014 -0800"
      },
      "message": "ART: Prune links in the dalvik cache\n\nWhen pruning the isa-specific directory of the cache, also remove\nsymbolic links.\n\nBug: 18035729\nBug: 18153744\nChange-Id: I40347ee77e95ff9fc8e6107ba661338f5c7b1db9\n"
    },
    {
      "commit": "cacde61b7134a6311702697626caea53316bd76a",
      "tree": "fa04ebd62b0c6737857816a65d2e8558ef5ba2ec",
      "parents": [
        "d25b68dad56c86d56c2d09f19046cf300c1c6de2",
        "f2d556401ec1d82fec31c0b29d712de18d838282"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 10 18:01:04 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 10 18:01:04 2014 +0000"
      },
      "message": "Merge \"Delete unused imtable field\" into lmp-mr1-dev"
    },
    {
      "commit": "f2d556401ec1d82fec31c0b29d712de18d838282",
      "tree": "9b4e49d4c7a2be057c7eadae2adb274c861fcf8e",
      "parents": [
        "90534189da43d03b45b3a214a86f8d6e54c6aec1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 07 18:38:47 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 10 09:48:19 2014 -0800"
      },
      "message": "Delete unused imtable field\n\nBug: 17643507\n\nChange-Id: I1fc7ca2d3bdf1810bcc3b46f867b68a4a6d28ed3\n"
    },
    {
      "commit": "d25b68dad56c86d56c2d09f19046cf300c1c6de2",
      "tree": "e09007bdabfc92e7764ecc060b36788d85382322",
      "parents": [
        "90534189da43d03b45b3a214a86f8d6e54c6aec1",
        "f08663b47ccd3aa083972d62937a328ad80d080e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Nov 09 20:13:01 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Nov 09 20:13:02 2014 +0000"
      },
      "message": "Merge \"ART: Fix possible soft+hard failure in verifier\" into lmp-mr1-dev"
    },
    {
      "commit": "f08663b47ccd3aa083972d62937a328ad80d080e",
      "tree": "99a84ecc18dcd0737cdac8a7f7d36a69bede6e52",
      "parents": [
        "1ec2f1dc2c16559ae07d1b037961a7e295255d55"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 20 22:25:29 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 07 18:02:47 2014 -0800"
      },
      "message": "ART: Fix possible soft+hard failure in verifier\n\nIt was possible to generate a hard failure and a subsequent soft\nfailure, which violates a CHECKed invariant.\n\nRefactor code slightly to share common code.\n\nBug: 17625962\nChange-Id: Iccd9e30f1087363b19b2faedc10243a2290202c0\n"
    },
    {
      "commit": "17b6b06c7d08903587f0f6703847b73ca53f0a85",
      "tree": "9c7ee114caace30cd6ec24889c369694a13d45b5",
      "parents": [
        "90534189da43d03b45b3a214a86f8d6e54c6aec1"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 07 14:52:04 2014 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 07 15:17:48 2014 -0800"
      },
      "message": "Reduce suspend check threshold\n\nThe Quick compiler uses a dedicated count-down register (r4)\nto reduce the cost of checking for suspend requests.  In order\nto reduce suspend latency, this CL reduces the countdown value\nfrom 1000 to 96.\n\nSee bug 17953517 for more discussion.\n\nChange-Id: I88b92016b869f57be83e9bded88dbe42e2ee760d\n"
    },
    {
      "commit": "90534189da43d03b45b3a214a86f8d6e54c6aec1",
      "tree": "07f3b44c4c696e735be5e8ebabb088606bf73bfb",
      "parents": [
        "adc0abde5ca2398354a5fb399b84b0ff1ad4477d",
        "564ff985184737977aa26c485d0c1a413e530705"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 07 19:27:45 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 07 19:27:46 2014 +0000"
      },
      "message": "Merge \"Add hash map, reduce excessive hashing\" into lmp-mr1-dev"
    },
    {
      "commit": "564ff985184737977aa26c485d0c1a413e530705",
      "tree": "2acf22ee8689519fda588fee340e797c9922899a",
      "parents": [
        "9ee0f776095c0a93f388a29f2c37689892baa2df"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 06 16:35:45 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 07 11:01:48 2014 -0800"
      },
      "message": "Add hash map, reduce excessive hashing\n\nChanged the class def index to use a HashMap instead of unordered_map\nso that we can use FindWithHash to reduce how often we need to compute\nhashes.\n\nFixed a bug in ClassLinker::UpdateClass where we didn\u0027t properly\nhandle classes with the same descriptor but different class loaders.\nIntroduced by previous CL.\n\nBefore (fb launch):\n1.74% art::ComputeModifiedUtf8Hash(char const*)\n\nAfter:\n0.95% art::ComputeModifiedUtf8Hash(char const*)\n\nBug: 18054905\nBug: 16828525\n\nChange-Id: Iba2ee37c9837289e0ea187800ba4af322225a994\n"
    },
    {
      "commit": "adc0abde5ca2398354a5fb399b84b0ff1ad4477d",
      "tree": "24b136eb9b0e8f95e693d9c4d5e83a875974b941",
      "parents": [
        "9ee0f776095c0a93f388a29f2c37689892baa2df",
        "1bd326a5e2aaff06a5bcae9cb2c42a4e8de31401"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Nov 07 12:45:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 07 12:45:29 2014 +0000"
      },
      "message": "Merge \"Fix thread priorities for unstarted threads.\" into lmp-mr1-dev"
    },
    {
      "commit": "9ee0f776095c0a93f388a29f2c37689892baa2df",
      "tree": "04ebb827502c894428bbf9103ed6d2bdca1977b2",
      "parents": [
        "8c140f34be53144e2cc83f1d2918497c562772df"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 26 14:32:37 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 07 02:19:15 2014 +0000"
      },
      "message": "Optimize get/set reflection performance\n\nSpeedups mostly from reducing how often access checks are needed,\nand adding more inlining, and adding templates.\n\nField_getInt from ~850ns -\u003e 350ns.\nField_setInt from ~900ns -\u003e 370ns.\n\nBug: 14063288\nChange-Id: I2441581ff3478c6ae43b6aa49939ff3f07555ec8\n(cherry picked from commit ffc788cb7b5b9f53734d7bb8af2d5e45d885546b)\n"
    },
    {
      "commit": "8c140f34be53144e2cc83f1d2918497c562772df",
      "tree": "cf2fe0d6c4a3a43972f164c37e7c0d8562ba7ae0",
      "parents": [
        "911851d675f7f7780e3a06efdff410e46ddd5ab9",
        "f0cb1eb5b2020c3c527aca3ff458801b90b5e06c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 07 00:05:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 07 00:05:49 2014 +0000"
      },
      "message": "am f0cb1eb5: ART: Missing EndTiming()s in dex2oat\n\n* commit \u0027f0cb1eb5b2020c3c527aca3ff458801b90b5e06c\u0027:\n  ART: Missing EndTiming()s in dex2oat\n"
    },
    {
      "commit": "911851d675f7f7780e3a06efdff410e46ddd5ab9",
      "tree": "4485760c41b4131cc7a0ffbd7fd530b3014c3f39",
      "parents": [
        "1d0611c7e6721bd9115d652da74d2584ff3f192b",
        "e05d1d5fd86867afc7513b1c546375dba11eee50"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 07 00:03:34 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 07 00:03:34 2014 +0000"
      },
      "message": "Merge \"Add hash set\" into lmp-mr1-dev"
    },
    {
      "commit": "e05d1d5fd86867afc7513b1c546375dba11eee50",
      "tree": "0c6a712324b666e74daa4f5eb91074ccb36e71ce",
      "parents": [
        "471ee4410de01d2960e78d56a11ae2cc32f5e7bd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 03 11:41:47 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 06 15:29:13 2014 -0800"
      },
      "message": "Add hash set\n\nMore memory efficient than libcxx since we do not box the values.\n\nChange intern table to use new hash set. Clean up intern table by\nremoving const casts and deleting unnecessary code.\n\nChanged the class linker to use a hash set, also added a pre-zygote\nclass table.\n\n5 samples of:\nadb shell stop \u0026\u0026 adb shell start \u0026\u0026 sleep 60 \u0026\u0026 adb shell dumpsys meminfo\nBefore:\n165929 kB: Native\n175859 kB: Native\n168434 kB: Native\n166559 kB: Native\n169958 kB: Native\n\nAfter:\n160972 kB: Native\n159439 kB: Native\n157204 kB: Native\n165093 kB: Native\n163039 kB: Native\n\nTODO: Add HashTable which is implemented by using a HashSet.\nTODO: Use for DexFile::find_class_def_misses_.\nTODO: Investigate using mem maps instead of native heap.\n\nBug: 17808975\n\nChange-Id: I93e376cf6eb9628cf52f4aefdadb6157acfb799a\n"
    },
    {
      "commit": "f0cb1eb5b2020c3c527aca3ff458801b90b5e06c",
      "tree": "5d50dcecd27505997e5e4e53e9ad58fce8baa94f",
      "parents": [
        "64d79730c33777a62e108942909773e5e782ece3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 06 11:23:56 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 06 21:52:00 2014 +0000"
      },
      "message": "ART: Missing EndTiming()s in dex2oat\n\nIn the failure case, make sure we do an EndTiming() to not abort\nbecause of Start-End mismatch.\n\nBug: 18273355\nChange-Id: I42e68dd337dfe32c3b90511a04bc8f12114b9484"
    },
    {
      "commit": "1bd326a5e2aaff06a5bcae9cb2c42a4e8de31401",
      "tree": "14348760835c367931612e1bc38f4b15ba4db787",
      "parents": [
        "1d0611c7e6721bd9115d652da74d2584ff3f192b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Oct 07 12:51:26 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 06 12:14:18 2014 +0000"
      },
      "message": "Fix thread priorities for unstarted threads.\n\nCalls to Thread.setPriority for unstarted threads now behave\nsimilar to dalvik. Note that there\u0027s still some inconsistent\nbehaviour carried over from dalvik.\n\n- high priority threads from bg_non_interactive processes are\n  not always moved to the SP_FOREGROUND cgroup.\n- we do not attempt to adjust the cgroup of a native thread\n  that\u0027s attaching.\n\nNote that on android, the system_server will change the\ncgroups for all running threads in a process when it moves\ninto the foreground and background. It\u0027s by design that\nthreads in a background process can request to be moved\nto the foreground by setting a higher priority.\n\nbug: 17893086\n\nChange-Id: I1662982b1c7b3ac509698e2e12c9768d082c8053\n"
    },
    {
      "commit": "1d0611c7e6721bd9115d652da74d2584ff3f192b",
      "tree": "2d2b1137a23fbff8bd51487956c6c3c3d287bdda",
      "parents": [
        "471ee4410de01d2960e78d56a11ae2cc32f5e7bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 31 18:12:30 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 14:44:14 2014 -0800"
      },
      "message": "ART: Add miranda checking\n\nAdd a test for resolution of miranda methods across dex-files. See\nCL 112688 and b/18193682 for the code change.\n\nFix the test script to support no-verify again.\n\nWeaken the dex cache check to a check whether the found method is a\nmiranda method. This will penalize miranda methods, as they will\nalways have to be resolved by name, but does not require the multi-step\nload of the method\u0027s dex cache.\n\nBug: 18193682\n\n(cherry picked from commit 2b0fa5ba4a8f07ee243452003bf93418d30e9448)\n\nChange-Id: I1dae2a9ec0985dc8625acd7dd5686a5d3cdc8888\n"
    },
    {
      "commit": "471ee4410de01d2960e78d56a11ae2cc32f5e7bd",
      "tree": "0dac34e3714065f8d8d663a7829593ec3c5995ca",
      "parents": [
        "ac3f1a5f8882428ddbef78eb51ab7016d6a412d0",
        "d2bee3dffa2f552512f47bca605ed857e3ae30ea"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 03 19:18:42 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 03 19:18:43 2014 +0000"
      },
      "message": "Merge \"Check null this pointer for direct methods in FindMethodFast.\" into lmp-mr1-dev"
    },
    {
      "commit": "d2bee3dffa2f552512f47bca605ed857e3ae30ea",
      "tree": "5f851ec472f7de8a3d1e708aea77ad2318e36126",
      "parents": [
        "22c84690dba1c02b4f9fdc3774a85f89d2208fa4"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 29 17:24:25 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 03 10:57:35 2014 -0800"
      },
      "message": "Check null this pointer for direct methods in FindMethodFast.\n\nAlso adds regression test 122-secondarydex.\n\nBug: 18150997\nChange-Id: If3ddc67b84ccbf3b47c78854178c0a24952c5824\n"
    },
    {
      "commit": "ac3f1a5f8882428ddbef78eb51ab7016d6a412d0",
      "tree": "b803da8dba966dcd6f2e0a1557197193ac3aa04e",
      "parents": [
        "22c84690dba1c02b4f9fdc3774a85f89d2208fa4",
        "b6e292bf7eac9d73c6b79b1e9b7b87beb02436c9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 03 18:07:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 03 18:07:18 2014 +0000"
      },
      "message": "Merge \"Add image strings to intern table\" into lmp-mr1-dev"
    },
    {
      "commit": "b6e292bf7eac9d73c6b79b1e9b7b87beb02436c9",
      "tree": "b6f56d5b09a304413e5787aacf622541deb4372b",
      "parents": [
        "372ad2e767770d084aa2ccb43c931d4dd4f5eae5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 31 11:49:27 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Nov 02 13:00:35 2014 -0800"
      },
      "message": "Add image strings to intern table\n\nWhen we create the runtime, we now add the image strings to the\nintern table if we are the zygote. This caused some memory bloat,\nso I added an extra unordered set to the intern table.\n\nThere is now two unordered sets (hash talbe). One for pre-zygote\ninterns and one for post-zygote interns. This helps since the\npre-zygote hash table doesn\u0027t get dirtied. Even with adding\nthe image strings, we get total memory savings of around 5-7 MB\nnative PSS after device boot.\n\nFB launch Before:\n2.20% art::DexFile::FindStringId(char const*) const\nTotalTime: 2069\nTotalTime: 1985\nTotalTime: 2088\nTotalTime: 2003\nTotalTime: 2034\nTotalTime: 2049\nAfter boot native PSS: 175585 kB: Native\n\nAfter:\n0.27% art::DexFile::FindStringId(char const*) const\nTotalTime: 1682\nTotalTime: 1756\nTotalTime: 1825\nTotalTime: 1751\nTotalTime: 1666\nTotalTime: 1813\nAfter boot native PSS: 167089 kB: Native\n\nBug: 18054905\nBug: 16828525\nBug: 17808975\n\nChange-Id: Ie367f3222f8c4db409ec49c3845276908b51e9c9\n"
    },
    {
      "commit": "22c84690dba1c02b4f9fdc3774a85f89d2208fa4",
      "tree": "216b150842ec454af7d791f4a12ed9a0adcf6a8a",
      "parents": [
        "7d7b143480b48a0f81a29a73b48cf3d950f5c44b",
        "64d79730c33777a62e108942909773e5e782ece3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Nov 01 14:08:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 01 14:08:28 2014 +0000"
      },
      "message": "am 64d79730: am 9a783d6a: Fix FindDeclaredVirtualMethod(DexCache...) for miranda methods\n\n* commit \u002764d79730c33777a62e108942909773e5e782ece3\u0027:\n  Fix FindDeclaredVirtualMethod(DexCache...) for miranda methods\n"
    },
    {
      "commit": "7d7b143480b48a0f81a29a73b48cf3d950f5c44b",
      "tree": "7df27a0e30ca8d74f4cb900d20df2dcbfac375f5",
      "parents": [
        "5ef2990c2933152021633e6697d5325103649499",
        "e059b778a6a471455659eb8c3616858eb189fda8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Nov 01 00:32:21 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 01 00:32:22 2014 +0000"
      },
      "message": "Merge \"ART: Discard generated image in a low-memory environment\" into lmp-mr1-dev"
    },
    {
      "commit": "e059b778a6a471455659eb8c3616858eb189fda8",
      "tree": "b547a7ee516bf39d189f702cf523b6bcc7fcc505",
      "parents": [
        "372ad2e767770d084aa2ccb43c931d4dd4f5eae5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 31 16:45:19 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 31 17:03:09 2014 -0700"
      },
      "message": "ART: Discard generated image in a low-memory environment\n\nIn case the available memory after image generation is low,\ndiscard the image and continue in interpreted mode to mitigate\nlow-mem issues.\n\nBug: 17975190\nChange-Id: I67a0f9c32a6c1f1a7ec659e90b1fec834a92d323\n"
    },
    {
      "commit": "5ef2990c2933152021633e6697d5325103649499",
      "tree": "393d49f6e832dffab0ed5ce8aafac3f42e71078a",
      "parents": [
        "90ca5c0301651101de0e363842e5d08ae65233f7"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 29 19:45:42 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 31 10:16:22 2014 -0700"
      },
      "message": "art: Fix classlinker and nopatchoat test for PIC case\n\nClassLinker should not be checking oat data begin and the patch delta\nas part of the checksum verification (when PIC is enabled).\n\nAlso update nopatchoat test since it needs to be parametric on whether\nPIC is used.\n\n(cherry-picked from AOSP master\n230faa7c44ec1986d5fa93d205eb23cb8024e333)\n\nBug: 18035729\nChange-Id: I4eb184d22616230a7b8f0dd514d3416d0976b07e\n"
    },
    {
      "commit": "90ca5c0301651101de0e363842e5d08ae65233f7",
      "tree": "fde469f63dc33623feb0e20513c86262a3892000",
      "parents": [
        "d7392faea80acb5d73a027bb384e3222bc2c2e43"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 22 11:37:02 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 31 10:15:24 2014 -0700"
      },
      "message": "ART: Add support for patching and loading OAT files compiled with PIC\n\n* Images (.art) compiled with pic now have a new field added.\n* isDexOptNeeded will now skip patch-ing for apps compiled PIC\n* First-boot patching now only copies boot.art, boot.oat is linked\n\nAs a result, all system preopted dex files (with --compile-pic) no\nlonger take up any space in /data/dalvik-cache/\u003cisa\u003e.\n\n(cherry-picked from AOSP master\n46774767fcf7780d1455e755729198648d08742e)\n\nConflicts (from aosp master):\n\tcompiler/image_test.cc\n\tcompiler/image_writer.cc\n\tcompiler/image_writer.h\n\tcompiler/oat_test.cc\n\tdex2oat/dex2oat.cc\n\toatdump/oatdump.cc\n\truntime/elf_file.cc\n\truntime/elf_file.h\n\truntime/elf_file_impl.h\n\truntime/oat_file.cc\n\truntime/oat_file.h\n\nBug: 18035729\nChange-Id: Ie1acad81a0fd8b2f24e1f3f07a06e6fdb548be62\n"
    },
    {
      "commit": "d7392faea80acb5d73a027bb384e3222bc2c2e43",
      "tree": "eb46e1fecebc36cf3739a83e465d3f98a3b7708a",
      "parents": [
        "643b5df2b065ccf5bb19a183573da691e9d0311f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 23 11:37:40 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 31 10:13:50 2014 -0700"
      },
      "message": "ART: Add pic flag to oat header store\n\nAdd the compile-time PIC flag to the oat-header key-value store.\nIgnore image offset and patch delta when loading PIC oat files.\n\n(cherry-picked from AOSP master\n7ba649636c4475c3992fa15a57acd2546d69ff38)\n\nBug: 18035729\nSigned-off-by: Igor Murashkin \u003ciam@google.com\u003e\nChange-Id: Ie1f1ef37125386a968228033d1e2bec565315510\n"
    },
    {
      "commit": "643b5df2b065ccf5bb19a183573da691e9d0311f",
      "tree": "276a963f5cec3842ca0fbfbc0a65f12529967663",
      "parents": [
        "372ad2e767770d084aa2ccb43c931d4dd4f5eae5"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 16 18:36:16 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 31 10:10:39 2014 -0700"
      },
      "message": "dex2oat: Add a --compile-pic option\n\n(cherry-picked from AOSP master\n83c5612e69fa05610baf4f4d237fe0995a79cde5)\n\nBug: 18035729\nChange-Id: I80e03613e3b6ac079bcbc7e068bbaae760c364c9\n"
    },
    {
      "commit": "64d79730c33777a62e108942909773e5e782ece3",
      "tree": "81d8b4fc65c73b090401495716d9a2dbd2b429cc",
      "parents": [
        "2759810fc4dab86c52f23c8603e5c7479182ae21",
        "9a783d6a0cb437fc0d9ffcc84502912f3d1cb73b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 31 14:33:51 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 31 14:33:51 2014 +0000"
      },
      "message": "am 9a783d6a: Fix FindDeclaredVirtualMethod(DexCache...) for miranda methods\n\n* commit \u00279a783d6a0cb437fc0d9ffcc84502912f3d1cb73b\u0027:\n  Fix FindDeclaredVirtualMethod(DexCache...) for miranda methods\n"
    },
    {
      "commit": "9a783d6a0cb437fc0d9ffcc84502912f3d1cb73b",
      "tree": "c641c180109bf03936510b6df746a610b90bb17c",
      "parents": [
        "7dd7261845258b7c29b588829c80164b878f4424"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 31 00:01:54 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 31 00:32:05 2014 -0700"
      },
      "message": "Fix FindDeclaredVirtualMethod(DexCache...) for miranda methods\n\nIf a class in classes.dex implements an interface from classes2.dex,\nthe miranda method will be in the dex cache for classes2.dex, but\npointed to by the virtual methods of the class in the dex caches for\nclasses.dex.\n\nTherefore the fast path for DexCache::ResolveMethod that searches via\nclass and superclass virtual methods should ensure that any method\nmatching on dex method_idx should be from the same dex cache as the\nclass itself, which is not the case for miranda methods.\n\nBug: 18193682\nChange-Id: I10da4f5472e929b3dc0be58051a726a4bc14e438\n"
    },
    {
      "commit": "372ad2e767770d084aa2ccb43c931d4dd4f5eae5",
      "tree": "f3938444cdfaf55b910112b3826754f9d30ab1dc",
      "parents": [
        "62a09752e6187e820d51c684ca8baf733289444d",
        "a9ca9ac444ceb2cf5e8bd5c98c1ed47f2a9a94dd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 30 22:19:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 30 22:19:52 2014 +0000"
      },
      "message": "Merge \"Add hash table to link virtual methods\" into lmp-mr1-dev"
    },
    {
      "commit": "a9ca9ac444ceb2cf5e8bd5c98c1ed47f2a9a94dd",
      "tree": "8766b8750c0983ace426811f8a2d9f68109bbda5",
      "parents": [
        "473484fac7bd53523f5503176ecc5955325a9731"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 28 18:23:02 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 30 14:57:00 2014 -0700"
      },
      "message": "Add hash table to link virtual methods\n\nAdded a hash table for turning the O(m*n) lookup average case to\nO(m+n) average case. There is probably still some room for improvement.\n\nBefore:\nWaitTime: 2121\nWaitTime: 2051\nWaitTime: 2134\nWaitTime: 2104\nWaitTime: 2237\nWaitTime: 2391\n4.99% art::MethodNameAndSignatureComparator::HasSameNameAndSignature(art::mirror::ArtMethod)\n1.65% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle\u003cart::mirror::Class\u003e)\n\nAfter:\nWaitTime: 2038\nWaitTime: 1965\nWaitTime: 1979\nWaitTime: 1976\nWaitTime: 1957\nWaitTime: 2004\n0.46% art::MethodNameAndSignatureComparator::HasSameNameAndSignature(art::mirror::ArtMethod*)\n1.39% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle\u003cart::mirror::Class\u003e)\n\nBug: 18054905\nBug: 16828525\n\nChange-Id: If847afb7194daa05ace38d15862e4b871dfffae1\n"
    },
    {
      "commit": "62a09752e6187e820d51c684ca8baf733289444d",
      "tree": "be9b2bcdf6eb642a9f0fb91435816f7589eae90b",
      "parents": [
        "3613c2a336fad671363656e8d16ea981609ff02d",
        "8fa841aa1c02ff8e3e7caaa73ed5fe25f027d5d3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 30 16:59:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 30 16:59:15 2014 +0000"
      },
      "message": "Merge \"ART: Do not abort on most verifier failures\" into lmp-mr1-dev"
    },
    {
      "commit": "3613c2a336fad671363656e8d16ea981609ff02d",
      "tree": "db6a84fe20759aecda9db33337257b90f887827f",
      "parents": [
        "beb05a896a7f0c40ad336de8bf4029ec7bbdb036",
        "20ffaaab1339bbda450f4ff4262910b5f34da085"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Oct 30 10:14:44 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 30 10:14:45 2014 +0000"
      },
      "message": "Merge \"Fix deoptimization bugs\" into lmp-mr1-dev"
    },
    {
      "commit": "beb05a896a7f0c40ad336de8bf4029ec7bbdb036",
      "tree": "b8e97fff714f734e03935e25e69ae25c336d81a6",
      "parents": [
        "936897a47f9ee358b22b7d5d88073b298d76e107",
        "2759810fc4dab86c52f23c8603e5c7479182ae21"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 29 18:51:44 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 29 18:51:44 2014 +0000"
      },
      "message": "am 2759810f: am 7dd72618: Work around relocated boot.oat corruption\n\n* commit \u00272759810fc4dab86c52f23c8603e5c7479182ae21\u0027:\n  Work around relocated boot.oat corruption\n"
    },
    {
      "commit": "936897a47f9ee358b22b7d5d88073b298d76e107",
      "tree": "89e8fb1014758b170293673689508f641b0bb01e",
      "parents": [
        "de38e69381bec180da431bb2759fb35b0f1c6758",
        "f4e60fb49f96aeb13a58523b7f9f9e91ab4b533c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 29 18:50:54 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 29 18:50:54 2014 +0000"
      },
      "message": "am f4e60fb4: am efb9f850: ART: Fix ImageSpace error message.\n\n* commit \u0027f4e60fb49f96aeb13a58523b7f9f9e91ab4b533c\u0027:\n  ART: Fix ImageSpace error message.\n"
    },
    {
      "commit": "de38e69381bec180da431bb2759fb35b0f1c6758",
      "tree": "79607a7e34c8285c0640ad380ee47ec8e83beca7",
      "parents": [
        "f13e6d8243caaacba5f4b87a47e5b3d2d352b18c",
        "d7c581cc076a03da2b00a9a3ceaeb5d04ec815df"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 29 18:49:10 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 29 18:49:10 2014 +0000"
      },
      "message": "am d7c581cc: am a6b2affa: Remove boot.art/boot.oat on failure to create\n\n* commit \u0027d7c581cc076a03da2b00a9a3ceaeb5d04ec815df\u0027:\n  Remove boot.art/boot.oat on failure to create\n"
    },
    {
      "commit": "20ffaaab1339bbda450f4ff4262910b5f34da085",
      "tree": "60718b83020c83b6c421f13f34c3cbfe85ec3c4a",
      "parents": [
        "f13e6d8243caaacba5f4b87a47e5b3d2d352b18c"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Oct 29 12:21:55 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Oct 29 16:24:24 2014 +0100"
      },
      "message": "Fix deoptimization bugs\n\nOnly concerns long and double variables which use a register pair.\n\nBug: 18167243\n\n(partial cherry-pick of commit 07140838a3ee44a6056cacdc78f2930e019107da)\n\nChange-Id: Ibbbd9b1ed576a1502ca0025a3e27176014ed2548\n"
    },
    {
      "commit": "f13e6d8243caaacba5f4b87a47e5b3d2d352b18c",
      "tree": "e7390e0907bbf2bcce3a706a60883dd24e20f34d",
      "parents": [
        "473484fac7bd53523f5503176ecc5955325a9731",
        "ea668645e5fe84f1b097e490044f47fca5ea6bd9"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Oct 29 08:30:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 29 08:30:55 2014 +0000"
      },
      "message": "Merge \"Make ObjectRegistry::InternalAdd GC safe\" into lmp-mr1-dev"
    },
    {
      "commit": "2759810fc4dab86c52f23c8603e5c7479182ae21",
      "tree": "9675f19f64a49684dcc2f4046347046eac0c7528",
      "parents": [
        "f4e60fb49f96aeb13a58523b7f9f9e91ab4b533c",
        "7dd7261845258b7c29b588829c80164b878f4424"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 29 01:33:42 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 29 01:33:42 2014 +0000"
      },
      "message": "am 7dd72618: Work around relocated boot.oat corruption\n\n* commit \u00277dd7261845258b7c29b588829c80164b878f4424\u0027:\n  Work around relocated boot.oat corruption\n"
    },
    {
      "commit": "8fa841aa1c02ff8e3e7caaa73ed5fe25f027d5d3",
      "tree": "b3794427657b9963204546733541018152c104f4",
      "parents": [
        "7989d22642415e1e4d608e210284834951bd0a39"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 27 20:08:46 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 28 17:17:58 2014 -0700"
      },
      "message": "ART: Do not abort on most verifier failures\n\nChanges hard aborts to hard verifier failures, which rejects a\nclass instead of killing the process.\n\nBug: 17625962\nChange-Id: Iba8e15676e13ea6dcd6e1e5d0484031d9ab52ae9\n"
    },
    {
      "commit": "473484fac7bd53523f5503176ecc5955325a9731",
      "tree": "6694af635187b0d147a3d110117e87f7a0c3423b",
      "parents": [
        "f6db70a540f8816aa5c29442dec42c235697b44b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 28 09:34:57 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 28 17:17:22 2014 -0700"
      },
      "message": "Tidy MethodProtoHelper.\n\nMove to place of only use, class_linker.cc. Be lazy in computing the name.\n\nBefore:\nWaitTime: 2699\nWaitTime: 2791\nWaitTime: 2653\nWaitTime: 2929\nWaitTime: 2651\nWaitTime: 2971\n\nAfter:\nWaitTime: 2749\nWaitTime: 2786\nWaitTime: 2852\nWaitTime: 2856\nWaitTime: 2703\nWaitTime: 2784\n\nBug: 18054905\nBug: 16828525\n\n(cherry picked from commit 03b6eafba8ace9a9c4d5ee9c47723d1910ccd7a8)\n\nChange-Id: I1438efbda58369ddd0ac36eda8a5a0a6c6fdff77\n"
    },
    {
      "commit": "7dd7261845258b7c29b588829c80164b878f4424",
      "tree": "cbaec3c3d7e99f19418b1c0346e72c3b377772a3",
      "parents": [
        "efb9f850292a2ea5aae4ab56556c9ab25b308a96"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 28 15:53:43 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 28 15:53:43 2014 -0700"
      },
      "message": "Work around relocated boot.oat corruption\n\nBug: 18143314\nChange-Id: Ibecade061d6c887bde2f8a085ed7dede3345125a\n"
    },
    {
      "commit": "f6db70a540f8816aa5c29442dec42c235697b44b",
      "tree": "8c98530ea5ef841c8e9da9ec0292cfd6f1cd6526",
      "parents": [
        "9a0b1a011f8f0ade82466db8b1e4e79818fb3c87",
        "bfb21589a6490769690b44aaf8e6a0021a1261b7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 28 22:09:35 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 28 22:09:35 2014 +0000"
      },
      "message": "Merge \"Fill resolved static fields during class initialization\" into lmp-mr1-dev"
    },
    {
      "commit": "bfb21589a6490769690b44aaf8e6a0021a1261b7",
      "tree": "1399d44f5048259b8caa431458aca4d192f56b9a",
      "parents": [
        "22986a478eff6562896ab8df187b5cd8cbcb8de9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 28 13:57:04 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 28 14:51:49 2014 -0700"
      },
      "message": "Fill resolved static fields during class initialization\n\nPreviously everytime we resolved static fields we linear searched\nthe class to find the field with the specified field id. Now we\neagerly set these fields in the dex cache when we initialize classes.\n\nFB launch timings before:\nWaitTime: 2903\nWaitTime: 2953\nWaitTime: 2918\nWaitTime: 2940\nWaitTime: 2879\nWaitTime: 2792\n\nTimings after:\nWaitTime: 2699\nWaitTime: 2791\nWaitTime: 2653\nWaitTime: 2929\nWaitTime: 2651\nWaitTime: 2971\n\nPerf before:\n2.94% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)\nAfter:\n0.00% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)\n\nBug: 18054905\nBug: 16828525\n\nChange-Id: I33255f85d10c29cae085584880196c45ac0ea230\n"
    },
    {
      "commit": "f4e60fb49f96aeb13a58523b7f9f9e91ab4b533c",
      "tree": "be295953bc4f84328545f9c93bf7f7f1376a5908",
      "parents": [
        "d7c581cc076a03da2b00a9a3ceaeb5d04ec815df",
        "efb9f850292a2ea5aae4ab56556c9ab25b308a96"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 28 21:37:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 28 21:37:02 2014 +0000"
      },
      "message": "am efb9f850: ART: Fix ImageSpace error message.\n\n* commit \u0027efb9f850292a2ea5aae4ab56556c9ab25b308a96\u0027:\n  ART: Fix ImageSpace error message.\n"
    },
    {
      "commit": "efb9f850292a2ea5aae4ab56556c9ab25b308a96",
      "tree": "068adef5982d6337cece902ac7dada788440a13a",
      "parents": [
        "a6b2affaf99e03f938f6f26e42606488d43f2efe"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 24 21:55:52 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 28 13:48:46 2014 -0700"
      },
      "message": "ART: Fix ImageSpace error message.\n\nUse *error_msg instead of error_msg.\n\n(cherry picked from commit 50f2e9a6b935ba1c456a687e5f0822d9356d71e5)\n\nBug: 18143314\nChange-Id: I62f6aeda142235eb1a412a4c1ae1104b813e6967\n"
    },
    {
      "commit": "9a0b1a011f8f0ade82466db8b1e4e79818fb3c87",
      "tree": "83d95c6928892166961841cd82adc761c1a2facd",
      "parents": [
        "622f106c72443cc0f859141735ae0bb285fc8d2c",
        "2ff973cc395007ddbcf6b498c8de8880d77dd787"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 28 17:17:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 28 17:17:10 2014 +0000"
      },
      "message": "Merge \"[native bridge] Make sure we always unload the native bridge\" into lmp-mr1-dev"
    },
    {
      "commit": "622f106c72443cc0f859141735ae0bb285fc8d2c",
      "tree": "352488b166f4cf34693fb40c66e36f951557e7af",
      "parents": [
        "74dc0bee276f836f63be7558dee868ef5f6acc40",
        "b57535de9078f2e26d4d2a53addcaf3d6f8cab0f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 28 17:16:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 28 17:16:47 2014 +0000"
      },
      "message": "Merge \"[native bridge] Add test to verify code_cache existance.\" into lmp-mr1-dev"
    },
    {
      "commit": "ea668645e5fe84f1b097e490044f47fca5ea6bd9",
      "tree": "cd0a0883479beae22c1bf1abdcb932a73543e760",
      "parents": [
        "74dc0bee276f836f63be7558dee868ef5f6acc40"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Oct 23 15:39:33 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Oct 28 17:58:32 2014 +0100"
      },
      "message": "Make ObjectRegistry::InternalAdd GC safe\n\nBecause a call to IdentityHashCode may cause GC, the object pointer\nmay become invalid (if the object has been moved) on next uses. We\nnow access the object through a Handle to be GC safe.\n\nAlso remove unused methods.\n\nBug: 18098424\n\n(cherry picked from commit e2d628b5b0a1b9c29c173f3cbad3ef6cb6c24d2d)\n\nChange-Id: I4fdff54053aa947765a39adf67345b08816387e5\n"
    },
    {
      "commit": "74dc0bee276f836f63be7558dee868ef5f6acc40",
      "tree": "1daa271112852a7dfb890b23fca2d16fe356972d",
      "parents": [
        "a6e599a8838b7d8098cba12301422e0fb6296753",
        "250e372f889049f55b54bb4149c2deb041fc38c1"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Oct 28 08:24:22 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 28 08:24:23 2014 +0000"
      },
      "message": "Merge \"Fixed debugger for threads attached from JNI\" into lmp-mr1-dev"
    },
    {
      "commit": "a6e599a8838b7d8098cba12301422e0fb6296753",
      "tree": "c4b1385afaa11bced19475846661982325717724",
      "parents": [
        "7989d22642415e1e4d608e210284834951bd0a39",
        "4eec026ec4d86869baa27ad0afd9564cca8856c9"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Oct 28 08:23:48 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 28 08:23:50 2014 +0000"
      },
      "message": "Merge \"Fix JDWP Virtualmachine.Resume command\" into lmp-mr1-dev"
    },
    {
      "commit": "d7c581cc076a03da2b00a9a3ceaeb5d04ec815df",
      "tree": "93e2a03cfe3051f11d61497036fcda558ef8b29d",
      "parents": [
        "c63a505ae9992cc6ad154179734f078594c72d01",
        "a6b2affaf99e03f938f6f26e42606488d43f2efe"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 28 06:21:37 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 28 06:21:37 2014 +0000"
      },
      "message": "am a6b2affa: Remove boot.art/boot.oat on failure to create\n\n* commit \u0027a6b2affaf99e03f938f6f26e42606488d43f2efe\u0027:\n  Remove boot.art/boot.oat on failure to create\n"
    },
    {
      "commit": "7989d22642415e1e4d608e210284834951bd0a39",
      "tree": "2f9ba11eab7744ecef369b7992ed6554c80cfd41",
      "parents": [
        "22986a478eff6562896ab8df187b5cd8cbcb8de9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 27 17:30:20 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 27 17:32:53 2014 -0700"
      },
      "message": "Fix 64 bit build\n\nBuggy compiler.\n\nChange-Id: Id16c83fc7963ca89fd7fae32dd15ae342cc7f064\n"
    },
    {
      "commit": "a6b2affaf99e03f938f6f26e42606488d43f2efe",
      "tree": "b6f80e911e8d00cea7709b1fb5800b64ae8d8d49",
      "parents": [
        "1f24296c7c8a6501ee2388c0d20b48f471b48660"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 27 16:27:06 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 27 16:27:06 2014 -0700"
      },
      "message": "Remove boot.art/boot.oat on failure to create\n\nBug: 18143314\nChange-Id: I5f4733ed7f359158a2bda58ff4f228ba60e2f493\n"
    },
    {
      "commit": "22986a478eff6562896ab8df187b5cd8cbcb8de9",
      "tree": "dac5c51de114e494e4de841e157ae23a9475acd6",
      "parents": [
        "506794738de41db046a8094e04aa2a7c5a6e02db",
        "1fb463e42cf1d67595cff66d19c0f99e3046f4c4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 27 23:04:22 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 27 23:04:23 2014 +0000"
      },
      "message": "Merge \"Optimize method linking\" into lmp-mr1-dev"
    },
    {
      "commit": "1fb463e42cf1d67595cff66d19c0f99e3046f4c4",
      "tree": "0156d91d7881d9e5b63118dd090688b2f88c8a5b",
      "parents": [
        "0133ec454d8dd3fa5ffe35649b5704aa18f15a49"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 23 16:48:06 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 27 15:05:03 2014 -0700"
      },
      "message": "Optimize method linking\n\nAdded more inlining, removed imt array allocation and replaced it\nwith a handle scope. Removed some un-necessary handle scopes.\n\nAdded logic to base interface method tables from the superclass so\nthat we dont need to reconstruct for every interface (large win).\n\nFacebook launch Dalvik KK MR2:\nTotalTime: 3165\nTotalTime: 3652\nTotalTime: 3143\nTotalTime: 3298\nTotalTime: 3212\nTotalTime: 3211\n\nFacebook launch TOT before:\nWaitTime: 3702\nWaitTime: 3616\nWaitTime: 3616\nWaitTime: 3687\nWaitTime: 3742\nWaitTime: 3767\n\nAfter optimizations:\nWaitTime: 2903\nWaitTime: 2953\nWaitTime: 2918\nWaitTime: 2940\nWaitTime: 2879\nWaitTime: 2792\n\nLinkInterfaceMethods no longer one of the hottest methods, new list:\n4.73% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle\u003cart::mirror::Class\u003e)\n3.07% art::DexFile::FindClassDef(char const*) const\n2.94% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)\n2.90% art::DexFile::FindStringId(char const*) const\n\nBug: 18054905\nBug: 16828525\n\nChange-Id: I27cc70178fd3655fbe5a3178887fcba189d21321\n"
    },
    {
      "commit": "2ff973cc395007ddbcf6b498c8de8880d77dd787",
      "tree": "6b6ec94c9b9978d3662151faa434a4e34b47bb82",
      "parents": [
        "506794738de41db046a8094e04aa2a7c5a6e02db"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 22 21:02:23 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Oct 27 15:18:28 2014 +0000"
      },
      "message": "[native bridge] Make sure we always unload the native bridge\n\nlibnativebridge may allocate some resources during loading and\nintialization and de-allocate them when unloading. This makes sure that\nwe don\u0027t leak anything.\n\nBug: 18097480\n\n(cherry picked from commit 07d83c7a25022064ac0a8dac4fe2a7a38681fa4b)\n\nChange-Id: I3a5155a6760399ccfaf9130c72679615a3d4f2e7\n"
    },
    {
      "commit": "b57535de9078f2e26d4d2a53addcaf3d6f8cab0f",
      "tree": "4e7901046a4fa9e90ecc3780e3a8d6b424ab5979",
      "parents": [
        "506794738de41db046a8094e04aa2a7c5a6e02db"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 22 20:17:58 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Oct 27 14:33:26 2014 +0000"
      },
      "message": "[native bridge] Add test to verify code_cache existance.\n\nBug: 18027433\n\n(cherry picked from commit 44a3506627833deb17d21d6a7d51245a5af2c3e9)\n\nChange-Id: I9ce578949dbe522d5033465df7ca49fdd3aa3cbf\n"
    },
    {
      "commit": "4eec026ec4d86869baa27ad0afd9564cca8856c9",
      "tree": "5fd589ab62118751e99a6e9c708d895666adb3b5",
      "parents": [
        "506794738de41db046a8094e04aa2a7c5a6e02db"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Oct 14 17:27:15 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Oct 27 10:31:39 2014 +0100"
      },
      "message": "Fix JDWP Virtualmachine.Resume command\n\nWe used to call ThreadList::UndoDebuggerSuspensions but this is not\ncorrect. Indeed Virtualmachine.Resume command should be performed\nas many times as all threads have been suspended (either by the\nVirtualmachine.Suspend command or the application of suspend policy\nALL for event).\n\nThis CL fixes this issue by adding ThreadList::ResumeAllForDebugger.\nIt decrements suspend count and debug suspend count by 1 (globally\nand for each thread).\n\nIt also handles the case where Virtualmachine.Resume is called while\nthreads have not been suspended (global debug suspend count is 0). In\nthis case we just print a warning and do nothing.\n\nBug: 17974047\n\n(cherry picked from commit 253fa555d9424a56c52879449eabe73d5c96cf61)\n\nChange-Id: I38b38240f84f141670506e88fa5c2480f856fdd6\n"
    },
    {
      "commit": "506794738de41db046a8094e04aa2a7c5a6e02db",
      "tree": "13bba32e7380513ab6c0c91e9113782e40967af8",
      "parents": [
        "5151bccb8cbc24959005e78a660aed427ce374ee",
        "c29f896d4f625fee4269bf44c22838700a859c2f"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Oct 24 07:57:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 24 07:57:50 2014 +0000"
      },
      "message": "Merge \"Only watch location for BREAKPOINT event\" into lmp-mr1-dev"
    },
    {
      "commit": "5151bccb8cbc24959005e78a660aed427ce374ee",
      "tree": "c340cd240fa28ff1cc593bf5a19af532d8947c5a",
      "parents": [
        "0133ec454d8dd3fa5ffe35649b5704aa18f15a49",
        "c63a505ae9992cc6ad154179734f078594c72d01"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 24 00:44:43 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 24 00:44:43 2014 +0000"
      },
      "message": "am c63a505a: Fix concurrent start bytes race\n\n* commit \u0027c63a505ae9992cc6ad154179734f078594c72d01\u0027:\n  Fix concurrent start bytes race\n"
    },
    {
      "commit": "c63a505ae9992cc6ad154179734f078594c72d01",
      "tree": "2c57e9929825764a4b2a7ea540996683ee2ca819",
      "parents": [
        "4b4af816f2c5924cc173c84bc62c12d57123442e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 22 17:18:34 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 23 23:11:22 2014 +0000"
      },
      "message": "Fix concurrent start bytes race\n\nPreviously, we set concurrent start bytes to max int when we\nrequested a concurrent GC, but there was a race if another thread\nwas doing another GC and had already completed GrowForUtilization\nbut had not yet finished the GC. This meant that the thread doing\nthe GC would update the concurrent start bytes properly, but the\nallocating thread would re-update it to max int. Then when the\nconcurrent GC thread woke up, it would call WaitForGcToComplete\nand see that there was a collector running and avoid doing the\nconcurrent GC, leaving the concurrent start bytes set to max int.\n\nThis meant that there would be no more concurrent GC until either\nthe next explicit GC or the next GC for alloc.\n\nThe fix is to only set concurrent start bytes to max int inside of\nthe CollectGarbageInternal code such that there isn\u0027t any way for\ntwo threads to race.\n\nBug: 17942071\nChange-Id: I2a4b067d99ae0aeebcc32fa4970024dcdff2ddc3\n(cherry picked from commit 0133ec454d8dd3fa5ffe35649b5704aa18f15a49)\n"
    },
    {
      "commit": "0133ec454d8dd3fa5ffe35649b5704aa18f15a49",
      "tree": "c340cd240fa28ff1cc593bf5a19af532d8947c5a",
      "parents": [
        "96664adff10fcfe2328ff708c5d8f67a830f19c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 22 17:18:34 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 22 17:26:20 2014 -0700"
      },
      "message": "Fix concurrent start bytes race\n\nPreviously, we set concurrent start bytes to max int when we\nrequested a concurrent GC, but there was a race if another thread\nwas doing another GC and had already completed GrowForUtilization\nbut had not yet finished the GC. This meant that the thread doing\nthe GC would update the concurrent start bytes properly, but the\nallocating thread would re-update it to max int. Then when the\nconcurrent GC thread woke up, it would call WaitForGcToComplete\nand see that there was a collector running and avoid doing the\nconcurrent GC, leaving the concurrent start bytes set to max int.\n\nThis meant that there would be no more concurrent GC until either\nthe next explicit GC or the next GC for alloc.\n\nThe fix is to only set concurrent start bytes to max int inside of\nthe CollectGarbageInternal code such that there isn\u0027t any way for\ntwo threads to race.\n\nBug: 17942071\nChange-Id: I2a4b067d99ae0aeebcc32fa4970024dcdff2ddc3\n"
    },
    {
      "commit": "250e372f889049f55b54bb4149c2deb041fc38c1",
      "tree": "04f215db97cbf81d52bf643e408183f200a6c210",
      "parents": [
        "3bd08d5de1120b6488c4cdcf8fa17855cf383a1c"
      ],
      "author": {
        "name": "Daniel Mihalyi",
        "email": "daniel.mihalyi@mattakis.com",
        "time": "Mon Oct 20 11:47:56 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Oct 22 15:42:43 2014 +0200"
      },
      "message": "Fixed debugger for threads attached from JNI\n\nDbg::PostThreadStart was not invoked in Thread::Attach,\nthus when attaching existing native thread to JNI, JDWP\nevents from that thread are not handled correctly by the\ndebugger, because the thread keeps being unannounced.\n\nThe issue was reproduced on Eclipse 4.3 and 4.4.\n\nBug: 18030371\n(cherry picked from commit dfafeef139dbc77e86fdb465d960b4a17a7ac4a0)\n\nChange-Id: Ia91dcf1aa98913aea2742c90b3e21b10d2cb36d4\nSigned-off-by: Daniel Mihalyi \u003cdaniel.mihalyi@mattakis.com\u003e\n"
    },
    {
      "commit": "96664adff10fcfe2328ff708c5d8f67a830f19c3",
      "tree": "a9cbd588acecc7d408711f29734a435809928023",
      "parents": [
        "3bd08d5de1120b6488c4cdcf8fa17855cf383a1c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 15:05:36 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 16:47:07 2014 -0700"
      },
      "message": "Avoid strict-aliasing problems with Handles.\n\nReplace use of reinterpret_cast with down_cast.\n\nBug: 18074773\n\nChange-Id: Id42d462f2798f69a2210e5912f441c868b8b5812\n(cherry picked from commit b5cb18a116dce45fc077b3f5b94af9e521e79e8d)\n"
    },
    {
      "commit": "3bd08d5de1120b6488c4cdcf8fa17855cf383a1c",
      "tree": "09ce9d75d11ef4e653ff67d716c978c279aee954",
      "parents": [
        "f4450a359a08c09b88cb64c4a2ea25f983535dfb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 20 18:13:22 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 21 17:16:43 2014 +0100"
      },
      "message": "Shut down FaultManager after shutting down threads.\n\nBug: 17703163\n\n(cherry picked from commit 2beeb82523bd3b8015851b69ccd088553ec0c226)\n\nChange-Id: Ic4beae99734ec15b8ead362fbf76a69eceae5980\n"
    },
    {
      "commit": "f4450a359a08c09b88cb64c4a2ea25f983535dfb",
      "tree": "ff4cd64ce1c05d92954bf3741f16dee5a55994c0",
      "parents": [
        "09eff05e08865660c049d1d38cdeb93662e95f0d"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 14 17:55:28 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 20 09:53:23 2014 -0700"
      },
      "message": "Fix mac build (second attempt)\n\n  It appears that the version of mac ld with\n  -export_dynamic is pretty recent.\n\n  Remove -export_dynamic to fix build for older\n  mac versions (?)\n\n(cherry picked from commit 8b5b69813ef4d718db2e38e51867883511a3eeea)\n\nChange-Id: I272d4b2c95411cc8126f27468f5199ff932fc9ef\n"
    },
    {
      "commit": "09eff05e08865660c049d1d38cdeb93662e95f0d",
      "tree": "52abd98a6842e9c0e4e4a34a1d4a8b594b02350e",
      "parents": [
        "4b70d11dc00b163328c500b0061e9f956dd18903"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 14 12:18:10 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 20 09:53:23 2014 -0700"
      },
      "message": "Fixing mac build\n\n MacOS static linker does not understand --export-dynamic\n and --version-script. According to man ld there is\n -export_dynamic option which should do the same\n thing.\n\n(cherry picked from commit 1d74e57fa22fbcad1e14d776c771472b2d8438fb)\n\nChange-Id: If9c096e099c8c070b62dda87dd0ed3ce77addcd6\n"
    },
    {
      "commit": "4b70d11dc00b163328c500b0061e9f956dd18903",
      "tree": "276f9ab21fe0c5b08649ef0799e062ea9131c3af",
      "parents": [
        "7f1fa9e802efa4cc6ded166ce090f7c33d5546ba"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 14 11:38:46 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 20 09:53:23 2014 -0700"
      },
      "message": "Untie gtest executables from LD_PRELOAD\n\nBug: 15345057\nBug: 15426766\n\n(cherry picked from commit 8508a436efa7979ad54f644e60dad483c8499be2)\n\nChange-Id: Id710c87c050f573fec1e4c36f06f88def5de5887\n"
    },
    {
      "commit": "7f1fa9e802efa4cc6ded166ce090f7c33d5546ba",
      "tree": "93ed22d3182a89ca4a49ab88108f30d1d079e47f",
      "parents": [
        "1ec2f1dc2c16559ae07d1b037961a7e295255d55"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 07 13:43:23 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 20 09:53:23 2014 -0700"
      },
      "message": "Remove libsigchain from LD_PRELOADS\n\n  Link sigchain.cc statically with dalvikvm, app_process,\n  surfaceflinger, dex2oat, patchoat and objdump.\n\n  Replace libsigchain.so with dummy implementaions to avoid\n  situations when it is used incorrectly.\n\nBug: 15345057\nBug: 15426766\n\n(cherry picked from commit f57874dddefc03fef9ad36fbdd87e39a08a8d641)\n\nChange-Id: I07fe3ca4eeef423d78d7e9a639f03fc59aae3b29\n"
    },
    {
      "commit": "1ec2f1dc2c16559ae07d1b037961a7e295255d55",
      "tree": "eb3089b870e73e16601be8c4722973d019827fb2",
      "parents": [
        "ab608d477404c2da76f6fa0c9a75498968bf01ee",
        "4b4af816f2c5924cc173c84bc62c12d57123442e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 17 18:52:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 17 18:52:25 2014 +0000"
      },
      "message": "am 4b4af816: am 1f24296c: Add way to ensure we are at the front of the sigaction chain\n\n* commit \u00274b4af816f2c5924cc173c84bc62c12d57123442e\u0027:\n  Add way to ensure we are at the front of the sigaction chain\n"
    },
    {
      "commit": "ab608d477404c2da76f6fa0c9a75498968bf01ee",
      "tree": "e85ea803fd11d5f41775b66c755538800fd5bebb",
      "parents": [
        "d8bef73723ea2d101b36e857968bc15d0887dcee",
        "e3b173fa54c67e0b3d4cea583cd999b074c810a9"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 17 11:19:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 17 11:19:11 2014 +0000"
      },
      "message": "Merge \"Add test for equals and hashCode in ParameterizedType\" into lmp-mr1-dev"
    },
    {
      "commit": "4b4af816f2c5924cc173c84bc62c12d57123442e",
      "tree": "466b5700262f7adc55e93b1f09214bbd977b0a30",
      "parents": [
        "1fc7a271f6c8ce844f0af67165c437c859e4e20c",
        "1f24296c7c8a6501ee2388c0d20b48f471b48660"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 17 07:29:32 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 17 07:29:32 2014 +0000"
      },
      "message": "am 1f24296c: Add way to ensure we are at the front of the sigaction chain\n\n* commit \u00271f24296c7c8a6501ee2388c0d20b48f471b48660\u0027:\n  Add way to ensure we are at the front of the sigaction chain\n"
    },
    {
      "commit": "d8bef73723ea2d101b36e857968bc15d0887dcee",
      "tree": "fe41329281787182673775d39441b16c4b524e72",
      "parents": [
        "a70c14a4e0d287b409f6c296db3b5a4998500b42"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 16 22:02:23 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 16 22:02:51 2014 -0700"
      },
      "message": "Tracking change to make Class.getDeclaredFields/Methods public\n\nBug: 17375269\nChange-Id: Ib3bc256e2034258210e153ff664ee9b1f2d806f7\n"
    },
    {
      "commit": "1f24296c7c8a6501ee2388c0d20b48f471b48660",
      "tree": "579e8543a942d8db8d66e5d69e052c9b682ad7dd",
      "parents": [
        "edfc4ca2c8e1de6a1d42700cc0bc41d5b243ea04"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 15 16:59:47 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 16 16:36:07 2014 -0700"
      },
      "message": "Add way to ensure we are at the front of the sigaction chain\n\nCalling this after jni_on_load fixes the unity apps. This is\nnot exactly correct since we may already have the following chain.\n\nStart up:\nUs -\u003e debuggerd\n\nAfter app goes in front:\nApp -\u003e us -\u003e debuggerd\n\nAfter we put ourself back at the front:\nUs -\u003e app -\u003e us -\u003e app -\u003e .... stack overflow.\n\nBug: 17620677\nChange-Id: I9183997e3d5ebd51c320b5d51425be5142e938f3\n"
    },
    {
      "commit": "a70c14a4e0d287b409f6c296db3b5a4998500b42",
      "tree": "9727d267d458fc3dd49d307592195db0e11de9d0",
      "parents": [
        "b8acbcc7cbca78f79d345239ae627dbfb412d412",
        "1fc7a271f6c8ce844f0af67165c437c859e4e20c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 15 18:13:41 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 15 18:13:41 2014 +0000"
      },
      "message": "am 1fc7a271: am edfc4ca2: Fix oatdump for no image\n\n* commit \u00271fc7a271f6c8ce844f0af67165c437c859e4e20c\u0027:\n  Fix oatdump for no image\n"
    }
  ],
  "next": "1fc7a271f6c8ce844f0af67165c437c859e4e20c"
}
