)]}'
{
  "log": [
    {
      "commit": "f57f2ed8c3f75c8d8c2c051f2961ca4e8330a698",
      "tree": "8a734652280d099f95d0d2f8cb358fcf56ca0d47",
      "parents": [
        "5cb98a99cff06cd6a5b94f7d819b180d6e621f32"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 25 15:55:42 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 26 09:52:25 2019 +0000"
      },
      "message": "ART: Clean up obj_ptr.h and obj_ptr-inl.h .\n\nMove ObjPtr\u003c\u003e member function definitions that depend on\nother functions in obj_ptr-inl.h also to the obj_ptr-inl.h.\nUse C++14 std::enable_if_t\u003c\u003e and C++17 std::is_base_of_v\u003c\u003e.\nImprove kObjPtrPoisoningValidateOnCopy code readability\n(avoid ternary operator). Move relational opeators to\nnamespace scope and reimplement !\u003d as negation of \u003d\u003d.\n\nAlso move PtrCompression\u003c\u003e::Compress(ObjPtr\u003c\u003e) to the\nobject_reference-inl.h which includes obj_ptr-inl.h.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I5116c0e322775c19a88687f30742ef654a8be873\n"
    },
    {
      "commit": "d91de5ffa1bfb2a6f559c0536828b03839088949",
      "tree": "61223750974a923012c35fe5113e52dc2827568d",
      "parents": [
        "179b7c61ea6769b99f70c80a7a89cbb212423ec2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 06 15:20:44 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 25 16:58:06 2019 +0000"
      },
      "message": "Fix JNI GetFieldId() signature check for \"\".\n\nTest: Add a test to 647-jni-get-field-id\nChange-Id: I8581997cb60057798fe4389531bf285baa076920\n"
    },
    {
      "commit": "179b7c61ea6769b99f70c80a7a89cbb212423ec2",
      "tree": "06130898bfb2d8c3f71f4fe181277f20e1942726",
      "parents": [
        "c8b7d445e02b752a68d824e2bc69658dfb76288a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 22 13:38:57 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 25 16:54:37 2019 +0000"
      },
      "message": "ObjPtr\u003c\u003e-ify String allocations, fix stale refs.\n\nObjPtr\u003c\u003e-ify String allocation functions and related code\nand remove some unnecessary calls to ObjPtr\u003c\u003e::Ptr(). Fix\nstale reference uses in reference_table_test and stub_test.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I42927fb8b7240e5132188f73318b2ccb218748fd\n"
    },
    {
      "commit": "c8b7d445e02b752a68d824e2bc69658dfb76288a",
      "tree": "51ff473bcc25bde8439fbebbee6ecc7b46cc4b93",
      "parents": [
        "2babede0d09600a9700d496001f736366fba8bb0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 25 09:40:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 25 13:08:55 2019 +0000"
      },
      "message": "Defer unloader JNI libraries of boot classpath as late as possible.\n\nAlso don\u0027t try to lock at this point.\nA lock would run a checkpoint on threads that are dying, and this can\nlead to crashes, eg:\nhttps://build.chromium.org/p/client.art/builders/host-x86-cms/builds/4412/steps/test%20debuggable/logs/stdio\n\n+*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n+Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) fault addr (nil)\n+OS: Linux 4.4.0-78-generic (x86_64)\n+Cmdline: \u003cunset\u003e\n+Thread: 10797 \"Shutdown thread\"\n+Registers:\n+    eax: 0x00000000    ebx: 0xf739c104    ecx: 0xf739f794    edx: 0x00000001\n+    edi: 0x00000000    esi: 0x56748c54    ebp: 0xffd2bd18    esp: 0xffd2bcc0\n+    eip: 0xf6c18c8c                    eflags: 0x00010246 [ PF ZF IF ]\n+     cs: 0x00000023     ds: 0x0000002b     es: 0x0000002b     fs: 0x0000006b\n+     gs: 0x00000063     ss: 0x0000002b\n+Backtrace:\n+\t#00 pc 001ffc8c  /b/build/slave/host-x86-cms/build/out/host/linux-x86/lib/libartd.so (art::Thread::CheckEmptyCheckpointFromMutex()+428)\n+\t  art::Thread::ReadFlag(art::ThreadFlag) const\n+\t   art/runtime/thread.h:1089\n+\t  art::Thread::CheckEmptyCheckpointFromMutex()\n+\t   art/runtime/thread-inl.h:94\n+\t#01 pc 001fb40e  /b/build/slave/host-x86-cms/build/out/host/linux-x86/lib/libartd.so (art::Mutex::ExclusiveLock(art::Thread*)+462)\n+\t  art::Mutex::ExclusiveLock(art::Thread*)\n+\t   art/runtime/base/mutex.cc:382\n+\t#02 pc 0064d9b7  /b/build/slave/host-x86-cms/build/out/host/linux-x86/lib/libartd.so (art::Libraries::UnloadBootNativeLibraries(_JavaVM*)+103)\n+\t  MutexLock\n+\t   art/runtime/base/mutex.h:431\n+\t  art::Libraries::UnloadBootNativeLibraries(_JavaVM*)\n+\t   art/runtime/jni/java_vm_ext.cc:230\n\nTest: 004-ThreadStress\nChange-Id: I7f9b69590983ff4e3276a0ad1ef5c7453d692b04\n"
    },
    {
      "commit": "50928116be503deed341fbc84c0647d5687b12a1",
      "tree": "2ab09470c05eff72860eb8df14dfcc1fba002ec4",
      "parents": [
        "b9c29f625bc27968d80f9eafa988dc14af0a1c28"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 22 17:06:28 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 25 10:59:19 2019 +0000"
      },
      "message": "Move elf_utils.h to libelffile library as well.\n\nAlso move some of our ART-specific utils form elf.h.\n\nBug: 73344075\nTest: generated oat files on host are identical.\nChange-Id: I587afc30875b9ddb57220fb3d4e764f9bb7a0e25\n"
    },
    {
      "commit": "b9c29f625bc27968d80f9eafa988dc14af0a1c28",
      "tree": "10276cd3fa756646b41cb50cf396476f2f8df1d3",
      "parents": [
        "bcd99bed472d228a1a0a65adc606346d7daf6b93"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 20 14:22:51 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 25 10:27:28 2019 +0000"
      },
      "message": "Hide conscrypt package classes for app AOT compilation.\n\nSince app AOT compilation is usually done without conscrypt\non the boot class path, classes defined by app class loader\nin conscrypt packages could be resolved differently, i.e.\nfrom conscrypt, at runtime. Reject such definitions during\nAOT compilation to ensure correct runtime behavior.\n\nAdd a test that when compiling the conscrypt module as an\napp, we cannot resolve any class defined in its dex files.\n\nTest: module_exclusion_test\nBug: 122937705\nChange-Id: I1fcb4c21937f59772206ee50b688a75053231bc0\n"
    },
    {
      "commit": "bcd99bed472d228a1a0a65adc606346d7daf6b93",
      "tree": "76ed4d2a1a5aba947f0b3b8d29b0b3323fc9821c",
      "parents": [
        "3e5c4cec27e2ead115ee7dcca7baf051fdaaaa28"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 22 16:21:31 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 25 09:25:50 2019 +0000"
      },
      "message": "Open only necessary files for BCP checksums test.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 128479972\nChange-Id: I13040acb5603d9207c2aaaa51ffd2fc7d3de1d82\n"
    },
    {
      "commit": "3e5c4cec27e2ead115ee7dcca7baf051fdaaaa28",
      "tree": "4a72edfefd2c914e23dc17fbe4e41d35611f8200",
      "parents": [
        "36dfa4177e0cced1741e7d4d7a629681b9786d89"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 22 15:52:41 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Mar 23 04:30:20 2019 +0000"
      },
      "message": "Use normal checkpoints for NotifyStartupCompleted\n\nThe API RunEmptyCheckpoint is only safe with one caller (the GC),\nincorrect usage was resulting in occasional deadlocks.\n\nThe fix is to use a normal checkpoint to do the empty checkpoint.\n\nBug: 129150130\nTest: test-art-host\nChange-Id: I8ed73bc8b57c3493f4a995843d5ad63bd1a91ef8\n"
    },
    {
      "commit": "36dfa4177e0cced1741e7d4d7a629681b9786d89",
      "tree": "d6dc9dadb8303618c67a18bea06fed3bbc902da7",
      "parents": [
        "f74d4cb0e294c22de347bf2879f3a8f47398321e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 22 17:24:49 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 23 04:13:43 2019 +0000"
      },
      "message": "Delete RunCheckpointOnRunnableThreads\n\nNo longer used.\n\nTest: TH\nChange-Id: I2dd988d45dd081869928ff297ab53d03e89bde75\n"
    },
    {
      "commit": "9d5956a9598da60de5ae266bcfb57980551ba014",
      "tree": "d7c92fdeb26f67c32c2a57d39b96d267bdadfbca",
      "parents": [
        "1a9ac537f52b88dea02d02c3063283e32a085fb5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 22 11:29:08 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 22 22:13:49 2019 +0000"
      },
      "message": "Change image method and field visiting to use templates\n\nRemove boilerplate code.\n\nTest: test-art-host\n\nChange-Id: I407efaa1e03f67f91e22e085c68a573defef2451\n"
    },
    {
      "commit": "1a9ac537f52b88dea02d02c3063283e32a085fb5",
      "tree": "5fb2fce1a45d44d7fe6557f99d38669c9d075f52",
      "parents": [
        "e5d93b58a530be39c9a067cdd7f491e4626ec51d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 05 11:57:13 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 22 18:51:35 2019 +0000"
      },
      "message": "Support InMemoryDexClassLoader in ClassLoaderContext\n\nAdd new class loader tag IMC to class loader context spec which\nrepresents InMemoryDexClassLoader. A special case is required to not\nattempt to open its dex files as the dex location does not correspond\nto a real file path. This is achieved by setting load-attempted variable\nto \u0027true\u0027 when encountering IMC whilst parsing a spec. Context with IMC\ncan still have opened dex files if it was created from an existing class\nloader.\n\nBug: 72131483\nTest: m test-art-host-gtest-class_loader_context_text\nChange-Id: Ic64065819018a1e56dee0f65405d26beb8fd7bbd\n"
    },
    {
      "commit": "e5d93b58a530be39c9a067cdd7f491e4626ec51d",
      "tree": "30becd07985c4c2f7b2a339f7d6783220255f08e",
      "parents": [
        "336245d020ce5d1595c56a2953bf7b3103b54984"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 27 15:10:52 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 22 18:22:34 2019 +0000"
      },
      "message": "Compare the oat version of runtime, dex2oat and the compiler.\n\nEnsure they match, otherwise we might get confusing crashes.\n\nBug: 125318570\nTest: running ahat-test-dump after oat version bump triggers the check.\nChange-Id: If4bc832af50c2cb851054be03c9887f9a3d4d04b\n"
    },
    {
      "commit": "e3e0f70f2d58674d6cfd324674d8808ca479f5a9",
      "tree": "f2bbef9ef18cb8357acc7a3ceb90c7c4feeec78b",
      "parents": [
        "02998cf18a03467f4c935f9d09cfd18c531b3d4b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 12 07:02:02 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 22 16:21:06 2019 +0000"
      },
      "message": "Return the same dex location for dex file whether backed by dex file or not.\n\nBug: 126901248\nTest: oat_file_assistant_test\nChange-Id: Idae49fb00bfad7007cc55e53a83e4a3e42f53e07\n"
    },
    {
      "commit": "8982186538943d31b9db0b94e9bf10b5c4a75ae7",
      "tree": "df8f79208eed6bd8801f9e4ec11a1d08e85078a5",
      "parents": [
        "4bb2af5e6163cf68ec65c5497983303302a15a09"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 19 13:57:43 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 22 13:48:56 2019 +0000"
      },
      "message": "Support FDs for class loader context dex files\n\nWhen compiling secondary dex files, dex2oat/dexoptanalyzer must open\nall dex files in the given class loader context. However, these tools\ndo not have the SELinux permission to open app data files and instead\nrely on installd to open them and pass file descriptors via command\nline arguments.\n\nThis patch extends ClassLoaderContext::OpenDexFiles to support opening\ndex files from a provided list of FDs, assuming the order corresponds\nto the flattened class loader context. FDs can be passed to dex2oat/\ndexoptanalyzer using a new \u0027--class-loader-context-fds\u003d\u0027 command line\nargument. The format is a colon-separated list of integers.\n\ndexoptanalyzer is also extended with a separate mode in which\ndexopt-needed analysis is not performed, only the class loader context\nis flattened and list of its dex files is printed to standard output\nas a colon-separated list of paths. This mode is enabled with\n\u0027--flatten-class-loader-context\u0027 and is used by installd to obtain a\nlist of files it should open for dex2oat/dexoptanalyzer.\n\nBug: 126674985\nTest: atest installd_dexopt_test\nChange-Id: I46a671c90d14ad8615508c106a88ac1ee8a4ef28\n"
    },
    {
      "commit": "4bb2af5e6163cf68ec65c5497983303302a15a09",
      "tree": "6cc72eae79472645b2c4833acb69f74849e43b0a",
      "parents": [
        "975b77427413977665f3be66d02e1d164df1efbc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 22 11:09:19 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 22 13:08:16 2019 +0000"
      },
      "message": "ObjPtr\u003c\u003e-ify entrypoint utils.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --interpreter\nBug: 31113334\nChange-Id: Id05ce5b827b5c11a0fa796bca0b939e29ecf3c5f\n"
    },
    {
      "commit": "340eff4ef043a58934304b33d0656ee3741b2f94",
      "tree": "ed2667f3d1836cd80a6b166fb6d061ae31cb646f",
      "parents": [
        "72da9855659cd7c1b0780453e74ff56a72c10828"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 21 10:28:47 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 21 22:20:39 2019 +0000"
      },
      "message": "ART: Disable kCorePlatform detection\n\nThe detection is inconsistent, and follow-up failures are hidden.\nDisable for now, as on-host and on-device compilation must be\nconsistent.\n\nBug: 129008061\nTest: m test-art-host\nChange-Id: I62dbb2d1cac899799120b1a9447acfe5fe6e018a\n"
    },
    {
      "commit": "415ac850a273dee846b4d72c30bfef8fd69a003c",
      "tree": "56c2cdd89ca78ca8df1b83d3fbd20a83367a57cb",
      "parents": [
        "7458291cbaf549c4a9739b444e314f40f58a5520"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 21 12:49:10 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 21 15:11:07 2019 +0000"
      },
      "message": "Add read barrier comments for ArtField::IsProxyField().\n\nAlso use the same formulation for ArtMethod::IsProxyMethod()\nand use the ArtField::IsProxyField() where appropriate, thus\navoiding some read barriers.\n\nTest: Rely on TreeHugger.\nBug: 119486698\nChange-Id: Ie71de0e4d163ecde2ebac55d27b46a8ca51859bf\n"
    },
    {
      "commit": "7458291cbaf549c4a9739b444e314f40f58a5520",
      "tree": "9f01f691b50a230690b4c9869787fa44a460bc6b",
      "parents": [
        "c2109c6803a5b7c23b0d59f67d13d58f97111e5b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 01 11:18:19 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Mar 21 14:34:50 2019 +0000"
      },
      "message": "Open in-memory dex files into a single DexFile object\n\nRefactor the logic of opening dex from ByteBuffers so that all buffers\nare opened at once into the same DexFile/Element object. This effectively\nenables multidex in InMemoryDexClassLoader and will make it possible to\ngenerate a single vdex file for the whole class loader instead of one\nvdex per dex ByteBuffer.\n\nBug: 72131483\nTest: art/tools/run-libcore-tests.sh\nChange-Id: I5fb939072812745a2df0f323c502a1cf92069ed5\n"
    },
    {
      "commit": "09d3576c2acda0785047cf830a228e413a36e757",
      "tree": "60f319bde18191373f4db3c775b95d0013a0694a",
      "parents": [
        "a040ddc1378118ac6b3735fa8333c1a19e646fe1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 20 10:36:20 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 21 00:07:20 2019 +0000"
      },
      "message": "Update mips and mips64 mterp assembly\n\nCargo-cult the changes from Icc5eb98590243969dc47c59a65e39a3a406660f2\nand I45a39ec73abaefaecf5b8c636f3f9d519a0a8bb0 into mips and mips64.\nThis will fix errors from the mips genrules when all genrules are\nrun during checkbuilds.\n\nTest: m libart_mterp.mips64 libart_mterp.mips\nChange-Id: I7dab944d40dbc05893eae513f2323fc7c6ec6226\n"
    },
    {
      "commit": "a040ddc1378118ac6b3735fa8333c1a19e646fe1",
      "tree": "87340e8d63e6e29c4adc38787323bd9b611f7d36",
      "parents": [
        "f57f7d4cac1d54a54737252e1cf20bee1aace958"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 15 13:14:11 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 20 17:27:16 2019 +0000"
      },
      "message": "Document when we can avoid read barriers.\n\nTest: Rely on TreeHugger.\nBug: 119486698\nChange-Id: I6d5e18709ff7d624eea7a083f39a56ed8f8ffa49\n"
    },
    {
      "commit": "f57f7d4cac1d54a54737252e1cf20bee1aace958",
      "tree": "f79d0eece6b4bfc78eb10e8add75de8cf6c0b7b8",
      "parents": [
        "2faab0064bccdf06a454ba5fc37f2cfeceab78bc"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Mar 14 17:49:26 2019 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Mar 20 15:26:54 2019 +0000"
      },
      "message": "Change registerNativeAllocation to long argument\n\nBug: 128423826\nTest: AOSP boot and TreeHugger\nChange-Id: I460b4e692604a433e145e3b243ae6453bdec3fc6\n"
    },
    {
      "commit": "2faab0064bccdf06a454ba5fc37f2cfeceab78bc",
      "tree": "bc51a211068019d77e7739164adf5be5c6333b7b",
      "parents": [
        "5f1465ff689eccbb1b6d15160d1a3700793956da"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 16:35:48 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 20 15:20:54 2019 +0000"
      },
      "message": "Create libelffile library for ELF file manipulation.\n\nMove some of our tooling to library to make it reusable.\n\nRemove MIPS support from the ELF builder.  This is slightly\neasier than making it independent of the runtime.\n\nBug: 110133331\nTest: test.py -b --host\nChange-Id: I93343808d0e27ee8e1117e713a2503e8179fc245\n"
    },
    {
      "commit": "21b656872c27b8d174293cf37975d769c8554b22",
      "tree": "e7a4f3109c799f3af26cbe0b4185b387553e7534",
      "parents": [
        "0985eb1b8309745bc67bee79267c9c0a81cd4d7a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 12 00:49:45 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 20 09:14:18 2019 +0000"
      },
      "message": "Unload native libraries during shutdown.\n\nBug: 31550016\nTest: two_runtimes_test.cc\nChange-Id: Ic44fa57d01d5e00e08b06e3b05c86d44cb45c509\n"
    },
    {
      "commit": "3383f9c81211ebb4185c861d8acb3d9de0df78ee",
      "tree": "994deadcdb15334dcbe54aed80c28ff98077c2fb",
      "parents": [
        "7286ad6c340b11f28240a049cf3225a3d58ebc67"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 15 11:46:08 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 19 21:37:36 2019 +0000"
      },
      "message": "ART: Conditionally remove loaded-oat-count check\n\nIn the case of the system server, oat files may be loaded before the\ncheck applies.\n\nBug: 128688902\nTest: m\nTest: manual\nMerged-In: I1c12463e905115e858cc0c52711dd82a4f06425d\nChange-Id: I1c12463e905115e858cc0c52711dd82a4f06425d\n"
    },
    {
      "commit": "ebb481d070e3fdbb7950580e6f6886c3231a1ad9",
      "tree": "af6986daab73dcd17dca5f4bab68024c12c40c83",
      "parents": [
        "a1e5b97b4bb4c47c2ab51d8a7d5dd1500d496c4d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 19 09:30:35 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 19 12:33:11 2019 +0000"
      },
      "message": "Revert \"Change state to waiting during aborting the VM\"\n\nThis reverts commit 97b964960123d5f215a1cebbce548c8a5322c307.\n\nBug: 127875380\n\nReason for revert: Broke Dex2oatWatchdogTest.TestWatchdogTrigger on host x86_64 and heap poisoning.\n\nChange-Id: Iaebfc4a03543bff4e7239d711dd7ad8c7f880d52\n"
    },
    {
      "commit": "a1e5b97b4bb4c47c2ab51d8a7d5dd1500d496c4d",
      "tree": "b967f1a2f8768f9bf70dfd238e895b28a1bc4aad",
      "parents": [
        "6e7a72c5baa322f57fe6a52303dac45fba8edd25"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 18 16:54:25 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 18 16:54:25 2019 -0700"
      },
      "message": "ART: Use kNormThreadPriority for UnstartedRuntime\n\nNormalize the compiler thread\u0027s perceived priority to make the\nresult independent of the compilation environment.\n\nBug: 128865240\nTest: m\nChange-Id: I5f8bc144d05453c5df603fef221ce22d66eff546\n"
    },
    {
      "commit": "6e7a72c5baa322f57fe6a52303dac45fba8edd25",
      "tree": "e2cde34e087bce7ea04322c6dca5d2fbc849698e",
      "parents": [
        "97b964960123d5f215a1cebbce548c8a5322c307"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 07 21:40:10 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 18 20:21:04 2019 +0000"
      },
      "message": "Release app image metadata when startup is completed\n\nThe app image startup cache is only required for startup. Release\nit after startup is completed.\n\nNote that the cache handles being zeroed out at any time.\n\nBug: 123377072\nTest: test-art-host\n\nChange-Id: Iaa1c800bd0de7290b44d814a21bda20298a10d5f\n"
    },
    {
      "commit": "97b964960123d5f215a1cebbce548c8a5322c307",
      "tree": "04239f8bc25ce6f22bda774bbae37755ed8acb27",
      "parents": [
        "26a5dd6fd1d65de29ba85e4bb61d9267dd428238"
      ],
      "author": {
        "name": "Koji Fukui",
        "email": "koji.fukui@sony.com",
        "time": "Tue Mar 05 12:22:57 2019 +0900"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 18 17:19:04 2019 +0000"
      },
      "message": "Change state to waiting during aborting the VM\n\nSymptom:\nProcess freeze when multiple runtime error happen on runnable threads.\n\nRoot cause:\nWhen multiple runtime error happen, only one thread locks abort_lock_\nand other threads are blocked even if they are runnable state.\nIf an other thread tries to suspend blocked threads at the same time,\nblocked threads can\u0027t be suspended until abort_lock_ is unlocked from\nowner thread. But owner thread can be suspended even if it locks\nabort_lock_. Thus, these threads causes dead lock.\n\nSolution:\nChange state to waiting when locking abort_lock_.\n\nBug: 127875380\nChange-Id: I7e914924690bb30d6d0490cf5f8afdb1c3cd4e4a\n"
    },
    {
      "commit": "3364d187eccaedc4bbae93f66a0d201bca709256",
      "tree": "fcbec2e5f4758ab341141680bc77d9108c726ac4",
      "parents": [
        "3892e628ac617878251fa3c5e689ad661de0e289"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 13 13:55:01 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 18 09:51:37 2019 +0000"
      },
      "message": "Clean up ImageSpace::LoadBootImage().\n\nDo not rely on data from Runtime::Current(), pass required\nparameters explicitly. Move initialization of runtime\nmethods to ClassLinker, remove the \"uninitialization\" from\nImageSpace destructor as it\u0027s performed just before the\nRuntime is destroyed and it is therefore unnecessary work.\n\nThis is not a complete cleanup as we still rely on the\nRuntime::Current() for zygote and boot image compilation but\nit allows imgdiag to load the system boot image directly.\nThis shall be implemented in a follow-up change.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 77856493\nChange-Id: Ic08c2918d726df8d2af3f8803c1673d8216a3da5\n"
    },
    {
      "commit": "3892e628ac617878251fa3c5e689ad661de0e289",
      "tree": "36268e3ce03b217728d16f85b78a4923adf5ea55",
      "parents": [
        "bfaba288427e80e7941e49c4264ba8f6cd6d97d1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 15 15:22:18 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 18 09:51:37 2019 +0000"
      },
      "message": "Clean up Class::GetDescriptor().\n\nPull in helper functions Class::GetArrayDescriptor() and\nClassLinker::GetDescriptorForProxy(), avoid deep recursion\nfor multidimensional arrays and avoid a read barrier for\nGetName() for proxy classes.\n\nAlso avoid recursion in Class::DescriptorEquals().\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I04201294434a00eb2f91c66403af45f715941be4\n"
    },
    {
      "commit": "bfaba288427e80e7941e49c4264ba8f6cd6d97d1",
      "tree": "db8e893b87c2406275c82599d43e9b9a5b0f895c",
      "parents": [
        "7dd0f0f2b4af0b15389ca8624bde93e1fb7ed776"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 15 11:35:51 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Mar 16 07:34:43 2019 +0000"
      },
      "message": "Fix buildbots hidden_api_test\n\nTarget buildbots set /system to be the runtime module root because they\nare running without an apex. The test assumes that /system dex files are assigned\nto the application domain but here they get assigned to the core-platform domain.\n\nAdjust the domain setting logic to check if the runtime module root is\ndistict from the android root (as a proxy for \u0027is running with apex\u0027).\nIf not (as is the case with the buildbots), skip checks against apex\nlocations.\n\nTest: m test-art-target-gtest-hidden_api_test\nChange-Id: Iff3890ec69cb04a1e4ed5bc2a3b5c652ada05f36\n"
    },
    {
      "commit": "a43ba3da86c046c545a988f3d40f53c24a525f83",
      "tree": "a66479561d9f14a9b19e31a9a6851f81ae50673c",
      "parents": [
        "e37b7915908dba10e90c39a3a82cb0cd1dc05f5c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 13 15:49:20 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 15 16:11:36 2019 +0000"
      },
      "message": "ART: Add ClassVerifier\n\nRemove class handling from MethodVerifier.\n\nTest: m test-art-host\nChange-Id: I0e125e0c8a852936ed7cff0f349a7fde97f62826\n"
    },
    {
      "commit": "e37b7915908dba10e90c39a3a82cb0cd1dc05f5c",
      "tree": "178e7fed04a9e93cb23cca83c276d6ea19e6caa4",
      "parents": [
        "94b6c34aade019d6300c4b109885b3b6715d573e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 13 10:52:39 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 15 10:59:26 2019 +0000"
      },
      "message": "Fix ImageSpace relocation direction check.\n\nThe correct check whether `begin+diff` would overflow\nuint32_t is `begin \u003e\u003d -diff` in unsigned arithmetic.\n\nNote that with the current ranges of relocation diff and\nART_BASE_ADDRESS, the result of the check is the same as\nbefore.\n\nTest: m test-art-host-gtest\nBug: 77856493\nChange-Id: Ic0ded458ad8fa327ea74e2e0ebdd4de18c4e5b04\n"
    },
    {
      "commit": "e095c9135a6b28c3e8059a9a55d4c479f3e2c7f3",
      "tree": "1cc69dbb19fc52285ea19fa6b72e46fa17d2f7ff",
      "parents": [
        "b214694e13890559ae587263f93eb3cfdd63eaa1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 14 13:38:49 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 15 02:01:41 2019 +0000"
      },
      "message": "ART: Cache Runtime* in nativePostForkChild\n\nPreparation for future change.\n\nBug: 125474642\nTest: m test-art-host\nTest: Device boots\nChange-Id: I69018b9afe2063ca6ba8dd9f70f3b996888611a4\n"
    },
    {
      "commit": "a5c3a808020d81447bc19d07a99288e9d28a6e6c",
      "tree": "83a9b1eac0a7209e6e407c0462d0b1ba8f95f62c",
      "parents": [
        "98fb083a30e9b37685f943e2923e65e60e0a0971"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 08 14:59:41 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Mar 14 14:34:20 2019 +0000"
      },
      "message": "hiddenapi domain: Use oat dex file location if available\n\nTo determine the caller and callee domains of a hidden API access check,\nthe logic will test the dex location against several known system\nlocations. However, DexFile instances backed by an OatFile have relative\ndex locations to avoid need to rewrite the .oat file when moving files\nbetween folders. The canonical dex location is stored in the OatDexFile\ninstead.\n\nBecause the OatDexFile data structure is not available in libdexfile,\nmove the domain resolution logic to hidden_api.cc and resolve when dex\nfiles is first registered with the class linker.\n\nTest: m test-art-gtest\nTest: camera does not crash\nBug: 126901248\nBug: 127852529\nChange-Id: Id494b1c47a2199c227dec046174e08320b9cbc3b\n"
    },
    {
      "commit": "98fb083a30e9b37685f943e2923e65e60e0a0971",
      "tree": "541c64045666ce721b3c0b32549e415a28a88296",
      "parents": [
        "c7c5d5311501eebf791b0bca6d1e56c58b062a9c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 13 16:52:11 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 14 14:23:49 2019 +0000"
      },
      "message": "Remove obsolete trampoline offsets from OatHeader.\n\nAnd compile trampolines only for the primary oat file.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I2b1162c5ca6c4b0b04dcce7d50618c91f6bf1c06\n"
    },
    {
      "commit": "8682354d448e1c3c355dbcac07b77e9c40e35987",
      "tree": "a8e99b9b44617c6d9f52501069d44db773d0df47",
      "parents": [
        "1f146b7db14c976987033224caf90831bbf11b10"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 25 09:38:49 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 13 18:19:00 2019 +0000"
      },
      "message": "ART: Allow to change boot image pickup order\n\nAllow to change the pickup order of boot image files between\nsystem-first and data-first.\n\nBug: 126307038\nTest: m test-art-host\nTest: Boot device with image in /data/dalvik-cache\nChange-Id: Id80cfc06aeb023559e1a3706833e57ba4880f43b\n"
    },
    {
      "commit": "3dacdd6343ea9a6471692914c7a9dff66d6453c7",
      "tree": "5e0a3b8f99e914a7fbd49822e5c8fb1bd4709f5c",
      "parents": [
        "939798e6a565a92e597136c589428e89c28bffd5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 12 15:45:47 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 12 09:52:59 2019 -0700"
      },
      "message": "Revert^4 \"Remove Global deopt requirement for several jvmti events\"\n\nIt was possible for the top frame of a thread to enter the\nartQuickToInterpreterBridge during runtime shutdown. This could be\ncaused by the libjdwp agent. If this happens the caller of the frame\nwill be \u0027null\u0027, which could cause a segv if not detected correctly.\n\nThis reverts commit 939798e6a565a92e597136c589428e89c28bffd5.\n\nReason for revert: Fixed issue that could cause crash during process\n                   shutdown.\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\nTest: ./test.py --host\n\nChange-Id: I2aad1705c761edb4ed788cec4fc8a3068d67aee5\n"
    },
    {
      "commit": "939798e6a565a92e597136c589428e89c28bffd5",
      "tree": "3274ff355163df18cd2d7343ce0d34214f9d09c9",
      "parents": [
        "a55e8b5c9827cc4dc4e7f7c7ee07ef1fdafc35e0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 12 14:26:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 12 14:26:42 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Remove Global deopt requirement for several jvmti events\"\"\n\nThis reverts commit a75e5892fba6d0208f33e9ab8e19e732daf94996.\n\nReason for revert: Fails jdwp tests.\n\nChange-Id: Ic883f4f0108b07f1609c6c6a9565eae5903bfd2c\n"
    },
    {
      "commit": "a75e5892fba6d0208f33e9ab8e19e732daf94996",
      "tree": "3daff8c3ce1608bacba7358711ccf9bd61c0bb05",
      "parents": [
        "dd83a40a3c4fea0d917577de96742900a61ab548"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Mar 11 15:49:40 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 11 21:59:44 2019 +0000"
      },
      "message": "Revert^2 \"Remove Global deopt requirement for several jvmti events\"\n\nThis reverts commit ad344b6a14feba90a06a205760e9bc766c56cab0.\n\nJit-on-first-use would cause the runtime to skip sending FramePop\nevents for exceptions in some circumstances due to longjmp-ing over\nthe frames. This requires forcing jit off from the first instant a\nthread can get frame popped events, which is unfortunate.\n\nReason for revert: Fixed issue causing 1925 to fail on\n                   jit-on-first-use and redefine-stress\nTest: ./test.py --host\nTest: ./art/test/testrunner/run_build_test_target.py -j50 art-jit-on-first-use\n\nChange-Id: I6ec2a799db1041262a055be10e1af1faece6f2fc\n"
    },
    {
      "commit": "ef764ad3e6d7f07ea9e32642dc3e163bb4eb44fb",
      "tree": "5e1c7ff96cfab2dd95d6c4de7e90e73be1088d0b",
      "parents": [
        "ad344b6a14feba90a06a205760e9bc766c56cab0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Mar 10 22:37:15 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Mar 10 22:37:15 2019 +0000"
      },
      "message": "Move range_t definition is linux block.\n\nOtherwise breaks the mac build.\n\nTest: m\nChange-Id: I0aa9a849184325c75422150a769607592738abd1\n"
    },
    {
      "commit": "ad344b6a14feba90a06a205760e9bc766c56cab0",
      "tree": "47801fc5b432b0baf544bb8fd522a9fd3b567a7e",
      "parents": [
        "739383c80684eeb41d380ca5d18e1e9a1fe9fd7f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 09 17:49:52 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 09 21:13:15 2019 +0000"
      },
      "message": "Revert \"Remove Global deopt requirement for several jvmti events\"\n\nThis reverts commit 334630ee9dffdd1932c1ee641d938f25362a4c1a.\n\nReason for revert: 1924-frame-pop-toggle fails on some configs.\n\nChange-Id: I5ed3846e0dfff09c67a468f319ff516e14c44e61\n"
    },
    {
      "commit": "739383c80684eeb41d380ca5d18e1e9a1fe9fd7f",
      "tree": "8341c7721df73df0b55b767cc3d9899ecf074cc1",
      "parents": [
        "9da91d2ee78a32e4bfa5f402f23835652b87023e"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Mar 08 14:28:43 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 09 19:25:36 2019 +0000"
      },
      "message": "Fix overflow in freed_bytes_histogram\n\nAlso ensures that histograms have appropriate Value type.\n\nTest: art/test/testrunner/testrunner.py --host\nBug: b/127959698\nChange-Id: Iefa5516170eef558c66fecac4b1a72b3623ff20f\n"
    },
    {
      "commit": "10d0c96a3539d91d085d63b3ccad80d4fd68c386",
      "tree": "336cd7633e91d84b731d61d5738adb6534920116",
      "parents": [
        "bdc6241921b5a46273e4ffb18d3fd12c3dd1b39a"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Mar 07 22:40:36 2019 +0000"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Mar 08 17:44:58 2019 +0000"
      },
      "message": "Revert^2 \"Add peak RSS stats to GC perf dump\"\n\nThis reverts commit cc292c611af7cdea6a2d9196fc347468b9233f71.\n\nReason for revert: RSS code is enabled only on linux now.\n\nTest: art/test/testrunner/testrunner.py --target --runtime-option\u003d-XX:DumpGCPerformanceOnShutdown\nBug: b/112187497\nChange-Id: Iea5926d3dd4f6248f85422627b6ee0da559beb39\n"
    },
    {
      "commit": "43c23b8bccd6823f40fa71c2f2fa2f7d47a930bd",
      "tree": "75877ff7e99a0fc957e8c44760b98e1e8d69f626",
      "parents": [
        "370a06477c418a2887528a593601a99c2ab828cd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 07 17:27:52 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 08 16:46:32 2019 +0000"
      },
      "message": "Delete thread pool in NotifyStartupCompleted\n\nDelete the thread pool when startup is completed instead of during\nheap trim.\n\nBug: 120671223\nTest: test-art-host\nChange-Id: I9715930db7045f46cb70b7fd71b33c00a61b7ac4\n"
    },
    {
      "commit": "334630ee9dffdd1932c1ee641d938f25362a4c1a",
      "tree": "81957d634aa76967d97c89014eb69158682b0128",
      "parents": [
        "5b76c16cca1984209e838ada4d79e370d7fda431"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Mar 04 15:08:04 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 08 04:07:45 2019 +0000"
      },
      "message": "Remove Global deopt requirement for several jvmti events\n\nThe JVMTI_EVENT_SINGLE_STEP, JVMTI_EVENT_FIELD_MODIFICATION,\nJVMTI_EVENT_METHOD_EXIT, JVMTI_EVENT_SINGLE_FIELD_ACCESS, and\nJVMTI_EVENT_FRAME_POP events would all deoptimize all threads in all\ncases when enabled. This changes the behavior to instead only\ndeoptimize individual threads when possible. This should make some\ndebugger interactions faster.\n\nTest: ./test.py --host -j72\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\n\nChange-Id: I42513cb17fd1144aeb03ca11afd3e3b05e918ce2\n"
    },
    {
      "commit": "175ce3dea89a40e68a685d7f873e8b9f082c45a6",
      "tree": "f4ba53dc33aca3ae71fd006b282a55dc926e53c9",
      "parents": [
        "cc292c611af7cdea6a2d9196fc347468b9233f71"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 06 16:54:24 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 08 01:22:42 2019 +0000"
      },
      "message": "Add callback for notifying that startup is completed\n\nAdd a callback that can be called to denote that application startup\nis completed. This may affect how the profile is collected and how\nstartup related caches are managed.\n\nBug: 123377072\nBug: 120671223\nTest: test-art-host\nChange-Id: If7eb8909cc5e99082a2243b5029380244b46174d\n"
    },
    {
      "commit": "cc292c611af7cdea6a2d9196fc347468b9233f71",
      "tree": "4d975d4b3091fababdfe5df5c40564b4a56ea99d",
      "parents": [
        "9adce77a8140f74fd93456ed363686e44be7ab68"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Mar 07 22:13:31 2019 +0000"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Mar 07 14:20:38 2019 -0800"
      },
      "message": "Revert \"Add peak RSS stats to GC perf dump\"\n\nThis reverts commit b4dad1bc139e46f25afeac21c9959f2787e4937a.\n\nReason for revert: mincore() is a linux-specific syscall. Failing builds on non-linux targets.\n\nTest: art/test/testrunner/testrunner.py --target\n--runtime-option\u003d-XX:DumpGCPerformanceOnShutdown should not print RSS\ninfo.\nChange-Id: I7b39e40a1096ca1bfbfd61c9430beaaeeee65903\n"
    },
    {
      "commit": "9adce77a8140f74fd93456ed363686e44be7ab68",
      "tree": "5c0d27a6cead983e351dc04f945f9ba9b5c9cfbd",
      "parents": [
        "b4dad1bc139e46f25afeac21c9959f2787e4937a"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Mar 01 16:52:46 2019 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Mar 07 10:03:23 2019 -0800"
      },
      "message": "Add freed bytes histogram to GC perf dump\n\nTest: art/test/testrunner/testrunner.py --target\nBug: b/112187497\nChange-Id: Ic70969c60af469354f065d348acae443223c5611\n"
    },
    {
      "commit": "b4dad1bc139e46f25afeac21c9959f2787e4937a",
      "tree": "5f09fa649df56eb8cd217fc9a32de9046f312e28",
      "parents": [
        "85dd9e35193a886d76734387d6764045bb4bb2d5"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Feb 27 16:21:16 2019 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Mar 07 17:56:07 2019 +0000"
      },
      "message": "Add peak RSS stats to GC perf dump\n\nUse mincore() to extract resident memory info and compute RSS specific\nto GC data structures and heaps. It must be computed at a time in the GC\ncycle when the physical memory consumption is at its peak. For instance,\nfor CC it is immediately after marking is finished and before regions\nare cleared.\n\nTest: art/test/testrunner/testrunner.py --target --runtime-option\u003d-XX:DumpGCPerformanceOnShutdown\nBug: b/112187497\nChange-Id: I92cf006524cf6c91ba1e96aa7c5303c578e6db54\n"
    },
    {
      "commit": "bf5f0f3f1eea2e712e7269ff1e1f9b1bcc4cbaee",
      "tree": "030ef55b56ede3dbf42b6b5f19c59bfc0583636f",
      "parents": [
        "7e057ec0e023910f6bc42bc552a8463343cf346f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 15:41:50 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 06 14:21:51 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Add code size to CodeInfo\"\"\n\nThis reverts commit e1412dacbf1d2a809bd1fca658cc8cb8f61f8ee6.\n\nBug: 123510633\nBug: 127305289\n\nReason for revert: b/127305289\n\nChange-Id: I54557b05a44777f1fa2c15bde4fa648980f42eed\n"
    },
    {
      "commit": "5708376183c4e2d4456a191955c5060e404a9f0a",
      "tree": "4afed897b6e71c45b4f51ae9536d5bb6da7ec024",
      "parents": [
        "3c83921510c849cd43b90ab6094abce232c8c088"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 09:24:45 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 15:40:35 2019 +0000"
      },
      "message": "Revert \"Remove code size from OatQuickMethodHeader\"\n\nThis reverts commit 131f23a4c2c34b689c07e6efd05cea74190f0113.\n\nBug: 123510633\nBug: 127305289\n\nReason for revert: b/127305289\n\nChange-Id: I59905779fe8c7d7551c0fa6c8693fb64eb6760b2\n"
    },
    {
      "commit": "d51e574e05a66bd6706f6e9e05f8abe0f8581551",
      "tree": "f782a63e1a530a3664724b98ecc8f20c0c6c66a4",
      "parents": [
        "e7e26d10a7a1446b42c00104b162bf07e7c01a04"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Feb 28 14:47:32 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 05 15:17:01 2019 +0000"
      },
      "message": "Reenable core platform API violation warnings, dedupe\n\nPrint a warning the first time a non-core platform API member is\naccessed and add kAccCorePlatformApi to its access flags to not report\nit next time. Only do this when policy is kJustWarn. This prevents\nlogspam.\n\nBug: 125701194\nBug: 119068555\nTest: compiles, boots\nTest: art/test.py -b -r -t 674\nChange-Id: Ia7d6ba4f1f30fbea7bdea1670183c17f84ca1150\n"
    },
    {
      "commit": "e7e26d10a7a1446b42c00104b162bf07e7c01a04",
      "tree": "fb571d4903a499d9effae5940440af5159b8548e",
      "parents": [
        "815d5e5304a5b57db64d6829813a14e464d5c55f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Feb 28 15:04:14 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 05 15:17:01 2019 +0000"
      },
      "message": "Assign non-runtime /apex/* dex files to platform domain\n\nUntil now only /system/framework and /apex/com.android.runtime were\nknown locations, assigning \"platform\" domain to the former and\n\"core-platform\" domain to the latter. The media and conscrypt modules\nwere left in the \"application\" domain.\n\nThis patch adds a hardcoded path to the apex root and assigns all dex\nfiles in subdirectories to the \"platform\" domain. This affects both\nconscrypt and media modules.\n\nAny other dex files on boot classpath are also assigned to \"platform\"\non first access. A warning is printed in such case and it is now deduped\nto avoid logspam.\n\nBug: 125701194\nBug: 119068555\nTest: compiles, boots, no conscrypt/media warnings about missing domain\nTest: art/test.py -b -r -t 674\nChange-Id: I33bef18459741095d3d99b541fc88b21cf547800\n"
    },
    {
      "commit": "b1b2ca97651b1993e0a00a4543209419afbc6e64",
      "tree": "64e58ebe9d4c77f1adf401bb4d9066c720a0c29c",
      "parents": [
        "37678283d1be77007e61bb0e811008aa89a27d14"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 09:23:37 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 11:36:19 2019 +0000"
      },
      "message": "Revert \"Don\u0027t pack code size in CodeInfo.\"\n\nThis reverts commit e35ac04a1a9a22b1c4386b27f3a30cd840aa17b1.\n\nBug: 123510633\nBug: 127305289\n\nReason for revert: b/127305289\n\nChange-Id: I18c2d9291411b31641333c14c47da8c4fdf317f7\n"
    },
    {
      "commit": "953da541353d874483480aece1f30c1f48a2e681",
      "tree": "d1bd1aa7f02c5504a8dc06f77d7ce4792ddc599a",
      "parents": [
        "6a1dab4184b8048209cdbebac5482393475e9b76"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 04 10:09:11 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 04 12:58:28 2019 +0000"
      },
      "message": "Clear the JIT task queue for child zygote.\n\nwebview_zygote doesn\u0027t need the boot classpath to be compiled.\n\nTest: boot and check webview_zygote doesn\u0027t JIT.\nBug: 119800099\nChange-Id: Iec7f967633b4df4c4524c876093a039a5ad04f9f\n"
    },
    {
      "commit": "6a1dab4184b8048209cdbebac5482393475e9b76",
      "tree": "809f7a486e0f11d25d01afd67b750164bd95bd9a",
      "parents": [
        "d8e040145be0b8e240aef0745651cc14bcacdb9d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Feb 28 18:45:15 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Mar 04 10:09:52 2019 +0000"
      },
      "message": "Fix handling of proxy classes in hidden_api.h\n\nInspecting proxy classes with reflection/JNI could result in an ART\ncrash because hiddenapi::detail::GetDexFlags() assumed that all classes\nhave a class def index and can be iterated over. This actually revealed\na more general issue with proxy classes.\n\nThis patch replaces a proxy method with the interface method at the\nbeginning of ShouldDenyAccessToMember. This takes care of all proxy\nmethods and will instead look at hidden API flags of the interface\nmethods. What\u0027s left is proxy fields - both synthetic implementation\ndetails. Special case those and assign to greylist for now.\n\nBug: 124218696\nTest: art/test.py -r -t 691-hiddenapi-proxy\nChange-Id: I36c961cd4ffb196641db162818a0f9659aed8a32\n"
    },
    {
      "commit": "c2e2c45f49da353bf3f67c0fb5a3e3dddd33479a",
      "tree": "ed652537cfa07424d0e839cacf0d749971e7e20e",
      "parents": [
        "da5f83d44fb302b2ca7091911dbcecdece7c529b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 28 13:06:33 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 01 09:52:21 2019 +0000"
      },
      "message": "Remove bogus ImageWriter friend declaration.\n\nThere is no art::ImageWriter, only art::linker::ImageWriter.\n\nTest: Rely on TreeHugger.\nChange-Id: I59b02debb861b783408ddcbcc90534d9a3b7907e\n"
    },
    {
      "commit": "e35ac04a1a9a22b1c4386b27f3a30cd840aa17b1",
      "tree": "951fc00e6ef2a8576c9f6c0a6d7601cd93283199",
      "parents": [
        "8834699a05deb680a36dd3075afb85aee9208f37"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 25 18:11:53 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 27 23:20:07 2019 +0000"
      },
      "message": "Don\u0027t pack code size in CodeInfo.\n\nThe unpacking is tricky for host tooling as we need to propagate ISA.\n\nThis adds 0.05% to oat file size.\n\nBug: 123510633\nChange-Id: I5618db5e5dbe83d8a2bb89aef61cb0b10e336f40\n"
    },
    {
      "commit": "1d077ac3ae194333978b503db021bc07413113e0",
      "tree": "a7076fa555dec16fa404243d9587bb87e6aaf3fd",
      "parents": [
        "141b63c07e563ec0e40960b81e6ceb8c2e4b9749"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 15:53:28 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 17:03:36 2019 +0000"
      },
      "message": "Also JIT non-startup methods in zygote.\n\nNoticed this while looking at systraces - the original code I\u0027ve put\nin was only adding startup methods.\n\nAlso don\u0027t create a JNI global reference for boot classpath classes which\nwill never get GCed.\n\nTest: startup dialer, look at systrace\nBug: 119800099\nChange-Id: I12c173a85f8a8bc393693432624c54d916161bf7\n"
    },
    {
      "commit": "de1b2a2113b9e2c44b90c441177060142c7abbfd",
      "tree": "1e710fb3c5fdf8c11858a6a2418a53a5ad1ab1d8",
      "parents": [
        "ffe26cc54fac4f1997e5dbf6991da9e95ce49e31"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 09:10:57 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 12:44:48 2019 +0000"
      },
      "message": "Revert \"Revert \"Add support for booting with a boot classpath not fully AOTed.\"\"\n\nThis reverts commit 14bfeddf2e434954f0ca36687ac0fc5dc6412bd3.\n\nReason for revert: Removes obsolete DCHECK\nBug: 119800099\n\nChange-Id: Ia984f95300c6b96165f0179bfc2f66b012bf5dbe\n"
    },
    {
      "commit": "14bfeddf2e434954f0ca36687ac0fc5dc6412bd3",
      "tree": "59b23768c4d886e99bd81968e0eaf26ff2160a37",
      "parents": [
        "e55ea985ab4f77ca9557e33a2d29dc1a1f0ac078"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 26 22:16:07 2019 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 26 23:59:26 2019 +0000"
      },
      "message": "Revert \"Add support for booting with a boot classpath not fully AOTed.\"\n\nThis reverts commit 7417ce97c4dcabbd7423d46ff9b7cdaf95c1e0f9.\n\nReason for revert: Breaks debug mode\n\nBug: 119800099\nBug: 126239181\nChange-Id: I2d4a79f957a020cc6404a130536a416daebc94e3\n"
    },
    {
      "commit": "d388390c556181942b78a5384c3c66afd1d34222",
      "tree": "ca62bd886f00c53260abe3053dd8c058354984d6",
      "parents": [
        "817a47faba3b9150fd9345fbbda1320b02ebfa01"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 26 17:29:32 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 26 17:29:32 2019 +0000"
      },
      "message": "\"Revert^3 \"Suspend the runtime when switching interpreters.\"\n\nThis reverts commit 817a47faba3b9150fd9345fbbda1320b02ebfa01.\n\nReason for revert: Breaks build.\n\nChange-Id: I51a38e47186f778b4c1c119e9f21a5d5a1b786a8\n"
    },
    {
      "commit": "817a47faba3b9150fd9345fbbda1320b02ebfa01",
      "tree": "51d0876c8cb667384a25ee6a2eede761a121d455",
      "parents": [
        "e173798b890e3fdd2bbd68cda997d7b3d1a5a902"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 08 14:05:37 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 26 11:08:41 2019 +0000"
      },
      "message": "Revert^2 \"Suspend the runtime when switching interpreters.\"\n\nThis reverts commit 9fd68f6795eab7085986f80b1c4d00dc45a68485.\n\nTest: art/test.py -b --host --64\nTest: art/tools/run-libcore-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX64\u0027\nTest: art/tools/run-libjdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX64\u0027\nChange-Id: I9d2faeb8b88ce7cf42915890c6089c725907e6dd\n"
    },
    {
      "commit": "797801c258801f895473a8cb71fda01cd37ce4c0",
      "tree": "f4a83d8dde0725257a4f195149f5108b5f0d8632",
      "parents": [
        "ae33e5ab58802e76a5c2d8e5860f099cecb909b4",
        "6d8d4a27fcd41aa9ead932d96cf4d80647920831"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 25 09:16:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 25 09:16:57 2019 +0000"
      },
      "message": "Merge \"ART: Remove obsolete option -Xpatchoat:.\""
    },
    {
      "commit": "9176a4f86e9f9c579002a3b9947733e01b96baff",
      "tree": "d8e960de8f108f60d21f09ac5e9b461e41dc5bbc",
      "parents": [
        "923917226c2037df8166c715834241c02e37cccc",
        "99fc9389d08c83de66b6f1ca44bd1820329600a6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Feb 24 13:38:34 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Feb 24 13:38:34 2019 +0000"
      },
      "message": "Merge \"Trust that boot classpath dex files don\u0027t need on device dex file verification.\""
    },
    {
      "commit": "c816d24f1e35ff8e10d5eadc77d5a75d6be5e776",
      "tree": "7be1f416621883f2b4b3bc646dc4c1dabb7def8b",
      "parents": [
        "bc0c48496cb9d22a9e0ee7e1c3d3016289f8150a",
        "e0b2ce413367c9266e9b0657a0505c1ef776b7ae"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 22 20:49:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 22 20:49:03 2019 +0000"
      },
      "message": "Merge \"Revert^2 \"Prevent agents from delaying system daemon threads\"\""
    },
    {
      "commit": "e0b2ce413367c9266e9b0657a0505c1ef776b7ae",
      "tree": "ea17b0478011d74009177bf9cf568718b3482777",
      "parents": [
        "77182cd0f4527538df832eddbc775391c283cffb"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 21 19:23:42 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 22 08:56:22 2019 -0800"
      },
      "message": "Revert^2 \"Prevent agents from delaying system daemon threads\"\n\nIt looks like there might be a race between DetachCurrentThread and\nruntime shutdown that the original CL exposed with test 1919. I\u0027m not\nsure why this test exposed this issue, possibly it\u0027s due to the\nremoval of the Daemon events making the test faster, thus more likely\nto get to runtime-shutdown without the testing thread having fully\ndetached.\n\nThis reverts commit c08c10713e8884e8adfbf6a8e370a9ec96c1883f.\n\nReason for revert: (Hopefully) made test 1919 resistant to the flake\n                   it was experiencing.\nTest: ./test.py --host --ndebug -j80\n\nBug: 123696564\nBug: 124284724\n\nChange-Id: I2e58a71aa174f6b89e57c31378b0fe5bb41a8844\n"
    },
    {
      "commit": "6d8d4a27fcd41aa9ead932d96cf4d80647920831",
      "tree": "3c698d1f6cb8c4fa54480092a10a354907b09ba4",
      "parents": [
        "9a8dcea0e97e610c5b8589e0093dbb7766a08694"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 22 15:04:41 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 22 15:04:41 2019 +0000"
      },
      "message": "ART: Remove obsolete option -Xpatchoat:.\n\nTest: Rely on TreeHugger\nChange-Id: I01de17df4854ada2710a031f7d4952e18ffdc9e8\n"
    },
    {
      "commit": "bc0c48496cb9d22a9e0ee7e1c3d3016289f8150a",
      "tree": "074e3820f16dcf7a1d8f5f0f3a5a04cc7c67b2cd",
      "parents": [
        "c76c4cc4230f78aaa15decc94f28ec7de3c3aa02",
        "ed19c670d77bf52454c4be88e05f6f3d5b88454f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 22 14:51:55 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 22 14:51:55 2019 +0000"
      },
      "message": "Merge \"Fix errno handling to avoid being overwritten\""
    },
    {
      "commit": "99fc9389d08c83de66b6f1ca44bd1820329600a6",
      "tree": "2cc61c6e3e7984939e88ce4922886bcef18e0fa4",
      "parents": [
        "c76c4cc4230f78aaa15decc94f28ec7de3c3aa02"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 20 13:17:27 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 22 13:09:40 2019 +0000"
      },
      "message": "Trust that boot classpath dex files don\u0027t need on device dex file verification.\n\nBug: 119800099\nTest: boots\nChange-Id: I6d48a38945d601a3d74ebde2496c1446711c35fe\n"
    },
    {
      "commit": "c76c4cc4230f78aaa15decc94f28ec7de3c3aa02",
      "tree": "27dca36f773eb16c0944f0eb35f05a8067855dcd",
      "parents": [
        "c0584d97133a52b0fbc8347ea6edcd9c472de638",
        "144f82c2714be2bef9deb159e9d6ef4de583cc2c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 22 12:44:04 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 22 12:44:04 2019 +0000"
      },
      "message": "Merge \"In boot image experiment mode, treat boot classpath classes as verified.\""
    },
    {
      "commit": "144f82c2714be2bef9deb159e9d6ef4de583cc2c",
      "tree": "4526313c0e87e9cb35841ff91ef556e04aaf31e4",
      "parents": [
        "ec956e8866e4ee9fe59bb99b4db6a3b6017937f1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 21 09:43:18 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 22 08:45:27 2019 +0000"
      },
      "message": "In boot image experiment mode, treat boot classpath classes as verified.\n\nBug: 119800099\nTest: m \u0026\u0026 boot\nChange-Id: Ib7fbdf46c1fd65a79f07c5331eae4a54d526ce5b\n"
    },
    {
      "commit": "ed19c670d77bf52454c4be88e05f6f3d5b88454f",
      "tree": "24ebe39500709ff813c7fdf6570a5f2f3a6952a0",
      "parents": [
        "77182cd0f4527538df832eddbc775391c283cffb"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Thu Feb 21 15:32:32 2019 -0800"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Fri Feb 22 00:09:55 2019 +0000"
      },
      "message": "Fix errno handling to avoid being overwritten\n\nBug: 124468627\nTested: m build-art-host\n\nChange-Id: I4c9fba1ddd6374b8f4451b82ccfc7aed666c6ebc\n"
    },
    {
      "commit": "5c8b35109f28e95dfd56dd9da4a90eb1d6ad9d09",
      "tree": "b3311c0318b5c90bbd8632f8937a4e6f91f13407",
      "parents": [
        "e57087025bb462f875c1fb0574eefba92f29ff20",
        "c08c10713e8884e8adfbf6a8e370a9ec96c1883f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 21 14:27:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 14:27:30 2019 +0000"
      },
      "message": "Merge \"Revert \"Prevent agents from delaying system daemon threads\"\""
    },
    {
      "commit": "e57087025bb462f875c1fb0574eefba92f29ff20",
      "tree": "15278f603ea9508869dcc9ab9b26a97617e3fc1a",
      "parents": [
        "c55a1a260e34144d294640d84d09f5c1d77636ca",
        "131f23a4c2c34b689c07e6efd05cea74190f0113"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 21 12:41:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 12:41:53 2019 +0000"
      },
      "message": "Merge \"Remove code size from OatQuickMethodHeader\""
    },
    {
      "commit": "c08c10713e8884e8adfbf6a8e370a9ec96c1883f",
      "tree": "84dc682b40f38d0377639befe6f3d43e5655a43c",
      "parents": [
        "3611fdf703a6417c08a2e3d6e642d5936318de18"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 21 10:15:28 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 21 10:15:28 2019 +0000"
      },
      "message": "Revert \"Prevent agents from delaying system daemon threads\"\n\nThis reverts commit 3611fdf703a6417c08a2e3d6e642d5936318de18.\n\nBug: 123696564\nBug: 124284724\nReason for revert: b/124284724\n\nChange-Id: I546758b4cbb5e3f62f7b66a2faed544abce0d9c2\n"
    },
    {
      "commit": "c55a1a260e34144d294640d84d09f5c1d77636ca",
      "tree": "498e5cf3b955977eb43b8a489faa3e47be82b510",
      "parents": [
        "ec956e8866e4ee9fe59bb99b4db6a3b6017937f1",
        "2b076df33e508c04657427e4bd961d19f964e0ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 21 09:57:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 09:57:58 2019 +0000"
      },
      "message": "Merge \"Make jni_internal_test a CommonRuntimeTest.\""
    },
    {
      "commit": "ec956e8866e4ee9fe59bb99b4db6a3b6017937f1",
      "tree": "ff9721ecf2ee2d41d115d5bdeabd226bc33b565d",
      "parents": [
        "c82259085bceb7e4f0e19f60039d6667f6907dcd",
        "eda46e9cad4271af7188fe0f542cbe88679f4c6e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Feb 21 09:37:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 09:37:46 2019 +0000"
      },
      "message": "Merge changes Ifd690cda,I7bcbe947\n\n* changes:\n  Fix vdex fast-verify performance regression\n  Improve `verified`, add `redefined` class status in VerifierDeps\n"
    },
    {
      "commit": "eda46e9cad4271af7188fe0f542cbe88679f4c6e",
      "tree": "9632daf7b7c0600bd9200da65e43f6640c4cfc27",
      "parents": [
        "feb228244619237d110d8817865d7647f37b9b4f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 18 12:38:19 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 20 18:32:10 2019 +0000"
      },
      "message": "Fix vdex fast-verify performance regression\n\nRecent CL I0d06b82e31088c58d4493723a5435309740f1d0c generalized the\nfast-verify class redefinition check by checking that all vdex-verified\nclasses resolve to dex files covered by the vdex and are not duplicates\nof classes in parent class loaders. This introduced a performance and\nallocated memory regression for dex2oat invoked with\ncompiler-filter\u003dverify(-profile).\n\nThis patch removes the regression by acquiring a list of classpath dex\nfiles from the compiler driver and boot classpath dex files from the\nclass linker, avoiding class resolution altogether.\n\nA small performance overhead remains as previously only boot classpath\nwas being searched.\n\nTest: run `dex2oat filter\u003dinterpret-only; dex2oat filter\u003dverify`\n      compare time and allocated memory numbers before CL and after\nChange-Id: Ifd690cdafdc99d3eafb9847d67775fc11a5b5023\n"
    },
    {
      "commit": "feb228244619237d110d8817865d7647f37b9b4f",
      "tree": "5f30c01597761e6552ea5f770443bc12785a9562",
      "parents": [
        "9dcc0733afe9c512e93317291de0b0a7124ef465"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 13 21:25:57 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 20 18:32:10 2019 +0000"
      },
      "message": "Improve `verified`, add `redefined` class status in VerifierDeps\n\nChanges implementation of `unverified_classes_` in VerifierDeps from\nstd::set\u003cdex::TypeIndex\u003e to `verified_classes_` of type std::vector\u003cbool\u003e\nindexed by class def indices. This cleans up the implementation and speeds\nup access during fast-verify. Encoding remains the same - a set of indices\nof unverified classes - only these are now class def indices.\n\nA second bit vector `redefined_classes_` is added, also indexed by class\ndef indices. It records classes that were not verified because they were\neclipsed by classes that took precedence during resolution. This allows\nVerifierDeps::VerifyInternalClasses to succeed when a class redefined\nnow was also redefined when the deps were being created because the\nclass was treated as external and dependencies on it were recorded.\n\nTest: m test-art-gtest-verifier_deps_test\nChange-Id: I7bcbe947c3c74535306e6dbb5b288076f320a7bc\n"
    },
    {
      "commit": "98b970dd7486fd8a5b039e1256584c20f60309bb",
      "tree": "59810fa35878c443711117bf90be161e4b676bee",
      "parents": [
        "c216c190c425d64c6b0485b4fb8513024a0c8d62",
        "7417ce97c4dcabbd7423d46ff9b7cdaf95c1e0f9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 20 16:38:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 20 16:38:58 2019 +0000"
      },
      "message": "Merge \"Add support for booting with a boot classpath not fully AOTed.\""
    },
    {
      "commit": "6ad020df482b6113b7949c1c36d71b0fdadfa6a2",
      "tree": "1cc8acd0ea3370dec8f7b6bb5c016e29241e779d",
      "parents": [
        "0faaf9cd2fc8eb386bad9d96d86217b14308b243"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Mon Feb 18 12:15:51 2019 +0000"
      },
      "committer": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Wed Feb 20 12:58:29 2019 +0000"
      },
      "message": "Pass sampled value to hidden api access logger\n\nThe hidden api access logger can use multiple logging methods, each with\nits own sampling rate. ART will only be aware of the maximum sampling\nrate, and it will be up to the logger to choose which logging method or\nmethods will be chosen.\n\nTest: m\nBug: 119217680\n\n(cherry picked from commit 5746f795e254fc74ab54ba4e59bc0c5e994efb03)\n\nChange-Id: Ida8d494cb280cb94cd27adf1264776d3e9306471\nMerged-In: I888e55c76ea7a032c35e880a981d1fc9dd4ba6b6\n"
    },
    {
      "commit": "2b076df33e508c04657427e4bd961d19f964e0ed",
      "tree": "37c77f1f86400bf52b9f49cff9f40ba2de9122fe",
      "parents": [
        "038924b75f06b91c2a7e944196ca11f118ce182f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 20 11:27:52 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 20 12:03:00 2019 +0000"
      },
      "message": "Make jni_internal_test a CommonRuntimeTest.\n\nAlso clean up proxy_test and reflection_test.\n\nTest: m test-art-host-gtest\nChange-Id: I7530855a40d7b9f7214ea7a069508ae1361b2b42\n"
    },
    {
      "commit": "7417ce97c4dcabbd7423d46ff9b7cdaf95c1e0f9",
      "tree": "3e84a40b0da5f826cbfd5ff4fb93c0b3dd4355e3",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 01 10:52:42 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 19 17:59:31 2019 +0000"
      },
      "message": "Add support for booting with a boot classpath not fully AOTed.\n\nBug: 119800099\nTest: adb shell setprop dalvik.vm.boot-image \"/system/framework/nonexistent.art\"\n\nChange-Id: I6641399f43c24702f19f4d976c6054d77186799e\n"
    },
    {
      "commit": "03c6b174a4e412e9bb62935c4ee15b5445e517f2",
      "tree": "1deaa160bde1a6f6089fdce8e1d2c8797422b5a9",
      "parents": [
        "03fc50104cb5225542de33cdafaff1613ec05cf9",
        "53eb07f0858795b7487eddc23b95ac38336696a7"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 19 14:49:20 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 19 14:49:20 2019 +0000"
      },
      "message": "Merge \"Refactor ElfDebugReader.\""
    },
    {
      "commit": "53eb07f0858795b7487eddc23b95ac38336696a7",
      "tree": "8b5710abea53fdf95aac2c582d58b465e9fd46e7",
      "parents": [
        "e39765cd311f31653137a2efede6c0eb7903e434"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 16:34:55 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 18 14:06:22 2019 +0000"
      },
      "message": "Refactor ElfDebugReader.\n\nMake the code more flexible, which I will need for\nfuture mini-debug-info work.\n\nBug: 110133331\nTest: ./art/test.py -b -r -t 137\nChange-Id: I8b0fe3c43537f546f2ff103bff3c63a59a0f940a\n"
    },
    {
      "commit": "42d9967a2417fe08987c152e40cebeb88851ec44",
      "tree": "c72b0af2de14671d81deaf9d3ac4722ab0b4b38a",
      "parents": [
        "e39765cd311f31653137a2efede6c0eb7903e434",
        "e23b388982429becfb9bc9d0358490eea7a81596"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Feb 16 20:37:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 16 20:37:27 2019 +0000"
      },
      "message": "Merge \"Add verbose logging for app image startup cache feature\""
    },
    {
      "commit": "7f7285657c06bbd48fae131afd5148fae4403f11",
      "tree": "2de7fb7fbb2a59c67dc3dd06aaad49d5b924fed4",
      "parents": [
        "768b15d9d1b6847910da4782672bdec79913a8b7"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 17:52:33 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 15 00:20:18 2019 +0000"
      },
      "message": "Fix DumpNativeStack function for traced methods. (part 2)\n\nThe alignment didn\u0027t work for thumb due to least significant bit set.\n\nBug: 123510633\nTest: ./art/test.py -b -r -t 163\nChange-Id: I173bdef1050c79a7431955034e3eb001d1efae05\n"
    },
    {
      "commit": "e23b388982429becfb9bc9d0358490eea7a81596",
      "tree": "483db5909363024dbc14c19b5d3abaecf3766ca4",
      "parents": [
        "768b15d9d1b6847910da4782672bdec79913a8b7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 14 07:35:43 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 14 08:08:49 2019 -0800"
      },
      "message": "Add verbose logging for app image startup cache feature\n\nWill be parsed from logcat to test the feature.\nLogging is of the form: AppImage:load_startup_cache\n\nBug: 124437687\nBug: 123524494\n\nTest: adb shell device_config put runtime_native use_app_image_startup_cache true\nTest: start app\nTest: look at logcat\nTest: repeat with false\n\nChange-Id: I130ef9e6e4b8cb03497c25cd0a88727d5e60ffbc\n"
    },
    {
      "commit": "131f23a4c2c34b689c07e6efd05cea74190f0113",
      "tree": "c0c1927bd770f0224c6aed5eaccb13765a7cc57d",
      "parents": [
        "438cc2b34be2a5d114a50ba6cdef22f9045d863a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 29 18:52:12 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 09:44:47 2019 +0000"
      },
      "message": "Remove code size from OatQuickMethodHeader\n\nThis saves from 0.75% from oat file size.\n\nBug: 123510633\nChange-Id: Ibf0d45d5d84057ee45a3584a4b69a7c0487443bf\n"
    },
    {
      "commit": "438cc2b34be2a5d114a50ba6cdef22f9045d863a",
      "tree": "68af43b712b3fb25f570e4b12ab895126eb47bcd",
      "parents": [
        "cf23c5d8e558657e1a0eea15b8ec6a54ece9b677",
        "e1412dacbf1d2a809bd1fca658cc8cb8f61f8ee6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 09:44:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 14 09:44:24 2019 +0000"
      },
      "message": "Merge \"Revert^2 \"Add code size to CodeInfo\"\""
    },
    {
      "commit": "e1412dacbf1d2a809bd1fca658cc8cb8f61f8ee6",
      "tree": "bb3f56ecefe08b66f7a330a02caef0b089a0c2af",
      "parents": [
        "8f20a23a35fa6fbe4dcb4ff70268a24dc7fb2a24"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 13 17:27:17 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 09:43:00 2019 +0000"
      },
      "message": "Revert^2 \"Add code size to CodeInfo\"\n\nThis temporarily adds 0.25% to oat file size.\nThe space will be reclaimed back in follow-up CL.\n\nThis reverts commit 8f20a23a35fa6fbe4dcb4ff70268a24dc7fb2a24.\n\nReason for revert: Reland as-is after CL/903819\n\nBug: 123510633\nTest: DCHECK compare the two stored code sizes.\nChange-Id: Ia3ab31c208948f4996188764fcdcba13d9977d19\n"
    },
    {
      "commit": "eea5fd3561ec3cc1f97b754607e69c2f84d17a6d",
      "tree": "9bacc8130ccbbebb5dc4b4e674f9ae20f5b1968b",
      "parents": [
        "d8c4a38b3fc37efdfe691c317b37e9808022f7a3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 13 17:24:17 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 13 17:26:29 2019 +0000"
      },
      "message": "Fix DumpNativeStack function for traced methods.\n\nThe art_quick_instrumentation_exit stub does not have oat header.\n\nBug: 123510633\nTest: test.py -b -r --host --trace -r -t 163\nChange-Id: I56d72816daf836440feccb42c81031f120e8c4c5\n"
    },
    {
      "commit": "3c09f2c51c796df68386b16dfdab6d63734baec6",
      "tree": "9a772ac535bea14ffd837b5b13b5abdb84d79255",
      "parents": [
        "f09a3c3eec07ae03b7eef3e27bf8eae25261cd46",
        "8f20a23a35fa6fbe4dcb4ff70268a24dc7fb2a24"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 22:10:43 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 12 22:10:43 2019 +0000"
      },
      "message": "Merge \"Revert \"Add code size to CodeInfo\"\""
    },
    {
      "commit": "8f20a23a35fa6fbe4dcb4ff70268a24dc7fb2a24",
      "tree": "84dc682b40f38d0377639befe6f3d43e5655a43c",
      "parents": [
        "68efa7b1128486e08ae60cd27181645b27bbd2e4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 19:42:54 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 19:42:54 2019 +0000"
      },
      "message": "Revert \"Add code size to CodeInfo\"\n\nThis reverts commit 68efa7b1128486e08ae60cd27181645b27bbd2e4.\n\nReason for revert: Breaks tests\n\nChange-Id: I28fb143990f58e0d5f0b106bea9d9a159f19297e\n"
    },
    {
      "commit": "a05344750f6996b32de18a25d0ba55115235dbb6",
      "tree": "f8a50bc1f5e8fe4c9f4bc69d7b690fd08611ab84",
      "parents": [
        "72c403b9b5027e7849a5145a0af0166f5d3d42c2",
        "68efa7b1128486e08ae60cd27181645b27bbd2e4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 11:45:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 12 11:45:06 2019 +0000"
      },
      "message": "Merge \"Add code size to CodeInfo\""
    },
    {
      "commit": "3611fdf703a6417c08a2e3d6e642d5936318de18",
      "tree": "ef152ff80f42b6486e5a02eee3fb7a02fbef15e7",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 06 15:10:58 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 11 11:03:22 2019 -0800"
      },
      "message": "Prevent agents from delaying system daemon threads\n\nThe runtime starts several important daemon threads that are\nresponsible for various GC related tasks (i.e. FinalizerDaemon, etc).\nThe runtime cannot be considered fully started until these threads\nhave been started or will be started soon.\n\nIt was possible for agents to delay the startup of these daemons\narbitrarily (while calling arbitrary java code) by never leaving the\nVMInit event or by never returning from the daemons ThreadStart\nevents. This could cause deadlocks or other errors when using some\nagents, such as libjdwp.\n\nIn order to prevent these issues and more closely match other java\nlanguage runtimes we launch these threads before sending the VMInit\nevent and suppress their ThreadStart events. The openjdkjvmti plugin\nthen waits for the Daemon threads to actually begin executing before\ncalling the VMInit event or any other agent code. This prevents the\nagents from seeing threads appear from nowhere.\n\nBug: 123696564\nTest: while atest CtsJdwpTestCases; do; done;\n\nChange-Id: I7e07187f3e8670f32df0490cb419585c13d81765\n"
    },
    {
      "commit": "68efa7b1128486e08ae60cd27181645b27bbd2e4",
      "tree": "bb3f56ecefe08b66f7a330a02caef0b089a0c2af",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 28 18:59:23 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 11 13:23:53 2019 +0000"
      },
      "message": "Add code size to CodeInfo\n\nThis temporarily adds 0.25% to oat file size.\nThe space will be reclaimed back in follow-up CL.\n\nBug: 123510633\nTest: DCHECK compare the two stored code sizes.\nChange-Id: I15340824ca637fd075a4cef87771b06cb96bb9f4\n"
    },
    {
      "commit": "1e70b89afe0e022ec51210ea0da1e0706e194fd0",
      "tree": "1c2b9d0c52e008795ec122b4b904c85c103b3e31",
      "parents": [
        "61a9328e807426636d3e29699cd978d4a7a345c0",
        "6c70224ebd667b52a862f850893f6528af63f3e8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 11 10:27:11 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 11 10:27:11 2019 +0000"
      },
      "message": "Merge changes Id4ffa9f9,I1bb5d05d\n\n* changes:\n  Replace MergeSets() with std::set::merge().\n  Replace StringPiece with std::string_view.\n"
    }
  ],
  "next": "6c70224ebd667b52a862f850893f6528af63f3e8"
}
