)]}'
{
  "log": [
    {
      "commit": "e10abe7d84ed44d61401d24073f01d1c7777e17c",
      "tree": "f675fae36a159220dad49664a295d254287dd584",
      "parents": [
        "02e3be0f15a71a90d3265a510847ca4c1c45b910"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Oct 28 03:49:55 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 09 15:30:21 2021 +0000"
      },
      "message": "Inherit art_defaults in cc_library_headers as well.\n\nTo take art_defaults closer to a true global defaults used by\neverything in the ART module. It has mostly compiler flags which aren\u0027t\napplicable for header modules, but it may have other things as well,\nnotably min_sdk_version.\n\n#codehealth\n\nTest: Run-tests, gtests, libcore tests and libjdwp tests for host and\n  device on master-art\nBug: 204364566\nChange-Id: Iba53785a992894fe7e8209a520e7ad9ec32636a2\n"
    },
    {
      "commit": "e501434b98c740969607e400678a43a8f3c79942",
      "tree": "05c85246b6e125f49cdb97a46119adfaf6a0a339",
      "parents": [
        "81c76d8dac3f4c4d50cad21a0b94a155908bc7d1"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 19 18:21:53 2021 +0000"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Jul 20 16:39:15 2021 +0000"
      },
      "message": "dt_fd_forward: fix uses of uninit values\n\n`NetworkToHost(x)` where `x` is uninitialized (or isn\u0027t fully written\nwith bytes) angers our static analyzer, and may be easy to accidentally\nuse going forward. If we rephrase `HandleResult` to instead take a\ncallable type that produces a T, we can sidestep all of this.\n\nCaught by the static analyzer:\n\u003e art/dt_fd_forward/dt_fd_forward.cc:554:30: warning: 1st function call\nargument is an uninitialized value [clang-analyzer-core.CallAndMessage]\n\u003e art/dt_fd_forward/dt_fd_forward.cc:563:30: warning: 1st function call\nargument is an uninitialized value [clang-analyzer-core.CallAndMessage]\n\u003e art/dt_fd_forward/dt_fd_forward.cc:572:30: warning: 1st function call\nargument is an uninitialized value [clang-analyzer-core.CallAndMessage]\n\nBug: None\nTest: TreeHugger, `WITH_TIDY\u003d1 CLANG_ANALYZER_CHECKS\u003d1 mma`\n\nChange-Id: Id759bd36085bdd34399b64b08363b4682746fdfa\n"
    },
    {
      "commit": "ec388c026a5709dea339ad43f8bca10b2d991d6e",
      "tree": "49cf87249facd3c8dabb33ab10f8273a75fe2a50",
      "parents": [
        "e017bb072ac577eee5413bd7e5e136f4eaf75908"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 03 22:09:06 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 19 07:09:56 2021 +0000"
      },
      "message": "Add min_sdk_version for ART module.\n\nBug: 180399951\nTest: m\nChange-Id: I5e2a1ddc3063be26c602bf4db8e6b77f2d54b656\n"
    },
    {
      "commit": "9150de6901996679c0ea6b34e74c8ddcc718d309",
      "tree": "496386b00b2a1b0b3bfbc36b09cf8083e3922f9b",
      "parents": [
        "8da26145fba859a5aba047f6280568565ffb8bfc"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 26 03:22:24 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 02 07:18:14 2021 +0000"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to art\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  adbconnection/Android.bp\n  benchmark/Android.bp\n  build/Android.bp\n  build/Android.cpplint.mk\n  build/Android.gtest.mk\n  build/apex/Android.bp\n  build/boot/Android.bp\n  build/sdk/Android.bp\n  cmdline/Android.bp\n  compiler/Android.bp\n  dalvikvm/Android.bp\n  dex2oat/Android.bp\n  dexdump/Android.bp\n  dexlayout/Android.bp\n  dexlist/Android.bp\n  dexoptanalyzer/Android.bp\n  disassembler/Android.bp\n  dt_fd_forward/export/Android.bp\n  imgdiag/Android.bp\n  libartbase/Android.bp\n  libartpalette/Android.bp\n  libartservice/Android.bp\n  libartservice/tests/Android.bp\n  libarttools/Android.bp\n  libdexfile/Android.bp\n  libelffile/Android.bp\n  libnativebridge/Android.bp\n  libnativebridge/tests/Android.bp\n  libnativeloader/Android.bp\n  libnativeloader/test/Android.bp\n  libnativeloader/test/Android.mk\n  libprofile/Android.bp\n  oatdump/Android.bp\n  odrefresh/Android.bp\n  perfetto_hprof/Android.bp\n  profman/Android.bp\n  runtime/Android.bp\n  simulator/Android.bp\n  test/001-HelloWorld/Android.bp\n  test/001-Main/Android.bp\n  test/002-sleep/Android.bp\n  test/004-InterfaceTest/Android.bp\n  test/004-SignalTest/Android.bp\n  test/004-UnsafeTest/Android.bp\n  test/004-checker-UnsafeTest18/Android.bp\n  test/006-args/Android.bp\n  test/007-count10/Android.bp\n  test/009-instanceof/Android.bp\n  test/010-instance/Android.bp\n  test/011-array-copy/Android.bp\n  test/012-math/Android.bp\n  test/013-math2/Android.bp\n  test/014-math3/Android.bp\n  test/015-switch/Android.bp\n  test/016-intern/Android.bp\n  test/017-float/Android.bp\n  test/018-stack-overflow/Android.bp\n  test/019-wrong-array-type/Android.bp\n  test/020-string/Android.bp\n  test/021-string2/Android.bp\n  test/022-interface/Android.bp\n  test/025-access-controller/Android.bp\n  test/026-access/Android.bp\n  test/027-arithmetic/Android.bp\n  test/028-array-write/Android.bp\n  test/029-assert/Android.bp\n  test/030-bad-finalizer/Android.bp\n  test/033-class-init-deadlock/Android.bp\n  test/034-call-null/Android.bp\n  test/035-enum/Android.bp\n  test/036-finalizer/Android.bp\n  test/037-inherit/Android.bp\n  test/038-inner-null/Android.bp\n  test/039-join-main/Android.bp\n  test/040-miranda/Android.bp\n  test/041-narrowing/Android.bp\n  test/043-privates/Android.bp\n  test/044-proxy/Android.bp\n  test/045-reflect-array/Android.bp\n  test/046-reflect/Android.bp\n  test/047-returns/Android.bp\n  test/048-reflect-v8/Android.bp\n  test/049-show-object/Android.bp\n  test/050-sync-test/Android.bp\n  test/051-thread/Android.bp\n  test/052-verifier-fun/Android.bp\n  test/053-wait-some/Android.bp\n  test/054-uncaught/Android.bp\n  test/055-enum-performance/Android.bp\n  test/058-enum-order/Android.bp\n  test/059-finalizer-throw/Android.bp\n  test/061-out-of-memory/Android.bp\n  test/062-character-encodings/Android.bp\n  test/063-process-manager/Android.bp\n  test/067-preemptive-unpark/Android.bp\n  test/070-nio-buffer/Android.bp\n  test/072-precise-gc/Android.bp\n  test/072-reachability-fence/Android.bp\n  test/074-gc-thrash/Android.bp\n  test/076-boolean-put/Android.bp\n  test/078-polymorphic-virtual/Android.bp\n  test/079-phantom/Android.bp\n  test/080-oom-fragmentation/Android.bp\n  test/080-oom-throw-with-finalizer/Android.bp\n  test/080-oom-throw/Android.bp\n  test/081-hot-exceptions/Android.bp\n  test/082-inline-execute/Android.bp\n  test/083-compiler-regressions/Android.bp\n  test/084-class-init/Android.bp\n  test/086-null-super/Android.bp\n  test/087-gc-after-link/Android.bp\n  test/090-loop-formation/Android.bp\n  test/092-locale/Android.bp\n  test/093-serialization/Android.bp\n  test/094-pattern/Android.bp\n  test/095-switch-MAX_INT/Android.bp\n  test/096-array-copy-concurrent-gc/Android.bp\n  test/098-ddmc/Android.bp\n  test/099-vmdebug/Android.bp\n  test/100-reflect2/Android.bp\n  test/1004-checker-volatile-ref-load/Android.bp\n  test/101-fibonacci/Android.bp\n  test/102-concurrent-gc/Android.bp\n  test/103-string-append/Android.bp\n  test/104-growth-limit/Android.bp\n  test/105-invoke/Android.bp\n  test/106-exceptions2/Android.bp\n  test/107-int-math2/Android.bp\n  test/108-check-cast/Android.bp\n  test/109-suspend-check/Android.bp\n  test/110-field-access/Android.bp\n  test/112-double-math/Android.bp\n  test/114-ParallelGC/Android.bp\n  test/115-native-bridge/Android.bp\n  test/116-nodex2oat/Android.bp\n  test/120-hashcode/Android.bp\n  test/121-simple-suspend-check/Android.bp\n  test/122-npe/Android.bp\n  test/123-compiler-regressions-mt/Android.bp\n  test/123-inline-execute2/Android.bp\n  test/125-gc-and-classloading/Android.bp\n  test/128-reg-spill-on-implicit-nullcheck/Android.bp\n  test/129-ThreadGetId/Android.bp\n  test/132-daemon-locks-shutdown/Android.bp\n  test/133-static-invoke-super/Android.bp\n  test/1336-short-finalizer-timeout/Android.bp\n  test/1337-gc-coverage/Android.bp\n  test/1339-dead-reference-safe/Android.bp\n  test/136-daemon-jni-shutdown/Android.bp\n  test/139-register-natives/Android.bp\n  test/140-dce-regression/Android.bp\n  test/140-field-packing/Android.bp\n  test/143-string-value/Android.bp\n  test/144-static-field-sigquit/Android.bp\n  test/148-multithread-gc-annotations/Android.bp\n  test/149-suspend-all-stress/Android.bp\n  test/150-loadlibrary/Android.bp\n  test/151-OpenFileLimit/Android.bp\n  test/152-dead-large-object/Android.bp\n  test/153-reference-stress/Android.bp\n  test/154-gc-loop/Android.bp\n  test/156-register-dex-file-multi-loader/Android.bp\n  test/158-app-image-class-table/Android.bp\n  test/159-app-image-fields/Android.bp\n  test/163-app-image-methods/Android.bp\n  test/165-lock-owner-proxy/Android.bp\n  test/168-vmstack-annotated/Android.bp\n  test/169-threadgroup-jni/Android.bp\n  test/170-interface-init/Android.bp\n  test/172-app-image-twice/Android.bp\n  test/174-escaping-instance-of-bad-class/Android.bp\n  test/175-alloc-big-bignums/Android.bp\n  test/176-app-image-string/Android.bp\n  test/177-visibly-initialized-deadlock/Android.bp\n  test/178-app-image-native-method/Android.bp\n  test/179-nonvirtual-jni/Android.bp\n  test/1900-track-alloc/Android.bp\n  test/1901-get-bytecodes/Android.bp\n  test/1902-suspend/Android.bp\n  test/1903-suspend-self/Android.bp\n  test/1904-double-suspend/Android.bp\n  test/1905-suspend-native/Android.bp\n  test/1906-suspend-list-me-first/Android.bp\n  test/1907-suspend-list-self-twice/Android.bp\n  test/1908-suspend-native-resume-self/Android.bp\n  test/1909-per-agent-tls/Android.bp\n  test/1910-transform-with-default/Android.bp\n  test/1911-get-local-var-table/Android.bp\n  test/1912-get-set-local-primitive/Android.bp\n  test/1913-get-set-local-objects/Android.bp\n  test/1914-get-local-instance/Android.bp\n  test/1915-get-set-local-current-thread/Android.bp\n  test/1916-get-set-current-frame/Android.bp\n  test/1917-get-stack-frame/Android.bp\n  test/1919-vminit-thread-start-timing/Android.bp\n  test/1920-suspend-native-monitor/Android.bp\n  test/1921-suspend-native-recursive-monitor/Android.bp\n  test/1922-owned-monitors-info/Android.bp\n  test/1923-frame-pop/Android.bp\n  test/1924-frame-pop-toggle/Android.bp\n  test/1925-self-frame-pop/Android.bp\n  test/1926-missed-frame-pop/Android.bp\n  test/1927-exception-event/Android.bp\n  test/1928-exception-event-exception/Android.bp\n  test/1930-monitor-info/Android.bp\n  test/1931-monitor-events/Android.bp\n  test/1932-monitor-events-misc/Android.bp\n  test/1933-monitor-current-contended/Android.bp\n  test/1934-jvmti-signal-thread/Android.bp\n  test/1935-get-set-current-frame-jit/Android.bp\n  test/1936-thread-end-events/Android.bp\n  test/1937-transform-soft-fail/Android.bp\n  test/1938-transform-abstract-single-impl/Android.bp\n  test/1939-proxy-frames/Android.bp\n  test/1941-dispose-stress/Android.bp\n  test/1942-suspend-raw-monitor-exit/Android.bp\n  test/1943-suspend-raw-monitor-wait/Android.bp\n  test/1945-proxy-method-arguments/Android.bp\n  test/1947-breakpoint-redefine-deopt/Android.bp\n  test/1949-short-dex-file/Android.bp\n  test/1951-monitor-enter-no-suspend/Android.bp\n  test/1953-pop-frame/Android.bp\n  test/1954-pop-frame-jit/Android.bp\n  test/1955-pop-frame-jit-called/Android.bp\n  test/1956-pop-frame-jit-calling/Android.bp\n  test/1957-error-ext/Android.bp\n  test/1958-transform-try-jit/Android.bp\n  test/1959-redefine-object-instrument/Android.bp\n  test/1960-checker-bounds-codegen/Android.bp\n  test/1960-obsolete-jit-multithread-native/Android.bp\n  test/1961-checker-loop-vectorizer/Android.bp\n  test/1961-obsolete-jit-multithread/Android.bp\n  test/1962-multi-thread-events/Android.bp\n  test/1963-add-to-dex-classloader-in-memory/Android.bp\n  test/1967-get-set-local-bad-slot/Android.bp\n  test/1968-force-early-return/Android.bp\n  test/1969-force-early-return-void/Android.bp\n  test/1970-force-early-return-long/Android.bp\n  test/1971-multi-force-early-return/Android.bp\n  test/1972-jni-id-swap-indices/Android.bp\n  test/1973-jni-id-swap-pointer/Android.bp\n  test/1974-resize-array/Android.bp\n  test/1975-hello-structural-transformation/Android.bp\n  test/1976-hello-structural-static-methods/Android.bp\n  test/1977-hello-structural-obsolescence/Android.bp\n  test/1978-regular-obsolete-then-structural-obsolescence/Android.bp\n  test/1979-threaded-structural-transformation/Android.bp\n  test/1980-obsolete-object-cleared/Android.bp\n  test/1982-no-virtuals-structural-redefinition/Android.bp\n  test/1984-structural-redefine-field-trace/Android.bp\n  test/1985-structural-redefine-stack-scope/Android.bp\n  test/1986-structural-redefine-multi-thread-stack-scope/Android.bp\n  test/1987-structural-redefine-recursive-stack-scope/Android.bp\n  test/1988-multi-structural-redefine/Android.bp\n  test/1989-transform-bad-monitor/Android.bp\n  test/1990-structural-bad-verify/Android.bp\n  test/1991-hello-structural-retransform/Android.bp\n  test/1992-retransform-no-such-field/Android.bp\n  test/1993-fallback-non-structural/Android.bp\n  test/1994-final-virtual-structural/Android.bp\n  test/1995-final-virtual-structural-multithread/Android.bp\n  test/1996-final-override-virtual-structural/Android.bp\n  test/1997-structural-shadow-method/Android.bp\n  test/1998-structural-shadow-field/Android.bp\n  test/1999-virtual-structural/Android.bp\n  test/2003-double-virtual-structural/Android.bp\n  test/2004-double-virtual-structural-abstract/Android.bp\n  test/2005-pause-all-redefine-multithreaded/Android.bp\n  test/2008-redefine-then-old-reflect-field/Android.bp\n  test/201-built-in-except-detail-messages/Android.bp\n  test/2011-stack-walk-concurrent-instrument/Android.bp\n  test/2019-constantcalculationsinking/Android.bp\n  test/202-thread-oome/Android.bp\n  test/2020-InvokeVirtual-Inlining/Android.bp\n  test/2021-InvokeStatic-Inlining/Android.bp\n  test/2022-Invariantloops/Android.bp\n  test/2023-InvariantLoops_typecast/Android.bp\n  test/2024-InvariantNegativeLoop/Android.bp\n  test/2025-ChangedArrayValue/Android.bp\n  test/2026-DifferentMemoryLSCouples/Android.bp\n  test/2027-TwiceTheSameMemoryCouple/Android.bp\n  test/2028-MultiBackward/Android.bp\n  test/2029-contended-monitors/Android.bp\n  test/203-multi-checkpoint/Android.bp\n  test/2030-long-running-child/Android.bp\n  test/2031-zygote-compiled-frame-deopt/Android.bp\n  test/2033-shutdown-mechanics/Android.bp\n  test/2036-jni-filechannel/Android.bp\n  test/2037-thread-name-inherit/Android.bp\n  test/2231-checker-heap-poisoning/Android.bp\n  test/2232-write-metrics-to-log/Android.bp\n  test/300-package-override/Android.bp\n  test/301-abstract-protected/Android.bp\n  test/302-float-conversion/Android.bp\n  test/304-method-tracing/Android.bp\n  test/305-other-fault-handler/Android.bp\n  test/401-optimizing-compiler/Android.bp\n  test/402-optimizing-control-flow/Android.bp\n  test/403-optimizing-long/Android.bp\n  test/404-optimizing-allocator/Android.bp\n  test/405-optimizing-long-allocator/Android.bp\n  test/406-fields/Android.bp\n  test/407-arrays/Android.bp\n  test/408-move-bug/Android.bp\n  test/409-materialized-condition/Android.bp\n  test/410-floats/Android.bp\n  test/411-checker-hdiv-hrem-const/Android.bp\n  test/411-checker-hdiv-hrem-pow2/Android.bp\n  test/411-checker-instruct-simplifier-hrem/Android.bp\n  test/411-optimizing-arith/Android.bp\n  test/413-regalloc-regression/Android.bp\n  test/414-static-fields/Android.bp\n  test/418-const-string/Android.bp\n  test/419-long-parameter/Android.bp\n  test/420-const-class/Android.bp\n  test/421-exceptions/Android.bp\n  test/421-large-frame/Android.bp\n  test/422-instanceof/Android.bp\n  test/422-type-conversion/Android.bp\n  test/423-invoke-interface/Android.bp\n  test/424-checkcast/Android.bp\n  test/426-monitor/Android.bp\n  test/427-bitwise/Android.bp\n  test/427-bounds/Android.bp\n  test/429-ssa-builder/Android.bp\n  test/430-live-register-slow-path/Android.bp\n  test/433-gvn/Android.bp\n  test/434-shifter-operand/Android.bp\n  test/435-try-finally-without-catch/Android.bp\n  test/436-rem-float/Android.bp\n  test/436-shift-constant/Android.bp\n  test/437-inline/Android.bp\n  test/438-volatile/Android.bp\n  test/439-npe/Android.bp\n  test/439-swap-double/Android.bp\n  test/440-stmp/Android.bp\n  test/441-checker-inliner/Android.bp\n  test/443-not-bool-inline/Android.bp\n  test/444-checker-nce/Android.bp\n  test/445-checker-licm/Android.bp\n  test/446-checker-inliner2/Android.bp\n  test/447-checker-inliner3/Android.bp\n  test/449-checker-bce-rem/Android.bp\n  test/449-checker-bce/Android.bp\n  test/450-checker-types/Android.bp\n  test/451-regression-add-float/Android.bp\n  test/451-spill-splot/Android.bp\n  test/454-get-vreg/Android.bp\n  test/455-checker-gvn/Android.bp\n  test/456-baseline-array-set/Android.bp\n  test/458-long-to-fpu/Android.bp\n  test/461-get-reference-vreg/Android.bp\n  test/464-checker-inline-sharpen-calls/Android.bp\n  test/465-checker-clinit-gvn/Android.bp\n  test/466-get-live-vreg/Android.bp\n  test/469-condition-materialization/Android.bp\n  test/470-huge-method/Android.bp\n  test/471-deopt-environment/Android.bp\n  test/472-type-propagation/Android.bp\n  test/473-checker-inliner-constants/Android.bp\n  test/473-remove-dead-block/Android.bp\n  test/474-checker-boolean-input/Android.bp\n  test/474-fp-sub-neg/Android.bp\n  test/475-simplify-mul-zero/Android.bp\n  test/476-checker-ctor-fence-redun-elim/Android.bp\n  test/476-checker-ctor-memory-barrier/Android.bp\n  test/476-clinit-inline-static-invoke/Android.bp\n  test/477-checker-bound-type/Android.bp\n  test/477-long-2-float-convers-precision/Android.bp\n  test/478-checker-clinit-check-pruning/Android.bp\n  test/478-checker-inline-noreturn/Android.bp\n  test/478-checker-inliner-nested-loop/Android.bp\n  test/479-regression-implicit-null-check/Android.bp\n  test/480-checker-dead-blocks/Android.bp\n  test/481-regression-phi-cond/Android.bp\n  test/482-checker-loop-back-edge-use/Android.bp\n  test/483-dce-block/Android.bp\n  test/485-checker-dce-switch/Android.bp\n  test/486-checker-must-do-null-check/Android.bp\n  test/487-checker-inline-calls/Android.bp\n  test/488-checker-inline-recursive-calls/Android.bp\n  test/489-current-method-regression/Android.bp\n  test/490-checker-inline/Android.bp\n  test/491-current-method/Android.bp\n  test/492-checker-inline-invoke-interface/Android.bp\n  test/493-checker-inline-invoke-interface/Android.bp\n  test/494-checker-instanceof-tests/Android.bp\n  test/495-checker-checkcast-tests/Android.bp\n  test/496-checker-inlining-class-loader/Android.bp\n  test/497-inlining-and-class-loader/Android.bp\n  test/499-bce-phi-array-length/Android.bp\n  test/500-instanceof/Android.bp\n  test/505-simplifier-type-propagation/Android.bp\n  test/507-boolean-test/Android.bp\n  test/507-referrer/Android.bp\n  test/508-checker-disassembly/Android.bp\n  test/508-referrer-method/Android.bp\n  test/513-array-deopt/Android.bp\n  test/514-shifts/Android.bp\n  test/519-bound-load-class/Android.bp\n  test/521-checker-array-set-null/Android.bp\n  test/521-regression-integer-field-set/Android.bp\n  test/524-boolean-simplifier-regression/Android.bp\n  test/525-checker-arrays-fields1/Android.bp\n  test/525-checker-arrays-fields2/Android.bp\n  test/526-checker-caller-callee-regs/Android.bp\n  test/526-long-regalloc/Android.bp\n  test/527-checker-array-access-simd/Android.bp\n  test/527-checker-array-access-split/Android.bp\n  test/528-long-hint/Android.bp\n  test/529-long-split/Android.bp\n  test/530-checker-loops1/Android.bp\n  test/530-checker-loops2/Android.bp\n  test/530-checker-loops3/Android.bp\n  test/530-checker-loops4/Android.bp\n  test/530-checker-loops5/Android.bp\n  test/530-checker-lse-ctor-fences/Android.bp\n  test/530-checker-lse-simd/Android.bp\n  test/530-checker-lse/Android.bp\n  test/530-checker-lse2/Android.bp\n  test/530-instanceof-checkcast/Android.bp\n  test/530-regression-lse/Android.bp\n  test/532-checker-nonnull-arrayset/Android.bp\n  test/534-checker-bce-deoptimization/Android.bp\n  test/535-deopt-and-inlining/Android.bp\n  test/536-checker-intrinsic-optimization/Android.bp\n  test/537-checker-arraycopy/Android.bp\n  test/537-checker-jump-over-jump/Android.bp\n  test/538-checker-embed-constants/Android.bp\n  test/540-checker-rtp-bug/Android.bp\n  test/542-bitfield-rotates/Android.bp\n  test/542-inline-trycatch/Android.bp\n  test/542-unresolved-access-check/Android.bp\n  test/545-tracing-and-jit/Android.bp\n  test/548-checker-inlining-and-dce/Android.bp\n  test/549-checker-types-merge/Android.bp\n  test/550-checker-multiply-accumulate/Android.bp\n  test/550-new-instance-clinit/Android.bp\n  test/551-checker-clinit/Android.bp\n  test/551-checker-shifter-operand/Android.bp\n  test/551-implicit-null-checks/Android.bp\n  test/552-checker-sharpening/Android.bp\n  test/552-checker-x86-avx2-bit-manipulation/Android.bp\n  test/554-checker-rtp-checkcast/Android.bp\n  test/555-UnsafeGetLong-regression/Android.bp\n  test/557-checker-instruct-simplifier-ror/Android.bp\n  test/558-switch/Android.bp\n  test/559-bce-ssa/Android.bp\n  test/559-checker-rtp-ifnotnull/Android.bp\n  test/560-packed-switch/Android.bp\n  test/561-divrem/Android.bp\n  test/561-shared-slowpaths/Android.bp\n  test/562-bce-preheader/Android.bp\n  test/562-checker-no-intermediate/Android.bp\n  test/563-checker-invoke-super/Android.bp\n  test/564-checker-bitcount/Android.bp\n  test/564-checker-inline-loop/Android.bp\n  test/564-checker-negbitwise/Android.bp\n  test/565-checker-condition-liveness/Android.bp\n  test/566-checker-codegen-select/Android.bp\n  test/566-polymorphic-inlining/Android.bp\n  test/567-checker-builder-intrinsics/Android.bp\n  test/568-checker-onebit/Android.bp\n  test/570-checker-select/Android.bp\n  test/572-checker-array-get-regression/Android.bp\n  test/573-checker-checkcast-regression/Android.bp\n  test/576-polymorphic-inlining/Android.bp\n  test/577-checker-fp2int/Android.bp\n  test/578-bce-visit/Android.bp\n  test/578-polymorphic-inlining/Android.bp\n  test/579-inline-infinite/Android.bp\n  test/580-checker-round/Android.bp\n  test/580-crc32/Android.bp\n  test/581-rtp/Android.bp\n  test/582-checker-bce-length/Android.bp\n  test/583-checker-zero/Android.bp\n  test/584-checker-div-bool/Android.bp\n  test/589-super-imt/Android.bp\n  test/590-checker-arr-set-null-regression/Android.bp\n  test/591-checker-regression-dead-loop/Android.bp\n  test/593-checker-long-2-float-regression/Android.bp\n  test/594-checker-array-alias/Android.bp\n  test/594-load-string-regression/Android.bp\n  test/595-profile-saving/Android.bp\n  test/597-deopt-busy-loop/Android.bp\n  test/597-deopt-invoke-stub/Android.bp\n  test/597-deopt-new-string/Android.bp\n  test/602-deoptimizeable/Android.bp\n  test/603-checker-instanceof/Android.bp\n  test/604-hot-static-interface/Android.bp\n  test/605-new-string-from-bytes/Android.bp\n  test/607-daemon-stress/Android.bp\n  test/609-checker-inline-interface/Android.bp\n  test/609-checker-x86-bounds-check/Android.bp\n  test/610-arraycopy/Android.bp\n  test/611-checker-simplify-if/Android.bp\n  test/614-checker-dump-constant-location/Android.bp\n  test/615-checker-arm64-store-zero/Android.bp\n  test/616-cha-abstract/Android.bp\n  test/616-cha-interface/Android.bp\n  test/616-cha-miranda/Android.bp\n  test/616-cha-native/Android.bp\n  test/616-cha-regression-proxy-method/Android.bp\n  test/616-cha/Android.bp\n  test/617-clinit-oome/Android.bp\n  test/618-checker-induction/Android.bp\n  test/619-checker-current-method/Android.bp\n  test/620-checker-bce-intrinsics/Android.bp\n  test/622-checker-bce-regressions/Android.bp\n  test/623-checker-loop-regressions/Android.bp\n  test/625-checker-licm-regressions/Android.bp\n  test/626-set-resolved-string/Android.bp\n  test/627-checker-unroll/Android.bp\n  test/628-vdex/Android.bp\n  test/629-vdex-speed/Android.bp\n  test/631-checker-get-class/Android.bp\n  test/632-checker-char-at-bounds/Android.bp\n  test/635-checker-arm64-volatile-load-cc/Android.bp\n  test/636-arm64-veneer-pool/Android.bp\n  test/637-checker-throw-inline/Android.bp\n  test/638-checker-inline-cache-intrinsic/Android.bp\n  test/639-checker-code-sinking/Android.bp\n  test/640-checker-boolean-simd/Android.bp\n  test/640-checker-integer-valueof/Android.bp\n  test/640-checker-simd/Android.bp\n  test/641-checker-arraycopy/Android.bp\n  test/641-iterations/Android.bp\n  test/642-fp-callees/Android.bp\n  test/643-checker-bogus-ic/Android.bp\n  test/645-checker-abs-simd/Android.bp\n  test/646-checker-arraycopy-large-cst-pos/Android.bp\n  test/646-checker-long-const-to-int/Android.bp\n  test/646-checker-simd-hadd/Android.bp\n  test/647-jni-get-field-id/Android.bp\n  test/650-checker-inline-access-thunks/Android.bp\n  test/652-deopt-intrinsic/Android.bp\n  test/654-checker-periodic/Android.bp\n  test/655-checker-simd-arm-opt/Android.bp\n  test/655-jit-clinit/Android.bp\n  test/656-checker-simd-opt/Android.bp\n  test/656-loop-deopt/Android.bp\n  test/657-branches/Android.bp\n  test/658-fp-read-barrier/Android.bp\n  test/660-checker-sad/Android.bp\n  test/660-checker-simd-sad/Android.bp\n  test/660-clinit/Android.bp\n  test/661-checker-simd-reduc/Android.bp\n  test/661-oat-writer-layout/Android.bp\n  test/662-regression-alias/Android.bp\n  test/664-aget-verifier/Android.bp\n  test/665-checker-simd-zero/Android.bp\n  test/666-dex-cache-itf/Android.bp\n  test/667-checker-simd-alignment/Android.bp\n  test/667-jit-jni-stub/Android.bp\n  test/667-out-of-bounds/Android.bp\n  test/669-checker-break/Android.bp\n  test/671-npe-field-opts/Android.bp\n  test/672-checker-throw-method/Android.bp\n  test/673-checker-throw-vmethod/Android.bp\n  test/674-HelloWorld-Dm/Android.bp\n  test/674-hotness-compiled/Android.bp\n  test/676-proxy-jit-at-first-use/Android.bp\n  test/677-fsi2/Android.bp\n  test/679-locks/Android.bp\n  test/680-checker-deopt-dex-pc-0/Android.bp\n  test/680-sink-regression/Android.bp\n  test/684-checker-simd-dotprod/Android.bp\n  test/684-select-condition/Android.bp\n  test/685-deoptimizeable/Android.bp\n  test/687-deopt/Android.bp\n  test/689-multi-catch/Android.bp\n  test/689-zygote-jit-deopt/Android.bp\n  test/693-vdex-inmem-loader-evict/Android.bp\n  test/694-clinit-jit/Android.bp\n  test/695-simplify-throws/Android.bp\n  test/696-loop/Android.bp\n  test/697-checker-string-append/Android.bp\n  test/698-selects/Android.bp\n  test/700-LoadArgRegs/Android.bp\n  test/703-floating-point-div/Android.bp\n  test/704-multiply-accumulate/Android.bp\n  test/705-register-conflict/Android.bp\n  test/707-checker-invalid-profile/Android.bp\n  test/708-jit-cache-churn/Android.bp\n  test/711-checker-type-conversion/Android.bp\n  test/717-integer-value-of/Android.bp\n  test/718-zipfile-finalizer/Android.bp\n  test/720-thread-priority/Android.bp\n  test/721-osr/Android.bp\n  test/726-array-store/Android.bp\n  test/728-imt-conflict-zygote/Android.bp\n  test/805-TooDeepClassInstanceOf/Android.bp\n  test/806-TooWideClassInstanceOf/Android.bp\n  test/812-recursive-default/Android.bp\n  test/813-fp-args/Android.bp\n  test/814-large-field-offsets/Android.bp\n  test/815-invokeinterface-default/Android.bp\n  test/818-clinit-nterp/Android.bp\n  test/900-hello-plugin/Android.bp\n  test/901-hello-ti-agent/Android.bp\n  test/902-hello-transformation/Android.bp\n  test/903-hello-tagging/Android.bp\n  test/904-object-allocation/Android.bp\n  test/905-object-free/Android.bp\n  test/906-iterate-heap/Android.bp\n  test/907-get-loaded-classes/Android.bp\n  test/908-gc-start-finish/Android.bp\n  test/910-methods/Android.bp\n  test/911-get-stack-trace/Android.bp\n  test/913-heaps/Android.bp\n  test/914-hello-obsolescence/Android.bp\n  test/915-obsolete-2/Android.bp\n  test/916-obsolete-jit/Android.bp\n  test/917-fields-transformation/Android.bp\n  test/918-fields/Android.bp\n  test/919-obsolete-fields/Android.bp\n  test/920-objects/Android.bp\n  test/921-hello-failure/Android.bp\n  test/922-properties/Android.bp\n  test/923-monitors/Android.bp\n  test/924-threads/Android.bp\n  test/925-threadgroups/Android.bp\n  test/926-multi-obsolescence/Android.bp\n  test/927-timers/Android.bp\n  test/928-jni-table/Android.bp\n  test/930-hello-retransform/Android.bp\n  test/931-agent-thread/Android.bp\n  test/932-transform-saves/Android.bp\n  test/933-misc-events/Android.bp\n  test/937-hello-retransform-package/Android.bp\n  test/939-hello-transformation-bcp/Android.bp\n  test/940-recursive-obsolete/Android.bp\n  test/941-recursive-obsolete-jit/Android.bp\n  test/942-private-recursive/Android.bp\n  test/943-private-recursive-jit/Android.bp\n  test/944-transform-classloaders/Android.bp\n  test/945-obsolete-native/Android.bp\n  test/946-obsolete-throw/Android.bp\n  test/947-reflect-method/Android.bp\n  test/949-in-memory-transform/Android.bp\n  test/950-redefine-intrinsic/Android.bp\n  test/951-threaded-obsolete/Android.bp\n  test/963-default-range-smali/Android.bp\n  test/982-ok-no-retransform/Android.bp\n  test/983-source-transform-verify/Android.bp\n  test/984-obsolete-invoke/Android.bp\n  test/985-re-obsolete/Android.bp\n  test/986-native-method-bind/Android.bp\n  test/987-agent-bind/Android.bp\n  test/988-method-trace/Android.bp\n  test/989-method-trace-throw/Android.bp\n  test/990-field-trace/Android.bp\n  test/991-field-trace-2/Android.bp\n  test/992-source-data/Android.bp\n  test/993-breakpoints/Android.bp\n  test/994-breakpoint-line/Android.bp\n  test/995-breakpoints-throw/Android.bp\n  test/996-breakpoint-obsolete/Android.bp\n  test/997-single-step/Android.bp\n  test/Android.bp\n  tools/Android.bp\n  tools/ahat/Android.bp\n  tools/ahat/Android.mk\n  tools/art_verifier/Android.bp\n  tools/cpp-define-generator/Android.bp\n  tools/dexanalyze/Android.bp\n  tools/dexfuzz/Android.bp\n  tools/dmtracedump/Android.bp\n  tools/hiddenapi/Android.bp\n  tools/jfuzz/Android.bp\n  tools/jvmti-agents/breakpoint-logger/Android.bp\n  tools/jvmti-agents/chain-agents/Android.bp\n  tools/jvmti-agents/dump-jvmti-state/Android.bp\n  tools/jvmti-agents/enable-vlog/Android.bp\n  tools/jvmti-agents/field-counts/Android.bp\n  tools/jvmti-agents/field-null-percent/Android.bp\n  tools/jvmti-agents/jit-load/Android.bp\n  tools/jvmti-agents/list-extensions/Android.bp\n  tools/jvmti-agents/simple-force-redefine/Android.bp\n  tools/jvmti-agents/simple-profile/Android.bp\n  tools/jvmti-agents/ti-alloc-sample/Android.bp\n  tools/jvmti-agents/ti-fast/Android.bp\n  tools/jvmti-agents/titrace/Android.bp\n  tools/jvmti-agents/wrapagentproperties/Android.bp\n  tools/signal_dumper/Android.bp\n  tools/tracefast-plugin/Android.bp\n  tools/veridex/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  sigchainlib/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-GPL-2.0\nto:\n  Android.bp\n  Android.mk\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-GPL-2.0\n    SPDX-license-identifier-GPL-with-classpath-exception\nto:\n  dt_fd_forward/Android.bp\n  openjdkjvmti/Android.bp\n\nAdded SPDX-license-identifier-GPL-2.0\n    SPDX-license-identifier-GPL-with-classpath-exception\nto:\n  openjdkjvm/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: If775045c12955fa6d72d40ccf2a09beef93d1699\nMerged-in: If775045c12955fa6d72d40ccf2a09beef93d1699\n"
    },
    {
      "commit": "f51d182c3d797bd14bcc66a3c0bf1fc6f9adf8ee",
      "tree": "12921f3bfd788a0dc2a8b5937ebf0ed13af220e5",
      "parents": [
        "3098e36d2935ad7ce9995ef5fb7395d035383047"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 01 19:25:35 2021 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 03 17:54:23 2021 +0000"
      },
      "message": "Fix DDMS-JDWP race\n\nDDMS would race against the JDWP-Handshake in some circumstances\ncausing clients to become confused as DDMS packets were recieved\nbefore the handshake reply.\n\nTest: atest CtsJdwpTunnelHostTestCases\nTest: ./tools/dt_fds_forward.py\nBug: 178655046\nChange-Id: Iabeb68829455ee4d2682f0a14591c8b7b0f4fc5f\n"
    },
    {
      "commit": "3e9abfc9779399815a7dc8d492466a1234b7fdcd",
      "tree": "fd1017f153d3759488914c4d372f543125722ad1",
      "parents": [
        "35b132e3377029a356cfbc9e4682e3ebceb83edf"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Oct 09 22:17:51 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Oct 23 10:03:13 2020 +0000"
      },
      "message": "Rename ART release APEX to com.android.art.\n\nTest: Build \u0026 boot on AOSP master\nTest: `m` on AOSP master, flipping\n  PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD between true and false, and\n  check out/target/product/bonito/symbols/apex/com.android.art.\nTest: art/build/apex/runtests.sh\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/tools/run-gtests.sh\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py --target --64 --optimizing\nTest: m build-art-target-golem\nBug: 169639321\nChange-Id: Ic4bb8d6f9988ce99bba326b9c635bd3c01ed74ab\nMerged-In: Ic4bb8d6f9988ce99bba326b9c635bd3c01ed74ab\n"
    },
    {
      "commit": "71f661c294156f2ebe10600368a23a35d882c67b",
      "tree": "92f830a0ffe7e266a2182bac8dcb3fd4d6ba9c55",
      "parents": [
        "0c66e678a0562846449a424e297211a1aa70694d"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Apr 28 18:20:43 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 04 12:18:30 2020 +0000"
      },
      "message": "Set apex_available property\n\nThe marked library(ies) were available to the APEXes via the\nhand-written whitelist in build/soong/apex/apex.go. Trying to remove the\nwhitelist by adding apex_available property to the Android.bp of the\nlibraries.\n\nBug: 150999716\nTest: m\nMerged-In: Ie9a693be10c6c6571c8aa5357500f5d931400593\n(cherry picked from commit 0f152391c0458d3d1cce04a11bc92e7234955d6f)\nChange-Id: Ie9a693be10c6c6571c8aa5357500f5d931400593\n"
    },
    {
      "commit": "066dd902930582873e7d9372ac0c8483ac700cb9",
      "tree": "f3a0b47419fea78001faea017ba04e630e82fd2e",
      "parents": [
        "fb537087516e34e92e3c030ef2f7fc8b233d7a47"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 02:11:59 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 20 01:17:37 2019 +0000"
      },
      "message": "Revert submission 1194828-revert-1191937-art_apex_available-DWXQGTKMAR\n\nReason for revert: relanding with fix\nReverted Changes:\nIc4119368c:Revert submission 1191937-art_apex_available\nIa084976bb:Revert submission 1191937-art_apex_available\nIada86226d:Revert submission 1191937-art_apex_available\nIc76735eac:Revert submission 1191937-art_apex_available\nI1eb30e355:Revert submission 1191937-art_apex_available\nIcaf95d260:Revert submission 1191937-art_apex_available\nIe8bace4be:Revert submission 1191937-art_apex_available\nI8961702cf:Revert submission 1191937-art_apex_available\nI39316f9ef:Revert submission 1191937-art_apex_available\nI522a7e83b:Revert submission 1191937-art_apex_available\nI8b9424976:Revert submission 1191937-art_apex_available\nI48b998629:Revert submission 1191937-art_apex_available\n\nChange-Id: I7a101d39ff63c153675e4e741f9de1a15a778d33\n"
    },
    {
      "commit": "80599a28d1c865de7644a87111f49ee3b30f7c41",
      "tree": "e56dcf999630a752cd955a06c7f4c00b7add290b",
      "parents": [
        "1e88f980a85056165312331746862dc48186bc54"
      ],
      "author": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "committer": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "message": "Revert submission 1191937-art_apex_available\n\nOriginal Commit Message:\n\"\"\"\nRename modules that are APEX-only\n\nThe renamed modules are only available for APEXes, but not for the\nplatform. Use the \u003cmodule_name\u003e.\u003capex_name\u003e syntax to correctly install\nthe APEX variant of the modules.\n\"\"\"\n\nReason for revert: Build Cop - Breaks about 15 AOSP targets, with high confidence due to these changes being the only non-robot changes in those builds.\n\nReverted Changes:\nI190ce2d10:Use apex_available property\nI990e0a67e:Use apex_available property\nI0d1295683:Revert \"Avoid duplicated classes for boot dex jars...\nI5fb725403:Find the jar libraries in APEX from the correct pa...\nI322b1efcc:Rename modules that are APEX-only\nIfa2bd0f8f:Use apex_available property\nIac6533177:Use apex_available property\nIe999602c6:Use apex_available property\nI2a3d73397:Use apex_available property\nIc91bcbb9a:Use apex_available property\nIa6c324eed:Use apex_available property\nI964d0125c:Use apex_available property\n\nChange-Id: I1eb30e355cfce316b94cde0dd176002af8d222bb\n"
    },
    {
      "commit": "1e88f980a85056165312331746862dc48186bc54",
      "tree": "0cbeeaf951d6bd637a46f4f51faf80587f3ecc2b",
      "parents": [
        "c9af14e93f6a2691bf8231752d8d7c3e41b14c76"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Dec 02 13:44:06 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 00:21:38 2019 +0000"
      },
      "message": "Use apex_available property\n\nUse apex_available property to prevent modules that are only for the ART\napex from being used outside of the APEX.\n\nThis change also fixes the reference to\n$(TARGET_OUT_SHARED_LIBRARIES)/$(lib).so to $(lib).com.android.art.debug\nphony module since the former is never installed to the system partition\ndue to their \u0027apex_available\u0027 settings.\n\nBug: 128708192\nBug: 133140750\nTest: m\nChange-Id: I990e0a67e066d9b1dc221748422a2f44449258da\n"
    },
    {
      "commit": "85059deed7dcf86cbfe5f7e84003d1c14e3a0efe",
      "tree": "a881d5ccb272de76af726e18c97ffbc38eb43949",
      "parents": [
        "efd55b5b5837912c737eb0a9fa09954c8085e055"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Aug 24 14:10:42 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 27 07:07:30 2019 +0000"
      },
      "message": "Remove multilib suffixes from libraries\n\nLibraries previously did not take the suffix property, which meant\nthat the suffix property in defaults modules applied to libraries\nwas ignored.  The suffix property is being added to cc_library\nmodules, which incorrectly renames existing libraries that had\ndefaults with suffix properties.  These defaults only apply to\nlibrary modules, so just remove the suffix properties.\n\nBug: 117607748\nTest: m checkbuild\nChange-Id: Iadbb7369a7e4698394f64d25fc0a11933f41c2dc\n"
    },
    {
      "commit": "0dc93b1ba94460b0ae126dd4db335261165c74b7",
      "tree": "78b3afa099dce52a1eb39d6a9788d610b14a1f6b",
      "parents": [
        "9b81ac36e161fd993eab17b43b93a96e8c63b5cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 15 10:30:22 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 17 20:40:21 2019 +0000"
      },
      "message": "ART: Run bpfmt over ART\u0027s blueprint files\n\nTest: mmma art\nChange-Id: Ic85df4770c12ec02836c877b243d4aec234aaada\n"
    },
    {
      "commit": "a8f91395f9a2ee9d975a83178abaac9af34969ab",
      "tree": "426b52d77898b6a3cd34b0f1b0a431343e92e2be",
      "parents": [
        "2a487eb89b67d7ff030368e4e4a6ed0a3ac39003"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 19 11:52:24 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 20 13:04:36 2018 -0800"
      },
      "message": "ART: Fix clang-analyzer-security.insecureAPI.strcpy\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I08ef95679230be1cfd23037c15714e2720be358f\n"
    },
    {
      "commit": "dfcd82c09e8ce4562ed39e006d4b1c8163b4e25e",
      "tree": "d9bfd3e043a95b3c8e302769cef23c13a89df3c5",
      "parents": [
        "4f570a43146c1456071f2ffe6590ab96e723051a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 16 20:22:37 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 13:06:33 2018 -0700"
      },
      "message": "ART: Fix android-cloexec warnings\n\nUse the DupCloexec helper wherever possible. Add O_CLOEXEC to open\nand fopen calls.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I0afb1beea53ab8f68ab85d1762aff999903060fe\n"
    },
    {
      "commit": "15b8113eb72b829e2026477a49e159635a48349b",
      "tree": "b62e2ddcc2e3fb3d1156103c2bfbef08916d3cdc",
      "parents": [
        "d3233abdf14f173bb99e3905e8543ffff845230e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 24 13:29:07 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 24 18:28:13 2018 -0800"
      },
      "message": "Have adbconnection handle DDMS packets if agent not loaded\n\nIf DDMS was being used on a userdebug or eng build it would cause the\nlibjdwp agent to be loaded on various system processes, most notably\nsystem_server. This would cause a massive performance hit as it tries\nto force system_server to jit but, due to security policies, it is\nforced to interpreter instead.\n\nTo fix this we make it so that (so long as no debugger commands are\nissued) DDMS commands are handled without loading the JDWP agent. When\na non-DDMS command is issued we will load and initialize the JDWP\nagent which will take over handling DDMS traffic from then on.\n\nThis will ensure that in the common (for userdebug) use-case where\nprocesses only encounter DDMS commands the process will not need to\nload the full debugger.\n\nTest: ./test.py --host -j50\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003ddevice\nTest: Run ddms monitor on host,\n      adb shell stop \u0026\u0026\n      adb shell setprop dalvik.vm.jdwp-provider adbconnection\n      adb shell start;\n      Ensure that device does not start to jank\nTest: Run ddms monitor on host,\n      adb shell stop \u0026\u0026\n      adb shell setprop dalvik.vm.jdwp-provider adbconnection\n      adb shell start;\n      Turn off ddms monitor.\n      Ensure that device does not start to jank\nTest: Build and run\nTest: use ddms monitor.\nTest: Use Android Studio.\nTest: Build and debug debuggable app (bandhook-kotlin)\nTest: Build and debug non-debuggable app on userdebug build\n        (bandhook-kotlin)\nTest: Debug running system process on userdebug build\n        (com.android.packageinstaller)\n\nBug: 62821960\nBug: 72456312\nBug: 72457427\n\nChange-Id: Ib8d2af6c76bd2fac5a4b27e730695b2d016d3583\n"
    },
    {
      "commit": "96f4dc41fee6d94adb3f44fcb9c72ea1ba414060",
      "tree": "224cf4abd41da3762667e235c590ce9f65252bbe",
      "parents": [
        "2a96fe8541b7179e923b6edd27dfe1b8ceb6988e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 23 14:06:58 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 23 14:24:21 2018 -0800"
      },
      "message": "Add missing TEMP_FAILURE_RETRYs in dt_fd_forward\n\nThere were several syscalls that should have had a TEMP_FAILURE_RETRY\nbut did not. This could cause the connection to be dropped\nunexpectedly if there was a signal.\n\nTest: build\nTest: ./tools/dt_fds_forward.py  \\\n        ./test/run-test --host --dev 001-HelloWorld\nTest: jdb -attach localhost:12345\nTest: kill -3 \u003cpid of dalvikvm\u003e\n\nChange-Id: I62a3409d3e2947db1c7142547c925d1d2ba9eecd\n"
    },
    {
      "commit": "c7547c3a52785f4a69675a88ec2a90696f26c75d",
      "tree": "deed392c9fb211948d7373cd8638f880d8721265",
      "parents": [
        "3859966d5c0d4a2d98e6012b458ef0b7e218c9b4"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 20 08:05:06 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 20 08:05:06 2017 -0800"
      },
      "message": "Disable libraries using eventfd on darwin hosts.\n\nThe eventfd API is not supported on darwin/MacOS. Since these\nlibraries are not meant for host use we will simply not build them for\nthose platforms. The libraries disabled are libdt_fd_forward and\nlibadbconnection. Both of these libraries are used for debugging\nsupport on device only so it should not be any real issue.\n\nTest: None\nChange-Id: Ia1b1efc50a0bd9427640edec322db5ebd37d92a2\n"
    },
    {
      "commit": "3979571aa1dfc907569fb7e27ab225ca89f6f86e",
      "tree": "fd91ada65bffa3fcefc773a36cbf8055bf688a1c",
      "parents": [
        "403207107da7f11525c4d305184c56b35ec1c17a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 14 11:58:21 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 19 14:52:01 2017 -0800"
      },
      "message": "Add fd-forwarding transport lib\n\ndt_fd_forward is a jdwpTransport that takes as an address a local\nsocket file-descriptor and uses it to allow some other piece of code\nor program to control the actual attach and communication process.\n\ntools/dt_fds_forward.py is a python program that can be used as a\ncontroller for this comms system. This is useful for testing. It\nimplements the same behavior (excepting DDMS) that the adbconnection\nplugin will but is capable of being easily used on normal host\nmachines. Unlike the plugin, dt_fds_forward.py works by allowing a\nsocket file-descriptor to be inherited by the forked Java Language\nRuntime.\n\nThe overall goal of this transport is to use it to allow us to safely\nmultiplex the out-bound data with DDMS data. This is needed to let us\nmatch current DDMS behavior which transmits packets in the blind on\nthe same channel JDWP traffic is sent on.\n\nTest: ./tools/dt_fds_forward.py  \\\n        ./test/run-test --host --dev 001-HelloWorld\nTest: jdb -attach localhost:12345\nTest: nc localhost 12345, handshake, disconnect\nTest: jdb -attach localhost:12345, detach, attach\n\nTest: ./tools/dt_fds_forward.py  \\\n            --debug-lib $JAVA_HOME/jre/lib/amd64/libjdwp.so \\\n            -- \\\n            ./test/run-test --host --jvm --dev 001-HelloWorld\nTest: jdb -attach localhost:12345\n\nBug: 62821960\nBug: 69169846\n\nChange-Id: I654db6c6991c006933e1e1f0a4e41c13f795f9a8\n"
    }
  ]
}
