)]}'
{
  "log": [
    {
      "commit": "c7dd295a4e0cc1d15c0c96088e55a85389bade74",
      "tree": "0c08a2236bc9ba5d9a4dc75d4dd0ed2d76f8f1c6",
      "parents": [
        "94e5af8602150efa95bde35cc9be9891ddf30135"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 23:31:19 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 12:06:23 2014 -0700"
      },
      "message": "Tidy up logging.\n\nMove gVerboseMethods to CompilerOptions. Now \"--verbose-methods\u003d\" option to\ndex2oat rather than runtime argument \"-verbose-methods:\".\nMove ToStr and Dumpable out of logging.h, move LogMessageData into logging.cc\nexcept for a forward declaration.\nRemove ConstDumpable as Dump methods are all const (and make this so if not\ncurrently true).\nMake LogSeverity an enum and improve compile time assertions and type checking.\nRemove log_severity.h that\u0027s only used in logging.h.\nWith system headers gone from logging.h, go add to .cc files missing system\nheader includes.\nAlso, make operator new in ValueObject private for compile time instantiation\nchecking.\n\nChange-Id: I3228f614500ccc9b14b49c72b9821c8b0db3d641\n"
    },
    {
      "commit": "667ab7c174ebdb16fc18487901c6857709adcdb8",
      "tree": "49ba1b6cac63a4c85b2b91b7e8c06e4539ecf4bf",
      "parents": [
        "61634cec710b8837df5d0dbe2ed3efce1c61c359"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 16 19:12:28 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 16 20:52:50 2014 -0700"
      },
      "message": "Some additional verbose logging for DexFile_defineClassNative\n\nChange-Id: I6a86352e9eecf4cc5b529feb784e6cd5e8ec0a45\n"
    },
    {
      "commit": "7223d44a4893522e90d00bca38b119f710e55122",
      "tree": "c0bbe3f7b3cf04750b4b5359a03c2d63fc90978b",
      "parents": [
        "3f5b8a1e7dfdf010591e17396d1d126740c5706c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 20:05:39 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 20:05:39 2014 -0700"
      },
      "message": "Switch to C++11 style [[noreturn]].\n\nAlso remove old comment about calls to Abort getting merged. We have few\nLOG(FATAL)s so merging is less of an issue. Also, recompiling with O0 and\nsimilar will avoid the optimization and we expect that for GDB debugging.\n\nChange-Id: I840dc6f4b8511294be0e117c634ec15b745e7be5\n"
    },
    {
      "commit": "647b1a86f518d8db0331b3d52a96392b7a62504b",
      "tree": "7370f795ef3c7fbdd2695d23bc6f8171f40f43f1",
      "parents": [
        "acfbbd4df2fc1c79a7102587bebf398f95b5e5de"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 11:02:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 12:26:02 2014 -0700"
      },
      "message": "Fix 2 new sets of clang compiler warnings.\n\nFix issues that are flagged by -Wfloat-equal and -Wmissing-noreturn.\nIn the case of -Wfloat-equal the current cases in regular code are deliberate,\nso the change is to silence the warning. For gtest code the appropriate fix is\nto switch from EXPECT_EQ to EXPECT_(FLOAT|DOUBLE)_EQ.\nThe -Wmissing-noreturn warning isn\u0027t enabled due to a missing noreturn in\ngtest. This issue has been reported to gtest.\n\nChange-Id: Id84c70c21c542716c9ee0c41492e8ff8788c4ef8\n"
    },
    {
      "commit": "fc787ecd91127b2c8458afd94e5148e2ae51a1f5",
      "tree": "ef48c0f511ee9bf4ed85607cc4d530bace7e6cae",
      "parents": [
        "8fa8c904f7c783204a1dc9438429391d256658da"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 21:56:44 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 22:22:46 2014 -0700"
      },
      "message": "Enable -Wimplicit-fallthrough.\n\nFalling through switch cases on a clang build must now annotate the fallthrough\nwith the FALLTHROUGH_INTENDED macro.\nBug: 17731372\n\nChange-Id: I836451cd5f96b01d1ababdbf9eef677fe8fa8324\n"
    },
    {
      "commit": "13735955f39b3b304c37d2b2840663c131262c18",
      "tree": "0a731ac42b8230f9929172fa3e3d8051874e2b18",
      "parents": [
        "25b18bbdaa36ff936eb44f228f0518d4223e9d52"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 12:43:28 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 16:05:58 2014 -0700"
      },
      "message": "stdint types all the way!\n\nChange-Id: I4e4ef3a2002fc59ebd9097087f150eaf3f2a7e08\n"
    },
    {
      "commit": "31d8f5295c24730a57cb36cbc41197f0b7e8397c",
      "tree": "e37953f590f924e06b9905f922407559a3661cb6",
      "parents": [
        "8283e079a209e81caafd123a12a525922368fd34"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 29 11:22:54 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 30 21:49:43 2014 -0700"
      },
      "message": "Add VMRuntime.isBootClassPathOnDisk\n\nBug: 17679443\n\n(cherry picked from commit 95a935415d44903b28326424beb4db5c013ef089)\n\nChange-Id: Iba40291dead3f0b6715903c986370fd0cf1e41e1\n"
    },
    {
      "commit": "c0d8229898c44c0f604f08a5df1de83ff56c18fd",
      "tree": "13b150e68e806204c547e04bc071246c06199c37",
      "parents": [
        "c70535b4f9f1ff3e3da451734bb7d9601012ccc1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 23 10:38:30 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 29 11:40:16 2014 -0700"
      },
      "message": "ART: Better IllegalAccessException message\n\nBug: 17618578\nBug: 17614623\nChange-Id: I0e3f15e676acd6ed5844fc86e136f75cc335372d\n"
    },
    {
      "commit": "76433275dbe39e5ced1c223b006d1b900b1937f6",
      "tree": "a72c101defa86ceff8b633cf2eaa606c87f783eb",
      "parents": [
        "88adf36315237947d3a5d10b28fdf8b9da7794a4"
      ],
      "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 Sep 26 19:54:39 2014 -0700"
      },
      "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\n\n(cherry picked from commit ffc788cb7b5b9f53734d7bb8af2d5e45d885546b)\n\nChange-Id: I2441581ff3478c6ae43b6aa49939ff3f07555ec8\n"
    },
    {
      "commit": "9ef78b59da51080882e47505896b420977fd79ae",
      "tree": "6c568756e4e16e68d5d3346261009350969d5b77",
      "parents": [
        "95f03e6a4737f90685fab86e98709f1c4393d5ef"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 25 17:03:12 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 26 16:04:56 2014 -0700"
      },
      "message": "Fix broken runtime SetStatsEnabled logic\n\nPreviously, Runtime::SetStatsEnabled wouldn\u0027t take stats_enabled_\ninto account when deciding whether or not to increment / decrement\nteh stats enabled counter. This resulted in counter underflows and\nother errors which caused some CTS tests to fail.\n\nAlso added some locking to prevent race conditions.\n\nBug: 17360878\n\n(cherry picked from commit a98ffd745bbecb2e84a492194950c0b94966546b)\n\nChange-Id: I21d241a58d35bd6a607aa2305c6da81720bd0886\n"
    },
    {
      "commit": "f0edfc355893d53d1104b05501c99ad5ccf305c4",
      "tree": "7e1fa49875759512f5d02b1c45435d3e3366b920",
      "parents": [
        "1ed5b27ee329208fd8ae22b8a9a61d708e2c1ffb"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 25 11:46:46 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 25 15:53:54 2014 -0700"
      },
      "message": "Some optimizations for the array alloc path.\n\n- Force Array::Alloc() to be inlined.\n- Simplify the array size overflow check.\n- Turn fill_usable into a template parameter.\n- Remove a branch in Array::DataOffset() and avoid\n  Primitive::ComponentSize(), which has a switch, in the array alloc\n  path.\n- Strength reductions in the array size computation by using component\n  size shifts instead of component sizes. Store component size shift\n  in the upper 16 bits of primitive_type field.\n- Speedup: ~4% (3435-\u003e3284) in MemAllocTest on N4.\n\nBug: 9986565\n\nChange-Id: I4b142ffac4ab8b5b915836f1660a949d6442344c\n"
    },
    {
      "commit": "a460bb07bb9000c6e299ee5cfa8e788d0fbd15f2",
      "tree": "c9b117702aca4d52506ed372e41c5b7fef5244e2",
      "parents": [
        "5957d54ac0de8a318dbc5a163734f877b1185e38",
        "a6da74e941d7cee498ac3880018a1d8dc953c6eb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 24 22:00:11 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 24 22:00:12 2014 +0000"
      },
      "message": "Merge \"ART: Update for split native bridge initialization\""
    },
    {
      "commit": "e8e39895249d24c9fe6f4eb0afa78b39ce0648bb",
      "tree": "cfb5bd0305dddd937ba211a0a7fbdbdfe519864b",
      "parents": [
        "c0d36abb12cdbb9469039c1dc153a586bd984015"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 23 13:53:28 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 24 09:35:17 2014 -0700"
      },
      "message": "Restore kReasonLogging for kDexoptNeeded and kPatchoatNeeded\n\nBug: 17565501\n\n(cherry picked from commit 63582f211b7123d02f18dfa7075f6758ccb2b07c)\n\nChange-Id: Ie1196191d92286e543ed099c7d1ea4712802912d\n"
    },
    {
      "commit": "a6da74e941d7cee498ac3880018a1d8dc953c6eb",
      "tree": "bb36d90e914f8a842abd7dd854ba168f9441e8db",
      "parents": [
        "a20b7b3ecf90bb761d7085403782721f2fb474c5"
      ],
      "author": {
        "name": "jgu21",
        "email": "jinghui.gu@intel.com",
        "time": "Wed Sep 10 06:57:17 2014 -0400"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 23 20:11:31 2014 -0700"
      },
      "message": "ART: Update for split native bridge initialization\n\nChange-Id: I0b93da93251c6b4638de786bf98cf99df07c3fc2\n"
    },
    {
      "commit": "3c13a794845e0cf7887e33b2ec20de7e6ba85f8f",
      "tree": "ab9a9a426a371de0c32e48a85fdda44a321a06a0",
      "parents": [
        "5cdd0734d2f79eedc530f5f1e876cd2110e29c86"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 20:56:04 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 23:43:07 2014 -0700"
      },
      "message": "ART: Only allow the zygote to create the global boot image\n\nDo not allow arbitrary processes, even when root, to write the\nboot image in /data/dalvik-cache.\n\nBug: 17478752, 17510489, 17439961\nChange-Id: Iba2b74be6d0752f4221f4ff5ee295b45a34cb2e1\n(cherry picked from commit 33c36d4f22ab6a5e61eb47b654deaf647c34e49c)\n"
    },
    {
      "commit": "69dbec6d9d55eeb2867949c2791d01dc9aa916c8",
      "tree": "be4eca8161eafb4a8466f5adf28a2c8f27cd37d1",
      "parents": [
        "926d8e99aa69151a271180299df68963688010d8"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Sep 15 18:03:41 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 17 14:31:55 2014 -0700"
      },
      "message": "Avoid suspending for alloc trace enabling when already suspended.\n\nBug: 17499772\n\n(cherry picked from commit 1d6ee090fddd4bfd35c304d6ceb929d5c529dfcc)\n\nChange-Id: Id09809c476c685f0a197ee75bb08638931364efd\n"
    },
    {
      "commit": "a5a53efea976af505f4f849b5925d5e14c4f8e5c",
      "tree": "455a536a9394908c17ec1ede04ab7ec49f9d3420",
      "parents": [
        "91bbd5347b391278b56440b2dbb0b77526bae4e8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 12 12:58:05 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Sep 14 14:48:24 2014 -0700"
      },
      "message": "Add native support for FinalizerList.makeCircularListIfUnenqueued\n\nCalled from FinalizerReference.enqueueSentinelReference to prevent\na race where the GC updates pendingNext of the sentinel reference\nbefore enqueueSentinelReference.\n\nBug: 17462553\n\n(cherry picked from commit 3256166df40981f1f1997a5f00303712277c963f)\n\nChange-Id: I7ad2fd250c2715d1aeb919bd548ef9aab24f30a2\n"
    },
    {
      "commit": "7b078e8c04f3e1451dbdd18543c8b9692b5b067e",
      "tree": "414229c6b87eb20ea24c40780752da5a3999a49a",
      "parents": [
        "f79ba17defbd9342e44ab9f3de0807054673d3c9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 10 14:44:24 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 12 14:57:53 2014 -0700"
      },
      "message": "Compile time performance improvements focusing on interpret-only.\n\nReduce virtual method dispatch in the method verifier and make more code\ninline-able.\nAdd a StringPiece with const char* equality operator to avoid redundant\nStringPieces and strlens.\nRemove back link from register line to verifier and pass as argument to reduce\nsize of RegisterLine.\nRemove instruction length from instruction flags and compute from the\ninstruction, again to reduce size.\nAdd suspend checks to resolve and verify to allow for more easy monitor\ninflation and reduce contention on Locks::thread_list_suspend_thread_lock_.\nChange ThrowEarlierClassFailure to throw pre-allocated exception.\nAvoid calls to Thread::Current() by passing self.\nTemplate specialize IsValidClassName.\nMake ANR reporting with SIGQUIT run using checkpoints rather than suspending\nall threads. This makes the stack/lock analysis less lock error prone.\nExtra Barrier assertions and condition variable time out is now returned as a\nboolean both from Barrier and ConditionVariable::Wait.\n\n2 threaded host x86-64 interpret-only numbers from 341 samples:\nBefore change: Avg 176.137ms 99% CI 3.468ms to 1060.770ms\nAfter change: Avg 139.163% 99% CI 3.027ms to 838.257ms\nReduction in average compile time after change is 20.9%.\nSlow-down without change is 26.5%.\n\nBug: 17471626 - Fix bug where RegTypeCache::JavaLangObject/String/Class/Throwable\ncould return unresolved type when class loading is disabled.\nBug: 17398101\n\nChange-Id: Id59ce3cc520701c6ecf612f7152498107bc40684\n"
    },
    {
      "commit": "ab0ed82ff64ba5a751dcc0a38d0e0c41c53dc923",
      "tree": "c67cceb67994868c42cc16ab8416fa93b56ce682",
      "parents": [
        "3fec7718041302f769995eedda9beef362131842"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 11 14:21:41 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 11 18:04:33 2014 -0700"
      },
      "message": "Add fast path to VMClassLoader.findLoadedClass\n\nVMClassLoader.findLoadedClass now calls FindClassInPathClassLoader\nas a fast path. Exclusive time results (trace view maps launch):\n\nBefore:\nnativeFillInStackTrace 1.4%\ndefineClassNative 1.2%\nfindLoadedClass 0.2%\n\nAfter:\nnativeFillInStackTrace 0.5%\ndefineClassNative 0.0%\nfindLoadedClass 0.9%\n\n(cherry picked from commit 194116c836080de14245a3a7c4617d07b8abf8cf)\n\nChange-Id: I63fd7b4bccb71789e92bd39d1d3f9d0de22535de\n"
    },
    {
      "commit": "cd48f2d86197d4fe87cc88077bc4af5ba66e5295",
      "tree": "a678a9eafd72d80cb6d7581b99cc11bc9cf64911",
      "parents": [
        "5bc47ebe278af65e8e2a2d6b603ac94a020285f7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 09 13:51:09 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 09 13:51:09 2014 -0700"
      },
      "message": "Change Reference.get() intrinsic to Reference.getReferent().\n\nThe reference intrinsic was incorrectly inlining\nPhantomReference.get(). We now get around this by adding a\nlayer of indirection. Reference.get() now calls getReferent()\nwhich is intrinsified and inlined.\n\nRequires:\nhttps://android-review.googlesource.com/#/c/107100/\n\nBug: 17429865\nChange-Id: Ie91e70abf43cedf3c707c7bb8a5059e19d2a2577\n"
    },
    {
      "commit": "0e59bf8b767e9be7ea22c67011ea902d597fe43f",
      "tree": "bf6fbf9900ecf85d331023341af7908642825b23",
      "parents": [
        "552da6697f77b1d94a69b0ba54509a25a0de3ae7",
        "6be67eeedbe60afce42300ae3e7f0e7180a96efa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 04 21:47:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 04 21:47:08 2014 +0000"
      },
      "message": "Merge \"ART: Change ART for new native bridge sequence\""
    },
    {
      "commit": "6be67eeedbe60afce42300ae3e7f0e7180a96efa",
      "tree": "404ed85d5c31744e66405d0147d9f14a67887428",
      "parents": [
        "47e877ab2d6744f4360d37f179eb5affd6a46470"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 02 21:22:18 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 04 12:46:09 2014 -0700"
      },
      "message": "ART: Change ART for new native bridge sequence\n\nInitialize or unload after a fork.\n\nChange-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67\n"
    },
    {
      "commit": "8ec31f9835a8d1513be9be7f9fa236fe4715750d",
      "tree": "2b161b3683e559c66ae1926250583165499862e9",
      "parents": [
        "badae981ada1fa279e54360df177ab6f40c299b9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 03 10:30:11 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 03 21:35:32 2014 -0700"
      },
      "message": "Fix native allocation watermark clamping.\n\nThe main issue causing the test to fail is that\nnative_footprint_gc_watermark_ becoming \u003e growth_limit_ due to no\nclamping.\n\nTemporary runFinalization fix is calling runFinalization 2x.\n\nBug: 17371542\n\n(cherry picked from commit 4c7fc5950853b0c368e2148db77ced7c4d3c303c)\n\nChange-Id: I05b85e95560c32c33d53bc96abf87d5262007395\n"
    },
    {
      "commit": "ba32de47e32f436d7c11cb4a2e78bdd4ad4dc5d2",
      "tree": "1b56397dfce317d2034feebfb2191bcb09b78823",
      "parents": [
        "14515d738dadf88e3e00b7dd1bd69899c4df4b91"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 27 23:43:46 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 28 15:37:27 2014 -0700"
      },
      "message": "Fix issue with Thread.setName hanging after Thread.start\n\nWhen suspending a thread by peer the invariant that only attached threads are\nsuspended must be maintained. Add a ThreadList::Contains check which requires\nmaking this method non-static.\nAdd some extra thread logging.\n\nBug: 17302037\n\n(cherry picked from commit 37c16453a92bbf1a47f042000318a1b60381017d)\n\nChange-Id: I51832785d4b4b431e035318e75635f442e89a1fb\n"
    },
    {
      "commit": "20c89303a9d89ba857bf969ad14a31f12c3be878",
      "tree": "b7072ce69f3c6896e70e84cfb7ae1058e7e7a55f",
      "parents": [
        "192da5675b2e219f26a107bd7b60c755cd46ba74"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 19 17:28:06 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 20 15:25:48 2014 -0700"
      },
      "message": "ART: Relax GetInstructionSetFromString\n\nDo not abort on an unknown instruction set string. Instead return\nkNone and let the caller handle this.\n\nAlso simplify the patchoat tool to use this.\n\nBug: 17136416\n\n(cherry picked from commit aabbb2066a715b3fd8e752291f74c6d77b970450)\n\nChange-Id: I24131914bcf91c04ae93179bf809a2907f1f2b7a\n"
    },
    {
      "commit": "0d334ce54efd791da14536b6a16f61d9085b8785",
      "tree": "1ae8dda45a1d253dd5aced580850bce5f5481923",
      "parents": [
        "70acd53dafbd74d3cd72924216e438fce820beb1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 13 23:05:38 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 14 09:12:38 2014 -0700"
      },
      "message": "ART: Fix another potential N-th visitor issue\n\nBug: 16867274\n\n(cherry picked from commit ab61295e55c38072095e498053b8f5bebf46ad63)\n\nChange-Id: I5466af563032041ef4a547894f40f303871302c6\n"
    },
    {
      "commit": "718ac65aa78403124c2269f0dcadd341a18b8efe",
      "tree": "64bc497fb0366c7df8464c972601132e84579954",
      "parents": [
        "e8bf3df2bcc61c12a7e66b4995a083f9ed3939e0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 11 18:51:53 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 13 22:19:48 2014 -0700"
      },
      "message": "ART: Tolerate shallow call stack in VMStack_getCallingClassLoader\n\nWhen the call stack does not have the three methods we expect,\nthe visitor will return a nullptr value.\n\nAdd a test to JniTest (and refactor the test a little for code reuse).\n\nBug: 16867274\n\n(cherry picked from commit 61bf6a1c80bf797af5d7911ff71fc367fdb36742)\n\nChange-Id: I5fb8f91f372a41e0bc11ef9f70640834591afa53\n"
    },
    {
      "commit": "4fcdc94d22a4608e355aa8df36240181149d10e8",
      "tree": "cb600df7e9b585720c03a08b10509151aa96d5dd",
      "parents": [
        "b66252112d45fd24eab85122fa8902afd1324542"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 22 10:48:00 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 13 18:01:51 2014 +0100"
      },
      "message": "Execute an application even when dex2oat crashes.\n\nBug: 17000769\n\nChange-Id: Iffeb582862a5e794b6c7364c7ec2368cfd0f2214\n"
    },
    {
      "commit": "1ff3c98775a4577cf053dba9a0c2d5c21c07b298",
      "tree": "2d09c27c69678b53b4c9dc486024f3547efd4bca",
      "parents": [
        "99c251bbd225dd97d0deece29559a430b12a0b66"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 12 02:30:58 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 12 16:08:05 2014 -0700"
      },
      "message": "Avoid use of std::string where we have const char*.\n\nRemoving the ClassHelper caused std::string creation for all calls to\nClass::GetDescriptor and a significant performance regression. Make the\nstd::string an out argument so the caller can maintain it and its life time\nwhile allowing GetDescriptor to return the common const char* case.\n\nDon\u0027t generate GC maps when compilation is disabled.\n\nRemove other uses of std::string that are occuring on critical paths.\nUse the cheaper SkipClass in CompileMethod in CompilerDriver.\nSpecialize the utf8 as utf16 comparison code for the common shorter byte\nencoding.\nForce a bit of inlining, remove some UNLIKELYs (they are prone to pessimizing\ncode), add some LIKELYs.\n\nx86-64 host 1-thread interpret-only of 57 apks:\nBefore: 29.539s\nAfter: 23.467s\n\nRegular compile:\nBefore: 1m35.347s\nAfter: 1m20.056s\n\nBug: 16853450\nChange-Id: Ic705ea24784bee24ab80084d06174cbf87d557ad\n"
    },
    {
      "commit": "1d84f85cfd5693cea6872cff326b7ba881ebf7d9",
      "tree": "b976c8c975ac8d66a50eef5a98a850802d76baad",
      "parents": [
        "fa5ca01dafbed01ea46226a9cf8ddeb2de2920b7",
        "68d8b42ddec39ec0174162d90d4abaa004d1983e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 08 17:48:58 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 08 17:27:05 2014 +0000"
      },
      "message": "Merge \"Wire up check JNI force copy mode.\""
    },
    {
      "commit": "68d8b42ddec39ec0174162d90d4abaa004d1983e",
      "tree": "0bb6ccf3b996bb8363c10d07aa39cde221980602",
      "parents": [
        "9c522c2cbbf50dc687728747b37ad59985750b65"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 17 11:09:10 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 08 08:29:53 2014 -0700"
      },
      "message": "Wire up check JNI force copy mode.\n\nIncrease check JNI checks.\nBreak apart jni_internal.h in to jni_env_ext.h and java_vm_ext.h.\nFix the abuse of ScopedObjectAccess/annotalysis by ScopedCheck in the case\nof VM routines.\nMake class loader override and shared library class loader JNI global\nreferences rather than mirror pointers.\nClean-ups to native bridge.\n\nChange-Id: If7c6110b5aade7a402bfb67534af86a7b2cdeb55\n"
    },
    {
      "commit": "202d1f0fd21260216cead743376c6eb4de0f7298",
      "tree": "6efb6b2e54178c3dd0a65da310f2f3330ff3e7b0",
      "parents": [
        "147594f8815ed0982d7e5676dc8b6fed5a0ba9e6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Aug 08 16:19:44 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Aug 08 16:43:39 2014 +0100"
      },
      "message": "Use the right instruction set for checking dex-cache staleness.\n\nWe should use the instruction set we\u0027re asked to use, and not\nthe instruction set of the current runtime.\n\nbug: 16876489\n\n(cherry picked from commit 24e928bddaf8b4af6cdf6d64a7c35bfde059995c)\n\nChange-Id: I07901f059f9966b961e76bc055eaa04ea0227824\n"
    },
    {
      "commit": "a2069c7152eb46e8c64b4c8d7e19e5fab5de6df4",
      "tree": "9f4d36211f527ab4c03e126187732a9fd71151bf",
      "parents": [
        "484e2c2d3531e5bb36f0e1e12f26c708939c6579"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Aug 06 19:07:41 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Aug 06 20:10:36 2014 +0100"
      },
      "message": "Revert \"Rename openDexFileNative to openDexFile.\"\n\nhttps://android-review.googlesource.com/#/c/103383/ introduces\nabsolute paths so we need back the old method name\n\nBug: 16644204\n\nThis reverts commit 350b626eb1cfbaee7619e9453a4c018c07aed003.\n\nChange-Id: I10f430a536bb1906a8452fea5846ec9e725e84bd\n"
    },
    {
      "commit": "6e183f2e973a20f2eaca135c240908e1bf98c5d0",
      "tree": "8a989eb8dbaca6a2c505569784740f9581fe7e98",
      "parents": [
        "eb76e11d836ea953b4e40a28e3e69d3b0f4c86fa"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 18 14:57:04 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 05 10:22:08 2014 -0700"
      },
      "message": "Make system use patchoat to relocate during runtime.\n\nChange dalvik_system_DexFile.cc so that isDexOptNeededInternal will be\nable to indicate that a patchoat is required. Change default of relocate\noption to be on.\n\nBug: 15358152\n\nChange-Id: Ibe92d8b55a24bbf718b0416a21b76e5df7a2de26\n"
    },
    {
      "commit": "108437eb35895e7fd461b131c6ceb383a7ca6ca2",
      "tree": "799dd4a1415be4acf1043c27b5785ee0893490b5",
      "parents": [
        "7906b25f79f24af3a8b8eee0454b4db1278b9b77"
      ],
      "author": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Thu Jul 03 17:07:45 2014 +0700"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Aug 04 17:42:00 2014 +0100"
      },
      "message": "Inform about System.exit() call in logcat\n\nThis diagnostic message helps to filter out crashes during System.exit()\nwhen thread\u0027s behaviour is undefined.\n\nChange-Id: I772932a35b503b1efca695e7da7bf2e562c03a7c\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\n"
    },
    {
      "commit": "350b626eb1cfbaee7619e9453a4c018c07aed003",
      "tree": "f2994cca6435c728c9f041dc9e9a7ec64f106398",
      "parents": [
        "e2f654a463976f811c5358fc0de68c0492601274"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 16 17:55:55 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jul 25 14:52:47 2014 +0100"
      },
      "message": "Rename openDexFileNative to openDexFile.\n\nWe no longer need two distinct methods.\n\nBug: 15563230\n\n(cherry picked from commit 8edcb9c8bc62fcbd181e136c32086f2b970306a4)\n\nChange-Id: Ib95098af0dd26733b5946d8e24ae4dfbcdbec3ba\n"
    },
    {
      "commit": "cb8f9e8a2941971c049b26745ea713c859342d9b",
      "tree": "c1600a19f134f45ecb8f4feea8c543df751f348f",
      "parents": [
        "80b3f96ec1e408f34b8e7b76b14774794fa1abd8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 24 15:35:50 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 24 15:35:50 2014 -0700"
      },
      "message": "ART: Account for multidex location strings in VMClassLoader\n\nTo look up resources, look in the unadorned location.\n\nBug: 16530747\nChange-Id: Ia97e39366444f6666a78ade7298d3c22b4b79f8a\n"
    },
    {
      "commit": "c114b5fbc91e6d19ef430d9bc3468386ca61b324",
      "tree": "209973deaf02fdcccabc6e2c52a6db5df512aed9",
      "parents": [
        "a6d4bc19b0f68286862ce315377aaeb1e26a726b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 21 08:55:01 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 21 08:55:01 2014 -0700"
      },
      "message": "Fix erroneous behaviors with OOME present.\n\nBug: 16454510\nChange-Id: I757088a7b82ff73f58aba8d357080028b56442e6\n"
    },
    {
      "commit": "f3d874c60ee3ada19ce26a5c4e532312b6f3a9e9",
      "tree": "de14ab8b610f43a2c2c4c02f4ac67d614919fde2",
      "parents": [
        "031ddea20cb311dfdb3bd16a13750f9cb426b299"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 17 18:52:42 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 17 18:59:40 2014 -0700"
      },
      "message": "Avoid race in single thread suspension.\n\nDon\u0027t allow more than one concurrent single thread suspension to avoid\npotential cycles and deadlocks where threads try to suspend each other.\nBug: 16364458, 16354227\n\nChange-Id: I907f1d5591a6aa5c241d37d6b4a34f968f98df77\n"
    },
    {
      "commit": "22d5e735f403c57525fe868304c7123f0ce66399",
      "tree": "2458684efa56f0b800dd75a9dedd0449f76f581f",
      "parents": [
        "fbde4dd1cb6db729e3f3ee5bdae0cdd824d73054"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 22:23:51 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 16 06:13:46 2014 -0700"
      },
      "message": "Remove object_utils.h.\n\nBreak into object_lock, field_helper and method_helper.\nClean up header files following this.\nAlso tidy some of the Handle code in response to compiler errors when resolving\nthe changes in this CL.\n\nChange-Id: I73e63015a0f02a754d0866bfaf58208aebcaa295\n"
    },
    {
      "commit": "9531f62ef260cbd0d0512e4c96f5d5dd2f4fdbb2",
      "tree": "709512d91bb357131ec9d0881826b7b43d08e95e",
      "parents": [
        "f08f0ca4b9538bff516f354532ced57cf077da66",
        "d8434439dc64add41cdfa69ddf96b960af9050de"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Sat Jul 12 01:07:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 11 23:26:34 2014 +0000"
      },
      "message": "Merge \"Call strong CAS from unsafe. Add more CAS versions.\""
    },
    {
      "commit": "d8434439dc64add41cdfa69ddf96b960af9050de",
      "tree": "f1d90394dc3b11fd80397ff702413c8710cf1a65",
      "parents": [
        "3d71f321f4b87ba13113dc0457fd9c3470a2b380"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jul 11 09:56:07 2014 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jul 11 16:50:37 2014 -0700"
      },
      "message": "Call strong CAS from unsafe. Add more CAS versions.\n\nAdds a number of additional CAS versions.  Calls the correct\none from sun.misc.unsafe, fixing a recently introduced bug.\nAvoid unnecessary ordering constraint when installing hash code.\n\nChange-Id: I7c09d0c95ceb2a549ec28ee34084198ab3107946\n"
    },
    {
      "commit": "98d1cc8033251c93786e2fa8c59a2e555a9493be",
      "tree": "f0a76b8fff060ee484af09028da65a8339d57057",
      "parents": [
        "aebf3cda094f34cf846d19a7724bdc8005267c95"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 15 17:02:16 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jul 11 17:17:10 2014 -0700"
      },
      "message": "Improve performance of invokevirtual/invokeinterface with embedded imt/vtable\n\nAdd an embedded version of imt/vtable into class object. Both tables start at\nfixed offset within class object so method/entry point can be loaded directly\nfrom class object for invokeinterface/invokevirtual.\n\nBug: 8142917\nChange-Id: I4240d58cfbe9250107c95c0708c036854c455968\n"
    },
    {
      "commit": "228602f562f1d130d06e60a98752d99c2d467d6a",
      "tree": "ee5b543695843ce48ebec4ffc88514ff679f4e93",
      "parents": [
        "be2a1df15a31a5223ee9af3015a00c31d2ad2e10"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 10 02:07:54 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 10 02:07:54 2014 -0700"
      },
      "message": "Make CAS operations in Object use art::Atomic.\n\nMake naming consistent with art::Atomic.\n\nChange-Id: If3abdb019ef8b53bd809e3fef3fd5248aeb27e9a\n"
    },
    {
      "commit": "0f635b103c1fff6439d47bdae363afeffe7327fd",
      "tree": "afa160b8c3b850e5189a1bfa06065faee54eccaf",
      "parents": [
        "32710dd4a0232149002a5ae7bde1c640cdffd564",
        "bae182cbc6adc8796154162a87fc54ae804e0469"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 09 18:52:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 09 14:50:30 2014 +0000"
      },
      "message": "Merge \"Fix method tracing from command-line\""
    },
    {
      "commit": "bae182cbc6adc8796154162a87fc54ae804e0469",
      "tree": "d5c1fdb048edab194e948e4e90bff66703c5f55e",
      "parents": [
        "0c1734665c38b3116e38a90ad06c3f152d9316c5"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Dec 17 10:42:03 2013 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Jul 09 16:10:45 2014 +0200"
      },
      "message": "Fix method tracing from command-line\n\nTransitions current thread to the new kWaitingForMethodTracingStart thread\nstate when starting method tracing.\n\nEnsures there is a current thread when method tracing is stopped due to runtime\nshutdown. If the current thread has been detached, we now re-attach it.\nNote: we only do this if method tracing has been activated from command-line.\n\nFixes instrumentation when forcing interpreter mode (-Xint) with method tracing\nenabled.\n\nRemoves unused parameter from UnsafeLogFatalForThreadSuspendAllTimeout.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d72094\nBug: 11683397\nChange-Id: I70f000fb46ddd95d6ad51ea0a8eee77697a045e9\n"
    },
    {
      "commit": "b2c369f74f5e4b3bae1cd4b0e251e17e26254f86",
      "tree": "ba285229997e04d47eeb7612e5de9bcf579e8cb3",
      "parents": [
        "fee5586dac3bf22a31dbbffe7b4ca7e978e53185",
        "d735fe4988f93ceb1c3e4b33de5b4b92fdd66385"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jun 26 20:27:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 26 18:02:05 2014 +0000"
      },
      "message": "Merge \"Expanded native code to use arraycopy for specific data types.\""
    },
    {
      "commit": "833a48501d560c9fa7fc78ef619888138c2d374f",
      "tree": "add308298a5486d44caddea120cc9200dd70c38a",
      "parents": [
        "b849f6dd638fd1246724160cd5c01ab1a5ff33bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 21 18:46:59 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 25 19:34:58 2014 -0700"
      },
      "message": "ART: Native support for multidex\n\nNative support for zip files with multiple classesX.dex.\n\nWorks by explicitly looking for those files in ascending order. As\nthese files have no file system representation for themselves,\nintroduce synthetic dex locations: the name of the originating file\nplus a colon plus the name of the dex file, e.g., test.jar:classes2.dex.\n\nOpening a zip dex file will return all dex files in this way. This\nkeeps the changes to dex2oat minimal.\n\nTo hide multidex/synthetic names from the Java layer, let the handle\nof dalvik.system.DexFile refer to a vector of DexFile objects. When\nopening a location, test possible synthetic names and add them to the\nvector. Thus, the original multidex jar in the classpath will be\nassociated with all embedded dex files.\n\nChange-Id: I0de107e1369cbc94416c544aca3b17525c9eac8b\n"
    },
    {
      "commit": "d735fe4988f93ceb1c3e4b33de5b4b92fdd66385",
      "tree": "51ac0f2fecc4d79d8dcddddadfcaca6d1883e761",
      "parents": [
        "0cfcd2e480e92104657c36b2f0075e56ecd697fb"
      ],
      "author": {
        "name": "Emma Meersman",
        "email": "emeersman@google.com",
        "time": "Wed Jun 18 11:50:59 2014 -0700"
      },
      "committer": {
        "name": "Emma Meersman",
        "email": "emeersman@google.com",
        "time": "Fri Jun 20 11:45:40 2014 -0700"
      },
      "message": "Expanded native code to use arraycopy for specific data types.\n\nBug: 7103825\nChange-Id: I09a78701c966064f592948d83dedd2f58214bed8\n"
    },
    {
      "commit": "7bfa86ddf31a961a61e2994fe771345acd1717b4",
      "tree": "8799c7a20c34c311706b3db5978b3d77cc913994",
      "parents": [
        "3a7a8d18a01c6930b9bcf3897762af301b25e8ca"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 11 18:29:07 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 11 18:29:07 2014 -0700"
      },
      "message": "consolidate profiles and profile-cache\n\nOwnership problems originally prevented using the same directory\nfor /data/dalvik-cache/profiles and /data/dalvik-cache/profile-cache.\nNow that ownership is assigned via init.rc, we can consolidate these\ntwo directories.\n\nOld profile files are stored in /data/dalvik-cache/profiles/ with\nthe \"@old\" extension. We use \"@\" instead of \".\" to avoid conflicts\nshould someone create a package ending in \".old\".\n\nChange-Id: Ic1b44009faa30d704855e97631006c4b990a4ad3\n"
    },
    {
      "commit": "c5f17732d8144491c642776b6b48c85dfadf4b52",
      "tree": "811daa488ae5ee5dfd9b3b73bd210bc1506e5ca1",
      "parents": [
        "08654d40cdd256f6a6c8619bf06d04d4c819714a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 05 20:48:42 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 10 23:19:29 2014 -0700"
      },
      "message": "Remove deprecated WITH_HOST_DALVIK.\n\nBug: 13751317\nFix the Mac build:\n - disable x86 selector removal that causes OS/X 10.9 kernel panics,\n - madvise don\u0027t need does zero memory on the Mac, factor into MemMap\n   routine,\n - switch to the elf.h in elfutils to avoid Linux kernel dependencies,\n - we can\u0027t rely on exclusive_owner_ being available from other pthread\n   libraries so maintain our own when futexes aren\u0027t available (we\n   can\u0027t rely on the OS/X 10.8 hack any more),\n - fix symbol naming in assembly code,\n - work around C library differences,\n - disable backtrace in DumpNativeStack to avoid a broken libbacktrace\n   dependency,\n - disable main thread signal handling logic,\n - align the stack in stub_test,\n - use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables.\n\nNot all host tests are passing on the Mac with this change. dex2oat\nworks as does running HelloWorld.\nChange-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3\n"
    },
    {
      "commit": "c2bb441a65c5d1dd0b73d04489514ab09bd53c8a",
      "tree": "a19fbf8372a40441812facb27ec0f661bf395f7c",
      "parents": [
        "4479ba35389b03ccc9eabd17fba6168f9505517a",
        "3035961cb41865b80b927546be0c708b6389cec6"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jun 06 23:45:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 06 23:45:52 2014 +0000"
      },
      "message": "Merge \"Clean up and augment Atomic class.  Replace QuasiAtomic MemBars.\""
    },
    {
      "commit": "4479ba35389b03ccc9eabd17fba6168f9505517a",
      "tree": "fb8091b4637b27d8a9d3d4f390b79263a12d9881",
      "parents": [
        "081203e06534e4aa27a942e47084289eecab29ed",
        "61c5ebc6aee2cac1c363de6fbdac25ada1697fdb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 06 23:37:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 06 23:37:27 2014 +0000"
      },
      "message": "Merge \"Change FieldHelper to use a handle.\""
    },
    {
      "commit": "3035961cb41865b80b927546be0c708b6389cec6",
      "tree": "27ed39f92c013381d08c7ad51d311cb29be230dc",
      "parents": [
        "e21bf0099117b82963cdf7f95a1b8dabfcf29397"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed May 21 17:46:23 2014 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jun 06 16:13:42 2014 -0700"
      },
      "message": "Clean up and augment Atomic class.  Replace QuasiAtomic MemBars.\n\nAdd a number of missing C++11 operations to Atomic class.\nInvoke the 64 bit routines in QuasiAtomic when necessary.\nReplace QuasiAtomic membars with fences that correspond to C++11 fences.\n\nQuasiAtomic was moved to the top of the file.  Only fence implementations\nactually changed.\n\nThis replaces some buggy uses of MembarStoreStore, as reported\nin b/14685856 .\n\nAvoid some redundant fences for long volatile operations.\n\nIncompletely converts low-level memory access operations to Atomic.\n\nChange-Id: Iea828431a0cea46540eb74fcaa02071cab6fdcda\n"
    },
    {
      "commit": "61c5ebc6aee2cac1c363de6fbdac25ada1697fdb",
      "tree": "444936c3e3718b692ba7f1981b863190f26b4ed7",
      "parents": [
        "25c4f6a25b3de9b9d7ca5162f1629753a0b7f003"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 05 17:42:53 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 06 13:12:17 2014 -0700"
      },
      "message": "Change FieldHelper to use a handle.\n\nFixed compaction bugs related to FieldHelper::GetType in:\nartSet32InstanceFromCode\nSetFieldValueImpl\nCheckReceiver\nField_set\ninterpreter::DoFieldPut\nMethodVerifier::VerifyISGet\nMethodVerifier::VerifyISPut\nMethodVerifier::VerifyIGetQuick\n\nBug: 13077697\n\nChange-Id: I7de9ded2893b5568d43e4daa86fd135bf5508b72\n"
    },
    {
      "commit": "20aa7cbe93d782e0e756a36e70d610fe84b4bbb4",
      "tree": "cfaaa9770d5ddbc1034b2c9770a12e6ff4d19b7b",
      "parents": [
        "eab52e3318dd0ab0f357a8420f0a8ccea69d61f1",
        "c1b643cc6ac45dbd0eabdcd7425c7e86006c27d6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 06 11:15:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 06 11:15:25 2014 +0000"
      },
      "message": "Merge \"Fixed and refactored profiler options handling\""
    },
    {
      "commit": "c1b643cc6ac45dbd0eabdcd7425c7e86006c27d6",
      "tree": "250455427da979409a075a2b3197bd43ccd40fe1",
      "parents": [
        "bb0b53f58f11c628f077603b56077dfed1a18f11"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri May 30 23:44:11 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 06 12:14:01 2014 +0100"
      },
      "message": "Fixed and refactored profiler options handling\n\n- extracted profiler options in a separate class\n- switched from system property reading to command line arguments\n- added profile based compilation options to CompilerOptions\n- removed no longer used kProfile compilation filter\n- optimize dex files only if the profiler is enabled\n- clean up unused arguments\n\nBug: 12877748\nBug: 15275634\nChange-Id: I37ff68e7694370950ce8db2360562e9058ecebb7\n"
    },
    {
      "commit": "eab52e3318dd0ab0f357a8420f0a8ccea69d61f1",
      "tree": "c6ab37ecf7f7500d742a390a4d70900f2a3ccb95",
      "parents": [
        "7a6b77f9a694ea4569fbf44493fdcaeea237a8be",
        "bb0b53f58f11c628f077603b56077dfed1a18f11"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 06 10:58:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 06 10:58:11 2014 +0000"
      },
      "message": "Merge \"Clean up the sampling profiler\""
    },
    {
      "commit": "bb0b53f58f11c628f077603b56077dfed1a18f11",
      "tree": "013482db95e8f2dcb7c7be85fc8f35df2c7f1361",
      "parents": [
        "e4283be97047a26d3476acd3863dcc386498be17"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri May 23 17:33:29 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 06 11:53:28 2014 +0100"
      },
      "message": "Clean up the sampling profiler\n\n- rename variables/fields names to match the code style (use\n_underscore_names_)\n- extract common property parsing in utils.cc\n- fail to load profile file if any line is malformed\n- added ProfileFile to manage the profile data generate in the previous\nruns (replaces ProfileHelper and nests ProfileData)\n\nBug: 12877748\nChange-Id: Ie7bda30bfdeb7e78534c986615b0649eac12a97b\n"
    },
    {
      "commit": "eb757eeb244301b8a312cd2b975652341820f42e",
      "tree": "c20fc88f4ac2f45e2ea974cc411bf01b9be19528",
      "parents": [
        "32640daf36acda331719766956b25661647e2461",
        "5221410e960d9af0edcba4206cc48ebdfbfe6be0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 04 17:37:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 04 17:37:43 2014 +0000"
      },
      "message": "Merge \"Use sendfile when copying profile file.\""
    },
    {
      "commit": "5221410e960d9af0edcba4206cc48ebdfbfe6be0",
      "tree": "4224b3925826c35f0c52fac0867bf7175f1adae4",
      "parents": [
        "177b429a54a57adbe922037b1210e596d8348d2a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 04 12:01:50 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 04 16:25:28 2014 +0100"
      },
      "message": "Use sendfile when copying profile file.\n\nThis removes the 4k stack allocation and allow to activate\n-Wframe-larger-than\u003d1728 compiler opion.\n\nBug: 15278350\nChange-Id: I389ffe06feb3c1c1bf620e20164cca04a0594788\n"
    },
    {
      "commit": "86bd038a3242bb645b2625f64941a642d9414b91",
      "tree": "14950c23f707a432e03cc2af39390cdd873cccb6",
      "parents": [
        "57795db7d44bcd6d106481fa192691400b2358c8",
        "177b429a54a57adbe922037b1210e596d8348d2a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 04 12:27:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 04 12:27:44 2014 +0000"
      },
      "message": "Merge \"Fix a possible file descriptor leakage\""
    },
    {
      "commit": "177b429a54a57adbe922037b1210e596d8348d2a",
      "tree": "252bffe6c276fa528b0f66d471d726aa94f3552f",
      "parents": [
        "e4283be97047a26d3476acd3863dcc386498be17"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jun 03 16:30:39 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 04 11:37:30 2014 +0100"
      },
      "message": "Fix a possible file descriptor leakage\n\nBug: 15279918\nChange-Id: I7909a53f9028d2f445fb97a0a4293f36b3c012dd\n"
    },
    {
      "commit": "f00571c4e1ae202b3b4acb6b47cbe23a65178f7f",
      "tree": "484d129a8265d03eff56c796e92e302e23ad5e16",
      "parents": [
        "f6b5378ba182c5c26c556ae34638afc38adef519"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu May 29 17:29:47 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jun 02 09:59:22 2014 -0700"
      },
      "message": "Added workaround passing empty arg array for proxy invocation.\n\nThis recreates old Dalvik behavior for older target sdk versions,\nbut will still pass null for newer ones.\n\nBug: 13247236\n\n(cherry picked from commit 01d5a146e20660bd06f026c16f19ec080f8fdd7b)\n\nChange-Id: I911889cf559ad8d9f37ea9be3929387c86446851\n"
    },
    {
      "commit": "b379e8d107b9131d9b6c7b48aea01f9866e4047b",
      "tree": "1eed73cb1dd37de984e8f74b1870e3cf44c24404",
      "parents": [
        "e4e04bbd86d1131b9f380a52a46b1a3b83335d5f",
        "b74cd29802f364b4cec88f4913fa38ade26b8fab"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 30 21:15:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 30 21:15:32 2014 +0000"
      },
      "message": "Merge \"Compaction cleanup for FindArrayClass.\""
    },
    {
      "commit": "b74cd29802f364b4cec88f4913fa38ade26b8fab",
      "tree": "73ccdce1c5a6e57d5763cae1f889e53dca2b5e24",
      "parents": [
        "11138c73e0c5f8a90d1eeed3c48a2b63b310671c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 29 14:31:33 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 30 13:58:22 2014 -0700"
      },
      "message": "Compaction cleanup for FindArrayClass.\n\nWe now pass double pointer in to signify that it can cause thread\nsuspension, this double pointer gets wrapped by a handle if don\u0027t\nfind the array class in the cache.\n\nChange-Id: I43436b6c35597c7252b65d1180baddb5ac4caabb\n"
    },
    {
      "commit": "cf4035a4c41ccfcc3e89a0cee25f5218a11b0705",
      "tree": "323d9e98e6129c67e464a3e6857ee02593a2f2c2",
      "parents": [
        "29b53d3d715b1ec19349e8cbf7c5e4ff529bd5fe"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 28 22:43:01 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 29 20:50:49 2014 -0700"
      },
      "message": "ART: Use StackReference in Quick Stack Frame\n\nThe method reference at the bottom of a quick frame is a stack\nreference and not a native pointer. This is important for 64b\narchitectures, where the notions do not coincide.\n\nChange key methods to have StackReference\u003cmirror::ArtMethod\u003e*\nparameter instead of mirror::ArtMethod**. Make changes to\ninvoke stubs for 64b archs, change the frame setup for JNI code\n(both generic JNI and compilers), tie up loose ends.\n\nTested on x86 and x86-64 with host tests. On x86-64, tests succeed\nwith jni compiler activated. x86-64 QCG was not tested.\n\nTested on ARM32 with device tests.\n\nFix ARM64 not saving x19 (used for wSUSPEND) on upcalls.\n\nTested on ARM64 in interpreter-only + generic-jni mode.\n\nFix ARM64 JNI Compiler to work with the CL.\n\nTested on ARM64 in interpreter-only + jni compiler.\n\nChange-Id: I77931a0cbadd04d163b3eb8d6f6a6f8740578f13\n"
    },
    {
      "commit": "cf790bb92d8e0dcc7b38da6873d982b9e9881682",
      "tree": "42192286d73aa4ae815279b97977ce63e0ad1485",
      "parents": [
        "6d25996baef5037d0aa8beb2f517755f2fb7b91f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 28 11:09:10 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 28 13:05:55 2014 -0700"
      },
      "message": "Fix DexFile.entries to return class names, not class descriptors\n\nBug: 15141726\n\n(cherry picked from commit f2f9daf9ba33b15abddfc8f8d03a708a7908b765)\n\nChange-Id: I28ce8aae1713a9826a3373e1eb60e0edf267f64c\n"
    },
    {
      "commit": "66b68faa42cd36eb368f96c206b29c940ddda129",
      "tree": "ec8d7be0ffd659c3369c3a4f45d319b8be3c4892",
      "parents": [
        "52925af1e3136bcf68bc5754fbfa407950235217",
        "0cd81352a7c06e381951cea1b104fd73516f4341"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 23 21:10:42 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 23 21:10:42 2014 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Fix an outstanding compaction bug in interpreter.\"\"\""
    },
    {
      "commit": "0cd81352a7c06e381951cea1b104fd73516f4341",
      "tree": "fcc8ff9cdeb608d0913097aa1fb64d1879f11ffa",
      "parents": [
        "dfd301f19800a4f168283cf2d0b15b2c09071955"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 22 16:48:55 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 23 12:55:45 2014 -0700"
      },
      "message": "Revert \"Revert \"Fix an outstanding compaction bug in interpreter.\"\"\n\nFixed the generic trampoline to not use ToJObject when unnecessary.\n\nBug: 15167269\n\nThis reverts commit 3bdb873122964da7937eb070cbcf2ef638a8e459.\n\nChange-Id: I0525d0e0f3afb753c770e1572070a0fa22b02271\n"
    },
    {
      "commit": "48e50e8876379d38a561096415ac43ed765f65fc",
      "tree": "c5fb88b50393e3b035cef8f90856ef5ad838a4f4",
      "parents": [
        "2054b925a635642bedd912c6da37ffa9f1d21c6d",
        "14e81447ebaa1d80aae0c53312d4ff238d3fd98a"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri May 23 08:36:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 23 08:36:20 2014 +0000"
      },
      "message": "Merge \"Add a check for null thread before trying to suspend\""
    },
    {
      "commit": "3bdb873122964da7937eb070cbcf2ef638a8e459",
      "tree": "3d29123f33853e11adb67bdd6ac56f19ee798a1f",
      "parents": [
        "e09ae0920be57760fb390b6944bce420fa0b5582"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 22 22:06:51 2014 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 22 22:06:51 2014 +0000"
      },
      "message": "Revert \"Fix an outstanding compaction bug in interpreter.\"\n\nThis reverts commit e09ae0920be57760fb390b6944bce420fa0b5582.\n\nChange-Id: I48036306130d5ccfec683d0dc3e9a642a02ee9c1\n"
    },
    {
      "commit": "14e81447ebaa1d80aae0c53312d4ff238d3fd98a",
      "tree": "9b3651a64e67f64055d351579e83a1a2794978ff",
      "parents": [
        "3ba5511665ffd31cc766fe7774a94eb18696a845"
      ],
      "author": {
        "name": "Johnnie Birch",
        "email": "johnnie.l.birch.jr@intel.com",
        "time": "Thu May 15 11:31:14 2014 -0700"
      },
      "committer": {
        "name": "Johnnie Birch",
        "email": "johnnie.l.birch.jr@intel.com",
        "time": "Thu May 22 11:33:21 2014 -0700"
      },
      "message": "Add a check for null thread before trying to suspend\n\nThe patch fixes a jpda test failure due to a failed\nassertion in SuspendThreadByThreadId. There should be\na check for a null thread before the assertion check.\nThis was the behavior of previous code (4.4.2) where\nthis test passes, but this check was removed during\nsome refactoring of the code.\n\nChange-Id: Ia63de5f159ce1e51110bf9dc604011d07b2f048e\nSigned-off-by: Johnnie Birch \u003cjohnnie.l.birch.jr@intel.com\u003e\n"
    },
    {
      "commit": "e09ae0920be57760fb390b6944bce420fa0b5582",
      "tree": "acc40266093df4289ffb6728c979cafd6b5114d2",
      "parents": [
        "b8033db2a8dc6f7c7e29b1552177542964f56e44"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 15 12:39:19 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 22 10:47:44 2014 -0700"
      },
      "message": "Fix an outstanding compaction bug in interpreter.\n\nFixed a bug in DoFieldPut where the FieldHelper GetType could cause\nthread suspension which would result in a stale obj.\n\nAdded more handles in the class linker to facilitate moving fiels\nand methods in the future.\n\nRemoved un-necessarly passing handle references since these are value\ntypes and don\u0027t need to be passed by reference.\n\nAdded a special NullHandle type which allows null handles without a\nhandle scope.\n\nChange-Id: I1b51723920a2e4f4f8b2907066f578a3e879fd5b\n"
    },
    {
      "commit": "b8033db2a8dc6f7c7e29b1552177542964f56e44",
      "tree": "3d29123f33853e11adb67bdd6ac56f19ee798a1f",
      "parents": [
        "8b4b4f0ffa161ec06a2d947b832cab4b0f82ad84",
        "a705376e3355fd307bfbf7bf72d6944c63a9f2f7"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu May 22 14:47:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 22 14:47:07 2014 +0000"
      },
      "message": "Merge \"Support new VMRuntime native methods\""
    },
    {
      "commit": "a705376e3355fd307bfbf7bf72d6944c63a9f2f7",
      "tree": "9973ff31bd7d51ea1922a874725e62f4b15f739d",
      "parents": [
        "bf17a08fb48fa296acb09904d4c10ba42f63f55d"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri May 16 16:56:45 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu May 22 10:29:16 2014 +0200"
      },
      "message": "Support new VMRuntime native methods\n\nImplements vmInstructionSet, is64Bit and isCheckJniEnabled methods.\n\nBug: 14888999\nBug: 14888124\nChange-Id: I8a2d3f22f84a093be2fbc74464af6aa7b2a2bebb\n"
    },
    {
      "commit": "e1ff199b3bbcf58ed9462e1b7aa47027294f4e4b",
      "tree": "aedae043e5852886c92e38175ceedf0206f42165",
      "parents": [
        "422b2e538fbcd8111ea34960804f0f9793e5653a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun May 18 22:37:51 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon May 19 23:18:35 2014 -0700"
      },
      "message": "Up-to-date odex files should take precedence over profile checks\n\nChange-Id: I70b1e2537dc7c45334a70a4b9ec75329221090bc\n"
    },
    {
      "commit": "46889ea4c43f1e3238851d1120c5f16a7212f4b6",
      "tree": "3db807e58cc15a482f5d17b9fda9f73bb2fe8eff",
      "parents": [
        "607fa7b07233a7233ebe21bba8f3e7c1925ae0f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:31:22 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:31:55 2014 -0700"
      },
      "message": "Fix DexFile.getClassNameList.\n\nBug: 15086891\nChange-Id: I8eaf0d19a56ecaea236e93e84131f5e4ff0843f6\n"
    },
    {
      "commit": "607fa7b07233a7233ebe21bba8f3e7c1925ae0f2",
      "tree": "a04f1074331ac82ad077044e3f373312f61e5901",
      "parents": [
        "1dc387152a84193937bd1f88e9e10fff6449d695",
        "700a402244a1a423da4f3ba8032459f4b65fa18f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue May 20 05:29:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 20 05:29:04 2014 +0000"
      },
      "message": "Merge \"Now we have a proper C++ library, use std::unique_ptr.\""
    },
    {
      "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": "2b7c4d196c8abe32f4ca633534917da9de53c359",
      "tree": "f14dc45f53d5681a5c0e57b8a8cc6b35eee6e896",
      "parents": [
        "84e524207b23d58a1b1e5f4443000ccac97c4184"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 19 10:52:16 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 19 15:19:28 2014 -0700"
      },
      "message": "Don\u0027t get and restore thread state for ScopedFastNativeObjectAccess.\n\nBefore we would ensure that we were runnable for fast native object\naccess. However, these are done when you are already runnable.\n\nChange-Id: Ia4c6e4c83d146fe2a988b37b3133ca46b0f0fa42\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": "dd157d732b557a854b3689faf8a24170fb47c270",
      "tree": "09b1761180ce511273b6bd5782baadaabf43526d",
      "parents": [
        "3b2bcbf9daf39f4cece7fde1186f3fa494000ed9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 14:47:50 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 14:47:50 2014 -0700"
      },
      "message": "Avoid some unnecessary use of stl types.\n\nMay be a minor performance win but really done for libc++ as this removes a\ndependency on a library function whose prototype includes a std::string.\n\nChange-Id: Ifc07a9caef1206caf2a69a6e1b0bfc0ba56c8c62\n"
    },
    {
      "commit": "cbfb8b2f30de46632d3499a838661765451845c5",
      "tree": "1c1e2bacb0dd16a7bb22cf26cbd7ad84d6a7f370",
      "parents": [
        "6099df8c0695a81a8f25c47ff801998b12d09d1b",
        "2d10b206f9d0b97396b7dadb9a6415cd39efd341"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 14 19:09:45 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 14 19:09:45 2014 +0000"
      },
      "message": "Merge \"Ensure JNI primitive array type is appropriate.\""
    },
    {
      "commit": "2d10b206f9d0b97396b7dadb9a6415cd39efd341",
      "tree": "032625cf6175d1749739bca3c9d673b027ba92c1",
      "parents": [
        "6fb66a2bc4e1c0b7931101153e58714991237af7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 12 19:15:18 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 14 12:03:16 2014 -0700"
      },
      "message": "Ensure JNI primitive array type is appropriate.\n\nCheck the primitive array type for GetPrimitiveArray, ReleasePrimitiveArray,\nGetPrimitiveArrayRegion and SetPrimitiveArrayRegion matches the given array\ntype. Check the GetPrimitiveArrayCritical and ReleasePrimitiveArrayCritical are\ngiven a primitive array.\nAdd unit tests that null parameters lead to fatal errors, not crashes. Fix\nissues where CheckJNI assumed non-null arguments.\nTidy testing code via the use of nullptr. Add a few extra checks.\nEnsure arrays of void are not able to be created, use RI compatible\nNoClassDefError.\n\nBug: 14817823\n\nChange-Id: I9903bcd800d0da1988ced07f61fb97b783c5deab\n"
    },
    {
      "commit": "eb8167a4f4d27fce0530f6724ab8032610cd146b",
      "tree": "bcfeaf13ad78f2dd68466bbd0e20c71944f7e854",
      "parents": [
        "6fb66a2bc4e1c0b7931101153e58714991237af7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 07 15:43:14 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 13 14:45:54 2014 -0700"
      },
      "message": "Add Handle/HandleScope and delete SirtRef.\n\nDelete SirtRef and replaced it with Handle. Handles are value types\nwhich wrap around StackReference*.\n\nRenamed StackIndirectReferenceTable to HandleScope.\n\nAdded a scoped handle wrapper which wraps around an Object** and\nrestores it in its destructor.\n\nRenamed Handle::get -\u003e Get.\n\nBug: 8473721\n\nChange-Id: Idbfebd4f35af629f0f43931b7c5184b334822c7a\n"
    },
    {
      "commit": "966ce11364ae08c95ea1ad5b8077c98949917055",
      "tree": "6459810777392127a3757136fa76fd36254b2d47",
      "parents": [
        "f92a45609352fb1dc3460a07d83284b353270221"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon May 12 17:30:36 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon May 12 17:30:36 2014 -0700"
      },
      "message": "Restore \"Late-enable\" logging\n\nIt is referenced from \"Debugging Android JNI with CheckJNI\"\n\nChange-Id: I155138df4a894b33f0a1ae03344442a144a5fced\n"
    },
    {
      "commit": "4d466a8e4587422c989705dce3b2a19e7f0137f5",
      "tree": "bd8f0f45db9a7d5888b14a070690f59fb599bd68",
      "parents": [
        "f1c036fc8fa97617cc42bda44a0adbc7b856d6cd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu May 08 19:05:29 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 09 12:23:00 2014 -0700"
      },
      "message": "Remove all LOG(DEBUG) which is not intended to be checked in\n\nBug: 14632493\nChange-Id: Id9da8b87798af0a1b2bd2c178133e5f1ba47d43d\n"
    },
    {
      "commit": "78f7b4c04ab6e8b5581921bc95b67a9beee1c246",
      "tree": "78b93c72007478b5bfc3b88ab413fa3d772da723",
      "parents": [
        "052a647973b590c9d5007a2e16f313f4e32a70bd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 06 10:57:27 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 07 15:28:35 2014 -0700"
      },
      "message": "Add concurrent reference processing.\n\nConcurrent reference processing currently works by going into native\ncode from java.lang.ref.Reference.get(). From there, we have a fast\npath if the references aren\u0027t being processed which returns the\nreferent without needing to access any locks. In the slow path we\nblock until reference processing is complete. It may be possible to\nimprove the slow path if the referent is blackened.\n\nTODO: Investigate doing the fast path in java code by using racy reads\nof a static volatile boolean. This will work as long as there are no\nsuspend points inbetween the boolean read and referent read.\n\nBug: 14381653\n\nChange-Id: I1546b55be4691fe4ff4aa6d857b234cce7187d87\n"
    },
    {
      "commit": "52f84884433f3875f4b1bc5595b8d5a2d6fb3d99",
      "tree": "e9d5008b7288d200872447cc93354b5248beceaf",
      "parents": [
        "dee6812d90c78daa09a3870ba5ffcead57a63d1a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri May 02 10:10:39 2014 +0100"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 02 18:28:47 2014 -0700"
      },
      "message": "Prevent spurious dexopts in 32-64 builds.\n\nWhen we\u0027re checking if a file needs to be dexopted, we\nneed to compare oat file checksums with the image checksum\nfor the oat file\u0027s target instruction set and not the current\nruntime\u0027s target instruction set.\n\nbug:14475807\n\nChange-Id: Ib44d8e3c6cdf3a37fce6332c694a6602c658e925\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": "b0fa5dc7769c1e054032f39de0a3f6d6dd06f8cf",
      "tree": "839d13ebfa7170967dd9b4abd434b7abda53da99",
      "parents": [
        "948740c1938860df055ddc801f20fd1707331e38"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 28 16:47:08 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 29 14:36:28 2014 -0700"
      },
      "message": "Force inlining on trivial accessors.\n\nMake volatility for GetFieldObject a template parameter.\nMove some trivial mirror::String routines to a -inl.h.\n\nBug: 14285442\n\nChange-Id: Ie23b11d4f18cb15a62c3bbb42837a8aaf6b68f92\n"
    },
    {
      "commit": "09881a85579cab1779ddf6ba9a91eed861a13cb2",
      "tree": "fae410053b1cc8f0497abb744e820c124015d7b1",
      "parents": [
        "011005100214eb40c2aaad3f8fe9c3dc9465bcec"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Apr 18 17:44:01 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Apr 25 15:40:04 2014 -0700"
      },
      "message": "Do not require dexopt when previous profile does not exist\n\nAlso turn down some dex2oat related noise\n\nBug: 14184659\nChange-Id: I134890f2c452d7f85ca4b736b5724f42533c2a7f\n"
    },
    {
      "commit": "4af159bfcc66c6e90a2aee4a2035a996a399e7ed",
      "tree": "9bc7f4ac4f6ce93be0e9f2bc8db6ccdb9d972c36",
      "parents": [
        "d299898a55f41ccf78b865e153ae91321229353b",
        "987560fee798e48fb725c44b796d8ca7a5872ad6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 23:03:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 22 23:03:01 2014 +0000"
      },
      "message": "Merge \"Remove support for app JNI workarounds.\""
    },
    {
      "commit": "987560fee798e48fb725c44b796d8ca7a5872ad6",
      "tree": "d61f35a129847f3f5fbed1436649e75acd940b3f",
      "parents": [
        "44b0053fdb7ad8a30138d29f714172a7dc69efb8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 11:42:59 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 14:52:19 2014 -0700"
      },
      "message": "Remove support for app JNI workarounds.\n\nChange-Id: I4396df7e93fcace4b5b19c2c387e5c30089182a6\n"
    },
    {
      "commit": "0ec77d6df72ad9c352e23d8a2257530328f64a4b",
      "tree": "f0bdb4900548189c09f3e1010198eb327a648f44",
      "parents": [
        "82b1a81890970a8b07f9132aeae537a6c43df6b0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 10:51:17 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 10:51:17 2014 -0700"
      },
      "message": "Warn when thread state lookup fails.\n\nChange-Id: I06781caddcade26148921bc225f28db8b3a63a35\n"
    },
    {
      "commit": "329d18806792771dfee064203fe27875d79cd53a",
      "tree": "56f2b3105a6451d2b6f2b39941fb38bbd9af33d6",
      "parents": [
        "a6b20c3cb43676c3294865af521c19db77988633"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 08 10:32:19 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 08 12:21:36 2014 -0700"
      },
      "message": "Better error reporting when loading dex files\n\nCollect all partial error messages and return them as cause\nexceptions for the top-level exception returned.\n\nChange-Id: I9661b8aed2a571dc88bf0f06d447108eeaed1409\n"
    },
    {
      "commit": "0833af65c87b9f1c900e70a41c04d2dcdbd0c9c7",
      "tree": "ceaa71331ac753df13d26e0545bfef935cf92844",
      "parents": [
        "a704644079945c700bef37803b3b7bcd70a10cb4",
        "9dae5b4b952824da45e9fd9c12cfcde9858f0974"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Apr 08 13:37:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 08 13:37:43 2014 +0000"
      },
      "message": "Merge \"Tweaked profile significant_difference.\""
    }
  ],
  "next": "9dae5b4b952824da45e9fd9c12cfcde9858f0974"
}
