)]}'
{
  "log": [
    {
      "commit": "8c9c7d076f6d945de6ec41b30bd5ef55a88db8b9",
      "tree": "235102f36e0c7e928c3840122f2e8e83b0cc2d3c",
      "parents": [
        "ac758f2ccc908df4366f602e31afd75c25cba4a5",
        "010c37b6154d6a1d04125b3f140592c83ec70df7"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Wed Sep 27 15:06:23 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 27 15:06:23 2023 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Lock down String8|16.string() usage\"\"\" into main"
    },
    {
      "commit": "532a608f588588c03218aaffe1f5fc0429a02537",
      "tree": "5c06b36d4ed65ef803747f310a98e4e1bed56ad6",
      "parents": [
        "59a2cde894d2f0638057379435a420defb56df6a",
        "87c90e7b65c734ba553a4655d0aee8c7dd939676"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Sep 22 19:42:45 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 19:42:45 2023 +0000"
      },
      "message": "Merge changes I7790dde8,I065907a5,Id2e82024 into main\n\n* changes:\n  Add missing \u003cassert.h\u003e include\n  Add missing \u003cfunctional\u003e and \u003cvector\u003e includes\n  snapuserd_test: don\u0027t discard result of std::async\n"
    },
    {
      "commit": "999efbef093214bf8302591a17a777439a0a85e6",
      "tree": "6616b875be6adf37b6b92b597cc6093e796d1eb2",
      "parents": [
        "93377e99e2ffa260f1da5b53326d51ef19ab74f6"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Sep 21 17:51:52 2023 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Sep 21 17:52:29 2023 -0700"
      },
      "message": "Add missing \u003cfunctional\u003e and \u003cvector\u003e includes\n\nBug: 175635923\nTest: m MODULES-IN-system-core-libutils\nChange-Id: I065907a58a88723ae512f155dfde2d2fcb3fc322\n"
    },
    {
      "commit": "2b1a0599c4530c34b57ba109917904451b55214e",
      "tree": "1467c5c4f43c6a013498516d999cf4847b98c66b",
      "parents": [
        "d741c23288096e47928e64a2a27ed764487fe694"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Sep 12 15:26:15 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Wed Sep 20 15:11:54 2023 +0000"
      },
      "message": "Don\u0027t depend on String8 cast to C string\n\nBug: 295394788\nTest: m checkbuild\nChange-Id: I5b86ae56250d409a23ab3f2bc72b725bcf6ab23e\n"
    },
    {
      "commit": "010c37b6154d6a1d04125b3f140592c83ec70df7",
      "tree": "24d90532ec88dd67101f9bd856562b6296981b23",
      "parents": [
        "7210b285c2a7c8220789e039c9b2a72a931224cc"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 15 22:21:53 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 15 22:22:14 2023 +0000"
      },
      "message": "Revert \"Revert \"Lock down String8|16.string() usage\"\"\n\nThis reverts commit 7210b285c2a7c8220789e039c9b2a72a931224cc.\n\nReason for revert: attempt re-submit\n\nChange-Id: Ia95d11628c512163ae3d13cbdd5ebbe60f435937\n"
    },
    {
      "commit": "7210b285c2a7c8220789e039c9b2a72a931224cc",
      "tree": "1c44bd3cbf22bc567850b1e87063b5ad5c77e023",
      "parents": [
        "8b95a1248945b8ed565d44dda2500fc5a1a0f6fb"
      ],
      "author": {
        "name": "Devika Krishnadas",
        "email": "kdevika@google.com",
        "time": "Fri Sep 15 18:46:03 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 15 18:46:03 2023 +0000"
      },
      "message": "Revert \"Lock down String8|16.string() usage\"\n\nThis reverts commit 8b95a1248945b8ed565d44dda2500fc5a1a0f6fb.\n\nReason for revert: DroidMonitor: Test failure\n\nChange-Id: I09230ea7c3b80e1b4d277d3c6c6355a38f7bbc92\n"
    },
    {
      "commit": "8b95a1248945b8ed565d44dda2500fc5a1a0f6fb",
      "tree": "1c39efdd9ffd4bd297d5ff1c23c864501f3b6ae7",
      "parents": [
        "358a982b7169104736a8025fa1799327fa124f4f"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Aug 11 18:43:23 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Sep 14 18:37:52 2023 +0000"
      },
      "message": "Lock down String8|16.string() usage\n\nAll users should migrate to .c_str()\n\nBug: 295394788\nTest: make checkbuild\nChange-Id: Ic6295848cf3377e0bf5334448d5ed7ea53fae7ae\n"
    },
    {
      "commit": "358a982b7169104736a8025fa1799327fa124f4f",
      "tree": "1c44bd3cbf22bc567850b1e87063b5ad5c77e023",
      "parents": [
        "7f13bc4f473daadc335ed3fcff486cc690486623",
        "8b5c8477f915e8680257657042e64181104b9bda"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Sep 14 16:18:49 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 14 16:18:49 2023 +0000"
      },
      "message": "Merge \"Lock down String8.isEmpty() usage\" into main"
    },
    {
      "commit": "8b5c8477f915e8680257657042e64181104b9bda",
      "tree": "4ddc84114c0651e5419e2da72036f9f7acb64ad4",
      "parents": [
        "51e3b9cbca982d4917954e04755252b98937523b"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Mon Aug 14 18:20:02 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Sep 14 15:04:00 2023 +0000"
      },
      "message": "Lock down String8.isEmpty() usage\n\nAll users should migrate to .empty()\n\nBug: 295394788\nTest: make checkbuild\nChange-Id: I5ec7921b9cf70e6b0857e1087f141dce958d2587\n"
    },
    {
      "commit": "771bda6c0b991542359e8348a762878c60fccbc3",
      "tree": "985af9f73a5344228ac40a29b16bc68ede203b9b",
      "parents": [
        "8245afd47d9b355cce2034a5b6de957dcdafbb3e",
        "86c9ea8f861ec80399305f6f5aff422e45e0ac70"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Sep 12 20:43:20 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 12 20:43:20 2023 +0000"
      },
      "message": "Merge \"Implement android::String access methods that avoid C string cast\" into main"
    },
    {
      "commit": "86c9ea8f861ec80399305f6f5aff422e45e0ac70",
      "tree": "28ac269401a1b976bb2274b4e1289a14c0c22f8d",
      "parents": [
        "51e3b9cbca982d4917954e04755252b98937523b"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Sep 12 16:23:13 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Sep 12 17:25:29 2023 +0000"
      },
      "message": "Implement android::String access methods that avoid C string cast\n\nBug: 295394788\nTest: m checkbuild\nChange-Id: If25fd69319171e8c549fc8fcfd95a0819291d8e6\n"
    },
    {
      "commit": "8245afd47d9b355cce2034a5b6de957dcdafbb3e",
      "tree": "07996ac18920365999447b87370c6b8ab1f8f2b2",
      "parents": [
        "1b547892f62a84f3e3bfad56ac7865002db56a08",
        "a1853516ff0dc78b677eeafa792cdfa9e5d9a2ee"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Sep 12 14:02:13 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 12 14:02:13 2023 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"Drop all path-related methods from android::String8\"\"\"\"\" into main"
    },
    {
      "commit": "a1853516ff0dc78b677eeafa792cdfa9e5d9a2ee",
      "tree": "4f2cb7f0c4ebb3c2859c9e207a0c7d5c56f0a79c",
      "parents": [
        "141255f30c35372bba80bfff9ac164f34e38784b"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Mon Sep 11 17:45:16 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 17:45:16 2023 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Drop all path-related methods from android::String8\"\"\"\"\n\nThis reverts commit 141255f30c35372bba80bfff9ac164f34e38784b.\n\nReason for revert: Attempt re-submit again\n\nChange-Id: I0e568fdf8f7a141ee3c5d54f68530ff478a47439\n"
    },
    {
      "commit": "d395f638facc1084d31619a7865feb6675d9dd5c",
      "tree": "d27ac8dc61ec84c33062bebdbf5dc8e47d2c60ee",
      "parents": [
        "6b78aac2cf1b7ee21ee25e8cd7427dd3ccb6f503",
        "141255f30c35372bba80bfff9ac164f34e38784b"
      ],
      "author": {
        "name": "Rhed Jao",
        "email": "rhedjao@google.com",
        "time": "Mon Sep 11 03:43:31 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 03:43:31 2023 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Drop all path-related methods from android::String8\"\"\"\" into main"
    },
    {
      "commit": "141255f30c35372bba80bfff9ac164f34e38784b",
      "tree": "56a797967f446fa576412a988e16ad196f166149",
      "parents": [
        "4b6a7c3940bc6d5e89e15179d8d49600e6dd4857"
      ],
      "author": {
        "name": "Rhed Jao",
        "email": "rhedjao@google.com",
        "time": "Mon Sep 11 02:05:58 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 02:05:58 2023 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Drop all path-related methods from android::String8\"\"\"\n\nThis reverts commit 4b6a7c3940bc6d5e89e15179d8d49600e6dd4857.\n\nReason for revert: b/299695302, b/299694769\n\nChange-Id: I89c6719d23446f2f9ce24e5b75d321538b580431\n"
    },
    {
      "commit": "b2b037d9f05eaef2c09fdd8ec905d75dc7ac2644",
      "tree": "77f9394715d6db9d327e8b1bd22ec82db5f939b3",
      "parents": [
        "9cbae9d75bcb531a12d0a5b23088f396091690cd",
        "4b6a7c3940bc6d5e89e15179d8d49600e6dd4857"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 19:59:48 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 19:59:48 2023 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Drop all path-related methods from android::String8\"\"\" into main"
    },
    {
      "commit": "9cbae9d75bcb531a12d0a5b23088f396091690cd",
      "tree": "b4415901401e5e4f524eadbbf4d4af624882fbb6",
      "parents": [
        "acc7ff19f995a41e3033d841c2f0051b2fd25269",
        "adaf33026a32e336dd727cb4d03e9cd656c2869c"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 18:17:25 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 18:17:25 2023 +0000"
      },
      "message": "Merge \"Drop String8::std_string\" into main"
    },
    {
      "commit": "4b6a7c3940bc6d5e89e15179d8d49600e6dd4857",
      "tree": "4f2cb7f0c4ebb3c2859c9e207a0c7d5c56f0a79c",
      "parents": [
        "acc7ff19f995a41e3033d841c2f0051b2fd25269"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 17:11:39 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 11:03:59 2023 -0700"
      },
      "message": "Revert \"Revert \"Drop all path-related methods from android::String8\"\"\n\nThis reverts commit cff2e40d19113fa7ed57fedae072ad605cef1be7.\n\nReason for revert: Attempt re-submit\n\nChange-Id: I8802b519e4ae3046858b854815ba580c7a6b965d\n"
    },
    {
      "commit": "cff2e40d19113fa7ed57fedae072ad605cef1be7",
      "tree": "87e277e6e9161309c318dd4f35d555fc800c45b0",
      "parents": [
        "b9dc1c2991de9ca87bdbf00c413b7f2bb4477fe2"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 17:08:39 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 17:08:39 2023 +0000"
      },
      "message": "Revert \"Drop all path-related methods from android::String8\"\n\nThis reverts commit b9dc1c2991de9ca87bdbf00c413b7f2bb4477fe2.\n\nReason for revert: http://b/299624573\n\nChange-Id: I0d5993295df65ec31c180b6b5a76fbe939891f45\n"
    },
    {
      "commit": "adaf33026a32e336dd727cb4d03e9cd656c2869c",
      "tree": "252c0662fc055cd161c7cb8f43be23070684d838",
      "parents": [
        "cc64ed986547fccac4a15e6bd38d99d357e426a6"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 09:51:24 2023 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 09:51:24 2023 -0700"
      },
      "message": "Drop String8::std_string\n\nThis method was preserved under assumption it would be baked into many\nprebuilts, but since it\u0027s inline, there should be no linkage to libutils\n- thus, should be safe to remove anyway.\n\nBug: 35363681\nBug: 295394788\nTest: treehugger\nChange-Id: I59964935600e9e786424136177bfc8a70bebec67\n"
    },
    {
      "commit": "b9dc1c2991de9ca87bdbf00c413b7f2bb4477fe2",
      "tree": "86cbcf3728bfe7451ad67791ebfaccad4d46cc07",
      "parents": [
        "66b68dde923892be447e48355095dbf74be8ea70"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Aug 22 20:45:21 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 03:07:52 2023 +0000"
      },
      "message": "Drop all path-related methods from android::String8\n\nMove them to androidfw and aapt, the last users.\n\nBug: 295394788\nTest: m checkbuild\nChange-Id: I7268b88d11bf221f93efed06cfd1ee65449a2421\n"
    },
    {
      "commit": "e474f21a45b5e2b8973ffd378b119bf378cd0282",
      "tree": "460c3f3f62749f343567671c51d6b3f6f2057aa6",
      "parents": [
        "18560efc308f9c345915dd4d5fa1a2939fcf5ebc"
      ],
      "author": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Mon Sep 04 11:16:34 2023 +0800"
      },
      "committer": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Mon Sep 04 03:38:15 2023 +0000"
      },
      "message": "Check the ABI of libutils for vendor and product only\n\nIt is not necessary to compare the dumps with the library installed in\nsystem partition.\n\nTest: m out/target/product/generic_x86_64/lsdump_paths.txt\nBug: 280008249\nChange-Id: I8fc39ad17d37cd43bf1d77ba23dde55d05dadce1\n"
    },
    {
      "commit": "18560efc308f9c345915dd4d5fa1a2939fcf5ebc",
      "tree": "e842372699fbba5e42708fc18de4cc775377e5d0",
      "parents": [
        "c718295a583df34c2b02ca948db95151c62e62b5",
        "f59712928233f6abadd888e7d014b6fa4a20e932"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Aug 25 17:07:42 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 25 17:07:42 2023 +0000"
      },
      "message": "Merge \"Migrate from android::String isEmpty to empty\" into main"
    },
    {
      "commit": "9578c774a94f7e3d2744a5c1475687dab4ffcf21",
      "tree": "49c60c510c86f444f9f8d38e6c767157a205443e",
      "parents": [
        "92ad0d32c0e7a00e7ca3df656869e6d221802553",
        "2676893dd89fd7127c34a2f211dd02b5a8d7a647"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Aug 24 18:31:56 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 24 18:31:56 2023 +0000"
      },
      "message": "Merge \"Implement String8|16::empty and String16::length\" into main"
    },
    {
      "commit": "92ad0d32c0e7a00e7ca3df656869e6d221802553",
      "tree": "7083abab2e578e2808f1410bc88b0cf1ac7ef503",
      "parents": [
        "c728c39121a66e033a0e48e805b0b2587aba59ff",
        "1d98fe0d393f05283f3a10a896f1054ecd3043cd"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Aug 24 16:46:49 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 24 16:46:49 2023 +0000"
      },
      "message": "Merge \"Lose convertToResPath to aapt.\" into main"
    },
    {
      "commit": "1d98fe0d393f05283f3a10a896f1054ecd3043cd",
      "tree": "1fd5d7bad03dfdbd029bdf3e527ae547d207324a",
      "parents": [
        "d4e75d578b35d21d7703fb0c84254c202f8bb779"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 13 17:14:20 2021 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Aug 24 04:33:05 2023 +0000"
      },
      "message": "Lose convertToResPath to aapt.\n\naapt (not aapt2) is the only user.\n\nTest: treehugger\nChange-Id: Ie69f84f4f805c69f838e345b44755a316b9f9b06\n"
    },
    {
      "commit": "f59712928233f6abadd888e7d014b6fa4a20e932",
      "tree": "a486ec1ad74ced78c8169673e8a5466fa62fb2d6",
      "parents": [
        "2676893dd89fd7127c34a2f211dd02b5a8d7a647"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Mon Aug 14 18:18:26 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Aug 18 22:07:28 2023 +0000"
      },
      "message": "Migrate from android::String isEmpty to empty\n\nThis empty method is different from the old one - it aligns with\nstd::string definition.\n\nBug: 295394788\nTest: make checkbuild\nChange-Id: Id6baed8cde01a75a8839ad6b4475a31ba1f49c8a\n"
    },
    {
      "commit": "2676893dd89fd7127c34a2f211dd02b5a8d7a647",
      "tree": "a0758a2328c99ca43ba59f1b9c4feffbdc416335",
      "parents": [
        "6d1b644930d2c89ce967bcecc7fa4af0290e8fcd"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Mon Aug 14 17:05:51 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Aug 18 22:07:28 2023 +0000"
      },
      "message": "Implement String8|16::empty and String16::length\n\nThis time following std::string::empty meaning.\n\nString16::length is for parity with String8::length and to\nfollow std::string::length/size duo.\n\nBug: 295394788\nTest: mma\nChange-Id: I43df2cbb9ca6f980a4cf6d971064d594d661f884\n"
    },
    {
      "commit": "6d1b644930d2c89ce967bcecc7fa4af0290e8fcd",
      "tree": "9ed327947c7b1157f76aecef73953cf82745f189",
      "parents": [
        "d1e04d2123694480426703ed97399c0102109fd4"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Mon Aug 14 15:47:29 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Aug 18 22:07:28 2023 +0000"
      },
      "message": "Drop String::empty()\n\nThis method causes confuction and bugs by having the same name, but\ndifferent meaning versus std::string::empty().\n\nBug: 295394788\nTest: make checkbuild\nChange-Id: I15aadc023b20559930e4ec79f43f7032e8cd90d0\n"
    },
    {
      "commit": "18b746188c73a83ad57b99558914ba9421e8a20a",
      "tree": "489b856138f1b2d309d9208031f9177594a0a418",
      "parents": [
        "90af4157c57de30ea0c3ab5ce2ab79c2ba36ef3b"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Aug 10 23:29:50 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Aug 11 19:53:20 2023 +0000"
      },
      "message": "Migrate String8/16 from .string() to c_str()\n\nThis will align usage with std::string.\n\nBug: 295394788\nTest: make checkbuild\nChange-Id: Ic5c215b011197950dcbcb0339f44cc68fefc65a1\n"
    },
    {
      "commit": "90af4157c57de30ea0c3ab5ce2ab79c2ba36ef3b",
      "tree": "c7bae00384c16d2223d73155d77d2b9692dabbfc",
      "parents": [
        "0c0dafae8d411b804564a19af628bb6ddebb56e8"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Aug 11 02:12:16 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Aug 11 19:40:34 2023 +0000"
      },
      "message": "Add String16::c_str and start using it.\n\nThis is for parity with String8::c_str and in general the first step\nin transition from String8|16.string() - to make it more similar to\nstd::string.\n\nBug: 295394788\nTest: mma -j\nChange-Id: I6c1411bef07c761fb2fb3fb38c27801ac4cffc57\n"
    },
    {
      "commit": "4a33c22c77c09d993d24b0831cf45399d76cc6b4",
      "tree": "3ce04361ac4fd36b1aced19ffdf1b339076513d7",
      "parents": [
        "f161ee27710248c973e188d5e61c76e473c86d52",
        "c6ce48ef190d74b11c265076518dcc69f6fe4665"
      ],
      "author": {
        "name": "Eric Miao",
        "email": "ericymiao@google.com",
        "time": "Wed Jul 19 02:03:40 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 19 02:03:40 2023 +0000"
      },
      "message": "Merge \"String8: fix infinite loop and segmentation fault in removeAll()\" into main"
    },
    {
      "commit": "c6ce48ef190d74b11c265076518dcc69f6fe4665",
      "tree": "cbd6831f8dc319089889d1e6bf3bd5de8e0ca6c5",
      "parents": [
        "cb199b47955623746a021bdb91a04478b3bd3a7e"
      ],
      "author": {
        "name": "Eric Miao",
        "email": "ericymiao@google.com",
        "time": "Fri Jul 14 16:35:09 2023 -0700"
      },
      "committer": {
        "name": "Eric Miao",
        "email": "ericymiao@google.com",
        "time": "Tue Jul 18 16:02:07 2023 -0700"
      },
      "message": "String8: fix infinite loop and segmentation fault in removeAll()\n\nBug: 290835996\nTest: libutils_fuzz_string8 for several minutes\n\nString8::removeAll() has 2 serious problems:\n\n1. When `other` is an empty string, `removeAll()` will loop infinitely\n   due to below process:\n\n   a) with `other` being empty string `\"\"`, find() will call strstr()\n      on an empty string, which always returns `mString`, and thus\n      find() always return 0 in this case\n   b) with find() returns 0 for empty string, the next while loop in\n      String8::removeAll() will keep loop infinitely as `index` will\n      always be 0\n\n   This CL fixes this problem by returning true if `other` is an empty\n   string (i.e. `strlen(other) \u003d\u003d 0`), this follows the logic that an\n   empty string will always be found and no actual remove needs to be\n   done.\n\n2. When `other` is a NULL string, strstr() has undefined behavior. See\n   https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf.\n\n   This undefined behavior on Android unfortunately causes immediate\n   segmentation fault as the current `strstr` implementation in bionic\n   libc doesn\u0027t check `needle` being NULL, and an access to a NULL\n   location is performed to check if the `needle` string is an empty\n   string, and thus causes segmentation fault.\n\n   This CL gives an error message and aborts instead of having a\n   segfault, and to keep some backward compatibility.\n\n   This CL also adds test for String8::removeAll()\n\nChange-Id: Ie2ccee6767efe0fed476db4ec6072717198279e9\n"
    },
    {
      "commit": "435b520bf090ed720bf7b7b4e24f4e751de0adc5",
      "tree": "463d7ba268821edd10c976d6b6185e9dc14db4ba",
      "parents": [
        "8dad4b2b8a5b9311fe6022120fbef3a21ac53b43",
        "749becfa689186a6ab5cc6d83f9f470cced9b05c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jul 18 21:49:06 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 18 21:49:06 2023 +0000"
      },
      "message": "Merge \"Fix libutils_fuzz_string8 deadlock.\" into main"
    },
    {
      "commit": "749becfa689186a6ab5cc6d83f9f470cced9b05c",
      "tree": "f413d8b2a8618a68f750e1b77e60690edd653a3d",
      "parents": [
        "740c0d274c22cdf1c1744cc4c0d7213b23fff8ed"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 13 21:19:50 2023 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 18 21:04:07 2023 +0000"
      },
      "message": "Fix libutils_fuzz_string8 deadlock.\n\nBug: 290835996\nTest: libutils_fuzz_string8 for several minutes\nChange-Id: I9b312dd968c380f4fa2a837d38121d0a7a7ac7b1\n"
    },
    {
      "commit": "cb199b47955623746a021bdb91a04478b3bd3a7e",
      "tree": "0651e39f42d1f1604f0df714c1cb5eb7ff1e220c",
      "parents": [
        "dc8ae8c55a0dc78be9a8cae109294e1ee645280b"
      ],
      "author": {
        "name": "Eric Miao",
        "email": "ericymiao@google.com",
        "time": "Wed Nov 30 16:05:49 2022 -0800"
      },
      "committer": {
        "name": "Eric Miao",
        "email": "ericymiao@google.com",
        "time": "Wed Jul 12 13:23:07 2023 -0700"
      },
      "message": "libutils: Improve performance of utf8_to_utf16/utf16_to_utf8\n\nThis CL improves the performance of below functions in helping with conversion\nbetween utf8/utf16 with libutils:\n\n  - utf8_to_utf16_length\n  - utf8_to_utf16\n  - utf16_to_utf8_length\n  - utf16_to_utf\n\nThe basic idea is to keep the loop as tight as possible for the most\ncommon cases, e.g. in UTF16--\u003eUTF8 case, the most common case is\nwhen the character is \u003c 0x80 (ASCII), next is when it\u0027s \u003c 0x0800 (\nmost Latin), and so on.\n\nThis version of implementation reduces the number of instructions\nneeded for every incoming utf-8 bytes in the original implementation\nwhere:\n\n  1) calculating how many bytes needed given a leading UTF-8 byte\n     in utf8_codepoint_len(), it\u0027s a very clever way but involves\n     multiple instructions to calculate regardless\n\n  2) and an intermediate conversion to utf32, and then to utf16\n     utf8_to_utf32_codepoint()\n\nThe end result is about ~1.5x throughput improvement.\n\nBenchmark results on redfin (64bit) before the change:\n\nutf8_to_utf16_length: bytes_per_second\u003d307.556M/s\nutf8_to_utf16:        bytes_per_second\u003d246.664M/s\nutf16_to_utf8_length: bytes_per_second\u003d482.241M/s\nutf16_to_utf8:        bytes_per_second\u003d351.376M/s\n\nAfter the change:\n\nutf8_to_utf16_length: bytes_per_second\u003d544.022M/s\nutf8_to_utf16:        bytes_per_second\u003d471.135M/s\nutf16_to_utf8_length: bytes_per_second\u003d685.381M/s\nutf16_to_utf8:        bytes_per_second\u003d580.004M/s\n\nIdeas for future improvement could include alignment handling and loop\nunrolling to increase throughput more.\n\nThis CL also fixes issues below:\n\n  1. utf16_to_utf8_length() should return 0 when the source string has\n     length of 0, the original code returns -1 as below:\n\n    ssize_t utf16_to_utf8_length(const char16_t *src, size_t src_len)\n    {\n        if (src \u003d\u003d nullptr || src_len \u003d\u003d 0) {\n            return -1;\n        }\n\t...\n\n  2. utf8_to_utf16() should check whether input string is valid.\n\nChange-Id: I546138a7a8050681a524eabce9864219fc44f48e\n"
    },
    {
      "commit": "f5d4edaa31198f8c9559c598a6c6774cec2dfb0e",
      "tree": "65029846bad085055b2254930ab69942d8090393",
      "parents": [
        "f43e20c9b4010ee8c5056bf6ab27e789a769e51b",
        "379d5c83d58fa78d4d919a26488e83b26fd6639d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Sat Jul 01 01:28:13 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 01 01:28:13 2023 +0000"
      },
      "message": "Merge \"libutils: rewrite Vector fuzzer\""
    },
    {
      "commit": "379d5c83d58fa78d4d919a26488e83b26fd6639d",
      "tree": "b231ce58d4a3a21f04a265a4999cbe52253e0229",
      "parents": [
        "14777142624874f921f0d1c8079626386c590215"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Jul 01 00:27:23 2023 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Jul 01 00:28:48 2023 +0000"
      },
      "message": "libutils: rewrite Vector fuzzer\n\nIt could never have gotten much coverage.\n\nBug: 288741501\nTest: libutils_fuzz_vector (2,000,000 iterations)\n                           (~60k-100k iterations/s)\nChange-Id: I6f442642b5a3246dd08784f735db5aad5fd4d398\n"
    },
    {
      "commit": "aab4105ef617c9bc806d14a585e59ec7546ff25d",
      "tree": "c46443fe9a4e480d545ed99c8f5884efabf84359",
      "parents": [
        "14777142624874f921f0d1c8079626386c590215"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Jun 27 16:06:35 2023 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Wed Jun 28 11:21:47 2023 -0700"
      },
      "message": "Drop const assignment operator.\n\nAlso, silence cert-oop54-cpp - self-assignment is already handled in\nVectorImpl class.\n\nBug: 289151149\nTest: it builds\nChange-Id: I8be7714ed53d1515df7cfdf6de6f3c90b3e5cc76\n"
    },
    {
      "commit": "2aba0a228324b2868e62df074fac616d7cc4e609",
      "tree": "25528cfaccb0babd8db3b96036314c0a9ad629fa",
      "parents": [
        "61b9935e50ed5aa5ad642691e370a740db22271a"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Wed Jun 14 23:08:02 2023 +0000"
      },
      "committer": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Thu Jun 15 00:37:52 2023 +0000"
      },
      "message": "Fix LruCache, allow std:string caching\n\nThe default initalization for mNullValue uses 0 which is in the case of\na std::string TValue will invoke the contructor with undefined behavior\nparameter.\n\nUsing an empty uniform initialization {} addresses the problem.\n\nTest: Already tested in lrucache_test.cpp\nBug: 257127748\nChange-Id: I37420ce8a16c99f3014538a0208d7e113870b1c7\n"
    },
    {
      "commit": "b3e1993ee55269694c345743191a67fbdc443e97",
      "tree": "452e1ccb205b162057d713005006fefb6e49b71a",
      "parents": [
        "da739b2eeaa3ce12f7978e6d293b39545ebf1ce6"
      ],
      "author": {
        "name": "Hao Chen",
        "email": "chenhaosjtuacm@google.com",
        "time": "Wed May 31 14:18:59 2023 -0700"
      },
      "committer": {
        "name": "Hao Chen",
        "email": "chenhaosjtuacm@google.com",
        "time": "Mon Jun 05 13:49:17 2023 -0700"
      },
      "message": "Add the Missing Header\n\n`stderror` is used in this file and it is defined in `string.h/cstring`, so\nthe header file needs to be directly included.\n\nTest: build\nBug: 285204695\nChange-Id: Idf34126626ad0e9bb397df3d5da50439bf18381d\n"
    },
    {
      "commit": "3e8ad4d546d401ad9da77c3d67ebd6ca19cd2c59",
      "tree": "86b964992ead6dd5afeb79c930f881d9d2e82787",
      "parents": [
        "25613816d80d00680db90c5bd280587fdf84b1a0"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed May 31 10:19:54 2023 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed May 31 10:19:54 2023 -0700"
      },
      "message": "Halve iteration count for some RefBase tests\n\nThe RacingDestructors test was occasionally timing out, by non-huge\namounts. Halve the number of iterations for long-running tests here.\n\nBug: 284964396\nTest: Treehugger\nChange-Id: If639ce98fbeb783431f07006dece4cd69f9f8b50\n"
    },
    {
      "commit": "6634c1741e4b7dc2b5ffdec8ca4725a25786b1c3",
      "tree": "5612a46a4129c0d6d4a335dfac9da3aea13e78d3",
      "parents": [
        "396b107a41c217269e8ab5815082ae7366e074b7"
      ],
      "author": {
        "name": "zijunzhao",
        "email": "zijunzhao@google.com",
        "time": "Wed Mar 01 23:30:29 2023 +0000"
      },
      "committer": {
        "name": "zijunzhao",
        "email": "zijunzhao@google.com",
        "time": "Wed Mar 01 23:30:29 2023 +0000"
      },
      "message": "Fix the missing std\n\nBug: b/239662094\nTest: enable Wunqualified-std-cast-call locally and run m to build\nChange-Id: I203af8dbbbf1d889b9fc5efd5b62fa165ee09dc2\n"
    },
    {
      "commit": "ff9e640e435c5cec869758459fd76982e10ca1d6",
      "tree": "91595bfd25536337f2103a1e250a114dabba5db3",
      "parents": [
        "f6fe4fc9fa0e326d656abdc094646687517f6e8c"
      ],
      "author": {
        "name": "Zhi Dou",
        "email": "zhidou@google.com",
        "time": "Fri Dec 09 22:30:57 2022 +0000"
      },
      "committer": {
        "name": "Zhi Dou",
        "email": "zhidou@google.com",
        "time": "Tue Dec 20 16:05:54 2022 +0000"
      },
      "message": "Replace \"apex_inherit\" min_sdk_version\n\nReplace \"apex_inherit\" min_sdk_version to a conditional setting. If\nenvironment veriable KEEP_APEX_INHERIT is set, using \"apex_inherit\" as\nthe min_sdk_version, otherwise set the number to \"29\". For more detail\nplease refer\nhttps://docs.google.com/document/d/1R2vZw0cQa-haAMgFyQ682uSq9aGBNQrzMHKIsU17-XY/edit?usp\u003dsharing\u0026resourcekey\u003d0-gUbs463r9LCKs7vdP_Xkmg\n\nTest: build APEX uses this library, and presubmit\nBug: 254634795\nChange-Id: If7acfce5fb2e1cb1cc7208a8c57b1e1cd1499c11\nMerged-In: Ie6984128e6b84ba73de3f4c08eca5560657c5ca2\n"
    },
    {
      "commit": "20d45cc9ce03dfd94c540fc4b21ec735d7313bb2",
      "tree": "a8460406f70a0a7cd00ad286d436e8c8653412d1",
      "parents": [
        "1a72f42e52243db835ad4731f1c7b487d7fa1708",
        "3de02bd0d5413fe41893515ee4eb172a0497d82e"
      ],
      "author": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Fri Dec 09 01:57:43 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 09 01:57:43 2022 +0000"
      },
      "message": "Merge \"Add an ABI dump directory for libutils\""
    },
    {
      "commit": "3de02bd0d5413fe41893515ee4eb172a0497d82e",
      "tree": "c88318bfe3de060d1a9f7e3112d2f0396eae6b2e",
      "parents": [
        "70b22e1c5bf962cf3a79d39e7603f5a68383b04b"
      ],
      "author": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Tue Dec 06 17:19:42 2022 +0800"
      },
      "committer": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Thu Dec 08 11:06:22 2022 +0800"
      },
      "message": "Add an ABI dump directory for libutils\n\nThe ABI dumps add visibility for API changes in a commonly used library.\n\nTest: development/vndk/tools/header-checker/utils/create_reference_dumps.py \\\n      -libs libutils -products aosp_arm64 \\\n      -ref-dump-dir system/core/libutils/abi-dumps\nTest: m libutils.vendor\nBug: 227282691\nChange-Id: I498c62853562a8fc6702bdd622603b6f7d516274\n"
    },
    {
      "commit": "c2527073c2810bcf79625a22e3b8a78e7a5eee11",
      "tree": "63a3eb5cb356914aabcc6f7fa793b7799041c1e4",
      "parents": [
        "f9e6c5104d4d0be8661006e75ae2f5b8d227df12"
      ],
      "author": {
        "name": "Eric Miao",
        "email": "ericymiao@google.com",
        "time": "Wed Nov 30 16:04:55 2022 -0800"
      },
      "committer": {
        "name": "Eric Miao",
        "email": "ericymiao@google.com",
        "time": "Tue Dec 06 15:14:27 2022 -0800"
      },
      "message": "libutils: Add more tests for Unicode\n\nThis CL added additional tests for converting between utf16 and utf8,\nspecifically tests that:\n\n  1. check utf16_to_utf8_length() returns 0 if input is an\n     empty UTF16 string\n\n  2. check utf16_to_utf8_length() returns 1 if input is a\n     single ASCII character UTF16 string\n\n  3. check utf16_to_utf8_length() returns 3 if input is a\n     single UTF-16 character between U+0800 - U+FFFF\n\n  4. check utf16_to_utf8_length() returns 4 if input has\n     a surrogate pair\n\n  5. check unpaired UTF-16 surrogate is handled correctly\n     (skipped)\n\n  6. check utf16_to_utf8_length(0 handles invalid surrogate\n     case correctly, by skipping the first but handling the\n     rest correctly\n\n  7. check a normal string with a mix of 1/2/3/4-byte UTF8\n     characters is correctly converted by utf16_to_utf8()\n\n  8. check conversion from invalid utf8 sequence with invalid\n     leading byte and/or invalid trailing byte(s) should still\n     work and not crash\n\nChange-Id: If68e514af0e84ddebf5900b2e140e76ba4f44553\n"
    },
    {
      "commit": "890f0649902767e93eeac2c7fbad6bacde21ece1",
      "tree": "d4a89b8280684543adda26b8686b55ddfe441db8",
      "parents": [
        "ccf13942e05ce18c1365f4d8703de6d8fd1c6e6d"
      ],
      "author": {
        "name": "Biswapriyo Nath",
        "email": "nathbappai@gmail.com",
        "time": "Fri Nov 25 12:15:47 2022 +0530"
      },
      "committer": {
        "name": "Biswapriyo Nath",
        "email": "nathbappai@gmail.com",
        "time": "Fri Nov 25 12:15:53 2022 +0530"
      },
      "message": "libutils: Fix missing definition of shared_ptr and unique_ptr\n\nThis includes memory header for shared_ptr and unique_ptr templates.\nFixes the following errors:\n\nRefBase.h:803:1: error: ‘shared_ptr’ does not name a type\nRefBase.h:810:1: error: ‘unique_ptr’ does not name a type\n\nChange-Id: I6a7a67333c9ef05250c5a3c6199d7fac288f946b\n"
    },
    {
      "commit": "9e25bf0136d085b1a825afeed308f2f364110c61",
      "tree": "1dbbe8b4f83f07a6d565979ac7894242b3c9f62b",
      "parents": [
        "7014fa9fa31412e6241a8dd47bce62a2ca55af68"
      ],
      "author": {
        "name": "Biswapriyo Nath",
        "email": "nathbappai@gmail.com",
        "time": "Fri Oct 21 10:26:01 2022 +0530"
      },
      "committer": {
        "name": "Biswapriyo Nath",
        "email": "nathbappai@gmail.com",
        "time": "Fri Oct 21 10:26:08 2022 +0530"
      },
      "message": "libutils: Include limits for std::numeric_limits::max\n\nThis fixes the following error:\ncore/libutils/String8.cpp:316:67: error: incomplete type \u0027std::numeric_limits\u003clong long unsigned int\u003e\u0027 used in nested name specifier\n  316 |         if (static_cast\u003csize_t\u003e(n) \u003e std::numeric_limits\u003csize_t\u003e::max() - 1 ||\n      |                                                                   ^~~\n\nChange-Id: I80cdd2442e2798c37e066e3fdeee7dd5ac34b669\n"
    },
    {
      "commit": "b7412c8cd6c1428183866b47052131fc694837fa",
      "tree": "4c276ec3a73bc8734c4b237090f2386d56aec3ec",
      "parents": [
        "377adea81ccd56bfbf684db2e70ab7d261870119"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Oct 08 05:07:52 2022 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Oct 10 16:58:57 2022 +0000"
      },
      "message": "libutils: RefBase DEBUG_REF love\n\nDone here:\n- path saved to a useable location on host\n- path always printed (for visibility for new users)\n- open(.., 666) - That\u0027s \u002701204\u0027 not \u00270644\u0027 oops\n\nFuture considerations:\n- make defines constexpr instead of ifdef\n- copy malloc hook design to avoid needing to recompile code\n- make libutilscallstack default on host\n- run libutils tests, not just test compile debug mode\n- code incorrectly prints ref \u0027doesn\u0027t exist\u0027\n  seems it\u0027s gotten out of sync, but still good enough\n  to use stacktraces\n\nBug: 244325464\nTest: manual\nChange-Id: I732e5b8aec3cd946ef3559a2a814caf693846cc0\n"
    },
    {
      "commit": "377adea81ccd56bfbf684db2e70ab7d261870119",
      "tree": "bbf1a1a173758abe1404627c6383d69f3327ed85",
      "parents": [
        "27cf51e71c978bf19a2439bdb631417bf57abbde"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Oct 08 05:06:52 2022 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Oct 08 05:13:47 2022 +0000"
      },
      "message": "libutils: DEBUG_* modes compile forever\n\nI\u0027ve seen these fixed before, so we compile the debug modes\nnow.\n\nBug: 244325464\nTest: \u0027m libutils_test_compile\u0027\nChange-Id: I4271909e81893ad448bc46b8a3a567a84c40f8a3\n"
    },
    {
      "commit": "b795d6fa4b2a5721df5499c7d30e66e4b62c94ed",
      "tree": "d21a9149f4e1984352bef30a1499e42c7cab27d1",
      "parents": [
        "565305b85200aad7908a05445efad090d365fd23"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 20:15:19 2022 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 20:16:25 2022 +0000"
      },
      "message": "Fix the build with a newer LLVM.\n\nUnify all our \"noinline\" variants to the current most common one, not\nleast because the new [[noinline]] syntax is fussier about where it goes.\n\nTest: treehugger\nChange-Id: Icfcb75c9d687f0f05c19f66ee778fd8962519436\n"
    },
    {
      "commit": "15fee822470654e722879e1e5d6b50008637af0c",
      "tree": "bc13e36b4efcdcac08eb8e72f9ad1ecf226afde8",
      "parents": [
        "61c82abe24ae265e41b1176077696814dceef137"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Sep 12 18:00:10 2022 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Sep 12 18:37:22 2022 -0700"
      },
      "message": "Fix thread unwind in CallStack.\n\nThe CallStack unwind of a different thread was broken since it\nwasn\u0027t properly setting the tid value.\n\nFix this problem and add new unit tests to verify the behavior.\n\nBug: 246405269\n\nTest: New unit tests pass.\nTest: Ran unit tests for 1000 operations to verify not flaky.\nChange-Id: I00342e6cdcdb4bcb68f29734dadee6c987c98040\n"
    },
    {
      "commit": "4913ca88e5929a59aecd1b5249abfc8542537faf",
      "tree": "c232c1de0d59417d0b0e6e38afe412b97bec27df",
      "parents": [
        "0d78c9a0af5694e7114e275172fee4c0769b9c59"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Aug 26 20:24:57 2022 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Aug 26 20:24:57 2022 -0700"
      },
      "message": "Remove unnecessary std::unary_function base classes\n\nThe function objects work equally well without them, and the base\nclasses were wrong for both types:\n * HashForEntry: returns size_t but declared to return hash_t\n   (uint32_t)\n * EqualityForHashedEntries: returns bool and takes two parameters but\n   declared to return hash_t and take one parameter\n\nstd::unary_function was deprecated in C++11 and removed in C++17.\nUpstream libc++ now removes the type for new-enough C++ dialects.\n\nBug: http://b/175635923\nTest: treehugger\nChange-Id: I2ff15c5da6a4e4f71df08c243f8af2f11d8d2b0d\n"
    },
    {
      "commit": "643d08e706e152417dfcd34089c78fed27adf54e",
      "tree": "b08986afe2a2ab9c4ae4b60ee98b25389df2e5e2",
      "parents": [
        "5ac8fb1c0ba5c8a95f5367333ff6a873c05d51bc",
        "5daa3bb90e1eb1f13631c0eaa2d3b0ebd2751011"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jul 29 18:31:32 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 29 18:31:32 2022 +0000"
      },
      "message": "Merge \"RefBase: test for stack check\" am: 5daa3bb90e\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2169132\n\nChange-Id: Ib7b35af8469fdc563244f2dde4a4e0ee91e7f35a\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "5daa3bb90e1eb1f13631c0eaa2d3b0ebd2751011",
      "tree": "7254b64c66a574be7e59e0ce0161875cd0e75290",
      "parents": [
        "811eed3bb6d13cf38b736745d3759178f24c3497",
        "cd4ef87efdf88cb5abc17ee6739208b3386420ec"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jul 29 18:10:03 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 29 18:10:03 2022 +0000"
      },
      "message": "Merge \"RefBase: test for stack check\""
    },
    {
      "commit": "cd4ef87efdf88cb5abc17ee6739208b3386420ec",
      "tree": "7a68c4566bac47defc07ded47679b71b90a9fd7b",
      "parents": [
        "51e98b83789c0ae840acc5c78dd785b94d4d7dfd"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jul 29 00:40:29 2022 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jul 29 00:54:57 2022 +0000"
      },
      "message": "RefBase: test for stack check\n\nSurprised this isn\u0027t breaking anything, so wanted to\nmake sure it worked.\n\nBug: 232557259\nTest: libutils_test\nChange-Id: Iaec47d644c02dc190e397c6f84dcfab4cc76f566\n"
    },
    {
      "commit": "c55c68fe33ab593a550f57d4a81f8edbacb171b0",
      "tree": "f94e31f88a721449669b18a7c9f64a203bbc6c0e",
      "parents": [
        "de52706513874b4abca6fa9ae8b6d494ef7864e2",
        "ea25b4ba5b9d3b78c20f5056b17e629f5d0ed7d4"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 28 23:45:34 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 28 23:45:34 2022 +0000"
      },
      "message": "Merge \"libutils: disallow extending lifetime on stack\" am: ea25b4ba5b\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2166445\n\nChange-Id: I48eb86eb8426b1e5c7c92f957173b2eb63870864\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "ea25b4ba5b9d3b78c20f5056b17e629f5d0ed7d4",
      "tree": "426cf69a390748632085688f283aebe498662541",
      "parents": [
        "51e98b83789c0ae840acc5c78dd785b94d4d7dfd",
        "d086fe51092b6302cf2fc5a460e63393726468e5"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 28 23:17:35 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 23:17:35 2022 +0000"
      },
      "message": "Merge \"libutils: disallow extending lifetime on stack\""
    },
    {
      "commit": "de52706513874b4abca6fa9ae8b6d494ef7864e2",
      "tree": "ed495d3568edd3b719eabdb530790ee33d33ef16",
      "parents": [
        "f0049583dc7d2f2daf6eb286c65fdd6850d846c7",
        "51e98b83789c0ae840acc5c78dd785b94d4d7dfd"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 28 16:29:49 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 28 16:29:49 2022 +0000"
      },
      "message": "Merge \"libutils: RefBase always disallow on stack\" am: 51e98b8378\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2166102\n\nChange-Id: Ia8b3205fbb6e36b3c85a378df4c63db4f32759f5\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "51e98b83789c0ae840acc5c78dd785b94d4d7dfd",
      "tree": "3867838d31effe8e8915e6a14e93fa40afe11a3e",
      "parents": [
        "ef46fe4e2b5f1909b9e9a4ae66f70a859211d1d6",
        "c340a08b1b2d439f482144d03df1a781c26cb0e5"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 28 16:11:10 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 16:11:10 2022 +0000"
      },
      "message": "Merge \"libutils: RefBase always disallow on stack\""
    },
    {
      "commit": "414bab91ebb3db16ed8cf92cf1689947e51aed91",
      "tree": "37a5ea68f73ee6e1b45bf2aedc4c9c5caf1f4af9",
      "parents": [
        "81b1c57c0d0bb97b04dea73af8e4a550819101fb",
        "b0fe01da56027365d91f61231de69775e20d6b7d"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 26 22:27:26 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 26 22:27:26 2022 +0000"
      },
      "message": "Merge \"libutils: RefBase: extra check for double own\" am: b0fe01da56\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2166103\n\nChange-Id: Ie252e8a229d8151aad82347f6b216dbed752d86b\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "d086fe51092b6302cf2fc5a460e63393726468e5",
      "tree": "975b67a384f3c4c726761c205a0ef85d2dabd6cc",
      "parents": [
        "c340a08b1b2d439f482144d03df1a781c26cb0e5"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 26 22:11:13 2022 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 26 22:11:13 2022 +0000"
      },
      "message": "libutils: disallow extending lifetime on stack\n\nBug: 232557259\nTest: libutils_test\nChange-Id: Iacf45b9f295a48904606ced35994ba35566bfcc3\n"
    },
    {
      "commit": "c340a08b1b2d439f482144d03df1a781c26cb0e5",
      "tree": "9ee13956999522d0c67ba82270d9477f08adb85f",
      "parents": [
        "ccb1ce32cca359c1b6648b2337d79830da3ec31c"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 26 17:09:50 2022 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 26 22:10:51 2022 +0000"
      },
      "message": "libutils: RefBase always disallow on stack\n\nBefore, we only did this in sp\u003c\u003e constructors, but we can always make\nthis check during the initial incStrong.\n\nSince prebuilts call into the existing report race function declared\nin StrongPointer.h, we still call this function from RefBase.cpp.\n\nBug: 232557259\nTest: libutils_test\nChange-Id: I4080b1869b83ecf655fc9c182b6de768a6358adf\n"
    },
    {
      "commit": "483a2def8dd26d0145e752250f3ddb382ea1f6f3",
      "tree": "3f161aff1c725ea73c41e8b2641813e502dedf3f",
      "parents": [
        "ccb1ce32cca359c1b6648b2337d79830da3ec31c"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 26 17:57:39 2022 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 26 17:59:14 2022 +0000"
      },
      "message": "libutils: RefBase: extra check for double own\n\nBug: 232557259\nTest: libutils_test\nChange-Id: Ibd400750e7973600ec3fa493838a3b52cafe3add\n"
    },
    {
      "commit": "ebe6598a1c718c918ace10f42e4745976581cd7e",
      "tree": "88e38b37f84d4cb0fcdef105005554f8ed007296",
      "parents": [
        "2619a7e98cb10d37c15f36d82e355d251c0f005d",
        "9c3f5a2a37b396247346c282c7979fa08ed85bdd"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Jun 28 21:23:43 2022 +0000"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Jun 28 21:23:43 2022 +0000"
      },
      "message": "Merge tm-dev-plus-aosp-without-vendor@8763363\n\nBug: 236760014\nMerged-In: Ia927c19f544536f78c20ccef5830bd1be0cebf9b\nChange-Id: I0267b9eaad470a56db68f3a0b99abfc41192c6d7\n"
    },
    {
      "commit": "9d8af6af656e86b67bc549d124c2fc21a68fa7cd",
      "tree": "d9b4e32891ae5ae74080d3ac46279cfade1fcc52",
      "parents": [
        "8874ad637838e96ac8766ace6a4abf4f7afc478a"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu May 19 19:29:35 2022 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jun 22 21:54:43 2022 +0000"
      },
      "message": "RefBase: disallow make_shared, make_unique\n\nIt\u0027s risky to mix multiple-ownership types. Taken from SharedRefBase.\n\nBug: 232557259\nTest: N/A\nChange-Id: Ic0dbd6d11e44fa9db87c4f9b1776d4989cbf9f56\n"
    },
    {
      "commit": "d82bd5a626509feabe16e8902394ff89d4bcdff5",
      "tree": "1b925ee2a4bef155bd8813a88cc34fa5b58ae69f",
      "parents": [
        "b8fd51e2626da76e123d42e4b17f1c9027d95978",
        "c7d9320ca4111d5a224ad0a22372ea98e06d175a"
      ],
      "author": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Fri May 27 03:18:38 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 27 03:18:38 2022 +0000"
      },
      "message": "RESTRICT AUTOMERGE Ignore weak symbol difference in libutils ABI check am: c7d9320ca4\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/system/core/+/18603830\n\nChange-Id: Ia15131ac6bb49823df032e39a8ee81e5d332addb\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c7d9320ca4111d5a224ad0a22372ea98e06d175a",
      "tree": "de353f3084ed8d05eeedfe68aa8302fd9477b53b",
      "parents": [
        "2d5d46ca85889743055e748a9545f7009b92bb4a"
      ],
      "author": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Thu May 26 14:06:36 2022 +0800"
      },
      "committer": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Thu May 26 15:20:06 2022 +0800"
      },
      "message": "RESTRICT AUTOMERGE Ignore weak symbol difference in libutils ABI check\n\nThe diff_flags make the ABI checker ignore the weak symbol difference\ncaused by PGO.\n\nIgnore-AOSP-First: This patch relaxes the ABI check for T only.\n                   b/232982219 tracks the long-term solution.\nTest: make libutils.vendor\nBug: 230076879\nChange-Id: I8ec2c0f5a540263b4e8a0a4f9cf26f9c297593b5\n"
    },
    {
      "commit": "e7da3eb8058c4a9689b770f75658817e54da8ab3",
      "tree": "8aa39c88c4fba34cd5a71f8ad95870d05bf91e63",
      "parents": [
        "70b6eac6cf2040cfc6249ef44f527682c8ca9c08",
        "40ce64b6dbca373beba0fd8c240397394ae03ea5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 12 03:21:16 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu May 12 03:21:16 2022 +0000"
      },
      "message": "Merge \"Doc Thread requirement.\" am: c545516e2c am: 40ce64b6db\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2094349\n\nChange-Id: I95cebb43fcd70803fe0bdece39d57546053264cb\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c545516e2c52279bfbd96f193f0e81013459a201",
      "tree": "35da7736f970c7919d590caf5f65a16419968e1a",
      "parents": [
        "a14a44ca669c0c6c2a8e9b465c3e2ddf381dd31a",
        "90722d254e45a2d33ba4879cfa76fdcf5ffd5765"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 12 01:53:32 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 12 01:53:32 2022 +0000"
      },
      "message": "Merge \"Doc Thread requirement.\""
    },
    {
      "commit": "39819bbc944506bc485af402ac205aab757b65e1",
      "tree": "c0fba7a86aa6475c6735bc5a606dfcd517eaf533",
      "parents": [
        "88da1e6d3f70c36452b70e4261bab311b983eaab",
        "ce1c33332cdbf57d8f8aaeb8f4ff1cbc1b04ff64"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 12 00:32:48 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu May 12 00:32:48 2022 +0000"
      },
      "message": "Merge \"Use the new AndroidUnwinder object.\" am: af4db6749a am: ce1c33332c\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2095264\n\nChange-Id: Icc76b39136bce395106c070aeb338d4e6922a28e\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "90722d254e45a2d33ba4879cfa76fdcf5ffd5765",
      "tree": "426e35a59f3c2caaf624c097c3d313ca58391362",
      "parents": [
        "aceda4728bf9d3dc45040eff9b3ae6194796b36a"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue May 10 22:57:49 2022 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed May 11 23:13:17 2022 +0000"
      },
      "message": "Doc Thread requirement.\n\nFixes: 230893354\nTest: N/A\nChange-Id: I426184840c7bf61fe3369388cfc6db184470acf0\n"
    },
    {
      "commit": "ab63124cd9a1a3211504f30667a0bf56d0cac6b7",
      "tree": "d24088342830cae2b1c266a3ae40d50b7e98843f",
      "parents": [
        "37a5303642a7779c80f236e54bcbb61c6419b55b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 10 16:13:02 2022 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 10 17:19:12 2022 -0700"
      },
      "message": "Use the new AndroidUnwinder object.\n\nReplaces libbacktrace in CallStack. There is one small behavioral\nchange, the BuildId data is added to the unwinds.\n\nBug: 120606663\n\nTest: All unit tests pass.\nTest: Run the fuzzer for over an hour without any crashes.\nChange-Id: Ic8a4247c515ce0d3cdc4d2cc15167d1948b15fa5\n"
    },
    {
      "commit": "5affe3efe2eb8512dcafec1b586e30344f2e2e2c",
      "tree": "ca568c818d212860159d294c599923eb22b4b904",
      "parents": [
        "6421bf87eeb3773207a53c63ba15a4817bcef762",
        "2c623bc6509fc2a22609f82eb587232d838cb3ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 28 01:15:58 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 28 01:15:58 2022 +0000"
      },
      "message": "Merge \"libutils: clearer abort on overflow.\" am: 4ba0e62970 am: 2c623bc650\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2078005\n\nChange-Id: I150014b6afda9aff751383c5b5b6ff2934ec7400\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b10bf63c9305a84347837726e25f8f1216b18406",
      "tree": "67c44ac5803501b6fd002f83fb65a73d3fe8c997",
      "parents": [
        "1a2dbd917e8b2f178915cd50c39fc670f9fca6d4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 27 13:59:49 2022 -0700"
      },
      "committer": {
        "name": "Cherrypicker Worker",
        "email": "android-build-cherrypicker-worker@google.com",
        "time": "Thu Apr 28 00:25:25 2022 +0000"
      },
      "message": "libutils: clearer abort on overflow.\n\nLet\u0027s turn a bug into a feature... Since this code is built with intsan,\nanyone who caused overflow here will have had an abort, so we know\nno-one actually needs the BAD_INDEX return that was presumably the\noriginal author\u0027s intent. So let\u0027s just mandate that, since it\u0027s a lot\nharder to ignore an abort than it is to ignore an error return.\n\nBug: http://b/179044558\nTest: treehugger\nChange-Id: I08f1018f9da1e09de885699138b7543d55bb2a36\n(cherry picked from commit a5f2e4d421fa50c5e7fe3f7dc4a98e1e97ddfc74)\nMerged-In: I08f1018f9da1e09de885699138b7543d55bb2a36\n"
    },
    {
      "commit": "a5f2e4d421fa50c5e7fe3f7dc4a98e1e97ddfc74",
      "tree": "534e950b11fe330d879039ff5eb345459cb0364f",
      "parents": [
        "ee711eda88d5789d6227e0b3693104ad171cd739"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 27 13:59:49 2022 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 27 14:29:44 2022 -0700"
      },
      "message": "libutils: clearer abort on overflow.\n\nLet\u0027s turn a bug into a feature... Since this code is built with intsan,\nanyone who caused overflow here will have had an abort, so we know\nno-one actually needs the BAD_INDEX return that was presumably the\noriginal author\u0027s intent. So let\u0027s just mandate that, since it\u0027s a lot\nharder to ignore an abort than it is to ignore an error return.\n\nBug: http://b/179044558\nTest: treehugger\nChange-Id: I08f1018f9da1e09de885699138b7543d55bb2a36\n"
    },
    {
      "commit": "6a1358236e366e82175066269588fde37b2767c3",
      "tree": "617c0c89543fdd889ee125d04357a4fbe7900cc6",
      "parents": [
        "8b344571959d403874393e51323016656042b05c",
        "83441e640e12a7b0996f5ef540dceec6f0ce7949"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 12 18:54:48 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 12 18:54:48 2022 +0000"
      },
      "message": "Merge \"Mark libutilscallstack min sdk version.\" am: f5ca027819 am: d94c71f4fb am: 83441e640e\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2061788\n\nChange-Id: I0675d8f86306e73c977b8eed9adb513d902ce684\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "6c509ca3c377c50433cacf611fb39d700e6dc806",
      "tree": "20b3a56f47066a02be4cbdc17755de5151e85497",
      "parents": [
        "086ed5584b8c6cb58f2c73a23f1df3dab5c79983"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 11 22:30:07 2022 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 11 22:30:07 2022 +0000"
      },
      "message": "Mark libutilscallstack min sdk version.\n\nMark this as 29 for easy inclusion in APEXes when debugging. Make\nsure we don\u0027t introduce calls to things here which would prevent\nthis from being used on old platforms.\n\nFixes: 228561718\nTest: build\nChange-Id: I2574455dbfe681117e4afcf6eef3546be51393fa\n"
    },
    {
      "commit": "2b393f366469bec4e2ae356a8b5e07522957f9af",
      "tree": "7daae7f4f1be297c37ff5695f1104ed3759c0cd3",
      "parents": [
        "366d2fb20b6a54a9e1d848ea0512fbf5ae10f126",
        "877cd3610451b492ef3e317bf51255e74265dfe7"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri Apr 01 01:20:50 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 01 01:20:50 2022 +0000"
      },
      "message": "Merge \"Make callback outlive LruCache.\" am: 6948bbf62c am: 9e67f9302c am: 877cd36104\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2052189\n\nChange-Id: Ibe676c9758cb914098ea775e05d8f468c0a564e2\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "e0240d3f61fdf615ff1524642e1d3f7a6cfdf152",
      "tree": "077b3ca7baf30ff0e9f486d717d44cd099db0040",
      "parents": [
        "48d403a5118bea2134f93552013e5b4d231af774"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Mar 31 20:21:12 2022 +0000"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Mar 31 20:21:28 2022 +0000"
      },
      "message": "Make callback outlive LruCache.\n\nThe callback can be called by the destructor of LruCache, so it needs to be destructed last.\n\nBug: 227635615\nChange-Id: I7d965a2000c1ec32d9c9e88d25ab0c1ba3e9c739\n"
    },
    {
      "commit": "68876679ff41b658799cf538026efc2221a3fa2e",
      "tree": "058d421418fa3833427bf18c473583e1a4f319ba",
      "parents": [
        "1644d6ddc86caf7c7a9ec1c5fcae9b5a3b637d26",
        "cd92c351b507279399cde42c09452e953e1d5759"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 30 00:52:07 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 30 00:52:07 2022 +0000"
      },
      "message": "Merge \"Tweak linux_glibc properties for musl builds in system/core\" am: ec8519e953 am: e06b7e163e am: cd92c351b5\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2044103\n\nChange-Id: I2165ce47c46d4d32a34b9b56f01ff415b09fe08b\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "ec8519e953f494561dd1e24c51cba2d8556bca58",
      "tree": "59fea0585c8fc159a34d63680994abb061b85729",
      "parents": [
        "c015f7f96db46e5c5345a5af902b3d2c9b8ee195",
        "10bbb018237b12fa78c968d447fce52593a8d07a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 30 00:09:01 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 00:09:01 2022 +0000"
      },
      "message": "Merge \"Tweak linux_glibc properties for musl builds in system/core\""
    },
    {
      "commit": "916624491db0e22804a5bc81983fe7a555ccdcfb",
      "tree": "f9b1ee1ffaa53510d6a904122e7c1c123a3de782",
      "parents": [
        "361e5a2a53105dd5aabc3f83258fe411db14edfc",
        "dd79fa2c8db118c6edcd6b62303603f6c60f3cdb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 30 00:05:56 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 30 00:05:56 2022 +0000"
      },
      "message": "Merge \"Fix build error from signed/unsigned comparison\" am: 98c7076202 am: 9f63827322 am: dd79fa2c8d\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2046028\n\nChange-Id: Ia99c768ecfa04dffc1804f4eb37c5328980f5de7\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "1a867dcb6e28956b98444209be1fa20baa41381e",
      "tree": "49f1f8ef99baaa211f5119378b9bb9965c55bc79",
      "parents": [
        "4a40c57e74f8b7b492e7eb970102959ad5061683"
      ],
      "author": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Tue Mar 29 00:30:34 2022 +0000"
      },
      "committer": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Tue Mar 29 00:30:34 2022 +0000"
      },
      "message": "Fix build error from signed/unsigned comparison\n\nBug: 224644083\nTest: m\nChange-Id: I9adbe1ea53193d8c59f9022754cd3e23533e54ad\n"
    },
    {
      "commit": "10bbb018237b12fa78c968d447fce52593a8d07a",
      "tree": "95c6af45c85e81195ad825c3f50710c44b242935",
      "parents": [
        "3d0143dc62f874deb0e31f8d635c652867ff8247"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 24 15:59:08 2022 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 24 15:59:08 2022 -0700"
      },
      "message": "Tweak linux_glibc properties for musl builds in system/core\n\nFor convenience, builds against musl libc currently use the\nlinux_glibc properties because they are almost always linux-specific\nand not glibc-specific.  In preparation for removing this hack,\ntweak the linux_glibc properties by either moving them to host_linux,\nwhich will apply to linux_glibc, linux_musl and linux_bionic, or\nby setting appropriate musl or linux_musl properties.  Properties\nthat must not be repeated while musl uses linux_musl and also still\nuses the linux_glibc properties are moved to glibc properties, which\ndon\u0027t apply to musl.  Whether these stay as glibc properties or get\nmoved back to linux_glibc later once the musl hack is removed is TBD.\n\nBug: 223257095\nTest: m checkbuild\nTest: m USE_HOST_MUSL\u003dtrue host-native\nChange-Id: I076fa026d7dddfccfa5cc395dd06bdc979eee1d8\n"
    },
    {
      "commit": "8da2dbe5345a03af75a2a1e7961676fffc455307",
      "tree": "8ec72e67c37cc94463fbd7e402f431c476b41c76",
      "parents": [
        "bb1649c190d71a685760024a85694d077a2729f5",
        "5c3f7bd328fc2a0b7c2935320c7ba5c2a26861c0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 17 06:31:05 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 17 06:31:05 2022 +0000"
      },
      "message": "Merge \"Fix TEMP_FAILURE_RETRY on non-GNU C++ dialects\" am: addba34668 am: aae9c4ec53 am: 5c3f7bd328\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2025446\n\nChange-Id: I73dae25afe75e8e26f365898685a6a17d6ff635d\n"
    },
    {
      "commit": "1727c0c6222f77cbb4b5e449fbab75ebec12829a",
      "tree": "ca4cacd000d93d9db449405595c20ac7666a3b0f",
      "parents": [
        "e6fecda6c661c6cd7ded9771b118b3536123883a",
        "4db635bb0affb6cb82c0fcc8fa49c4761bf1480b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 16 23:22:07 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 16 23:22:07 2022 +0000"
      },
      "message": "Merge changes Iee0932b5,I0d77c490 am: f8cd69af8b am: e8c3bd931b am: 4db635bb0a\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2025448\n\nChange-Id: Ic6452433dc944a8d53dc78c70815e18492f9f61b\n"
    },
    {
      "commit": "fcbc96191c555b60e5dc4e21e463588337f79ecc",
      "tree": "e9f2cfddc4e399431c7c3f3a0dacbd6fc4c2830a",
      "parents": [
        "aa4ebf2ce1c030fcbb877205d9c6bcbac4e42d97"
      ],
      "author": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Tue Mar 15 01:44:21 2022 +0000"
      },
      "committer": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Wed Mar 16 20:54:31 2022 +0000"
      },
      "message": "Fix TEMP_FAILURE_RETRY on non-GNU C++ dialects\n\nTEMP_FAILURE_RETRY uses typeof which is only allowed by gcc and clang\nfor GNU dialects. This switches to __typeof__ which is always supported.\n\nBug: 224644083\nTest: m\nChange-Id: I96d48d2f0dc5cd9ab903755d93c71c4eb80f7529\n"
    },
    {
      "commit": "aa4ebf2ce1c030fcbb877205d9c6bcbac4e42d97",
      "tree": "dc21947d7f5096c9056e3a9fe54a1ba6d0659043",
      "parents": [
        "5c15de21dab52c40342671a79ee7791d5e26feec"
      ],
      "author": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Tue Mar 15 01:51:02 2022 +0000"
      },
      "committer": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Wed Mar 16 02:15:04 2022 +0000"
      },
      "message": "Fix Errors.h on systems that define NO_ERROR\n\nSome systems (originally only Windows) define their own\nNO_ERROR macro that overlaps with the enumerator from Errors.h.\nThe enumerator is only defined if the macro was not.\n\nBug: 224644083\nTest: m\nChange-Id: Iee0932b5259b3bfcf6494656b27e6e7488319f5c\n"
    },
    {
      "commit": "5c15de21dab52c40342671a79ee7791d5e26feec",
      "tree": "183d3454b7fde53a5e8da57291309cb0087d0387",
      "parents": [
        "83785021f7892e4590dd653f1b4ed5d98476c003"
      ],
      "author": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Fri Dec 10 05:32:17 2021 +0000"
      },
      "committer": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Wed Mar 16 01:35:19 2022 +0000"
      },
      "message": "Disable call stacks on every OS except Linux/Android\n\nTo keep libutils (and consequently libbinder) as compact\nand portable as possible, this disables call stacks on all\noperating systems except Linux and Android.\n\nBug: 224644083\nTest: m\nChange-Id: I0d77c49022e852c2b8607f555174c4f9d54ed3df\n"
    },
    {
      "commit": "91de6f1de6aab9218c440a04c5b6d46fbd2906d7",
      "tree": "ff03389f9a962952ee8e8383bdf6da0e1cb09c55",
      "parents": [
        "e165fd821db9614cada546d38fb2a6a1cf54a032",
        "522182dff3e0905cbfa5701877c335ebdab91820"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Mar 14 18:10:54 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Mar 14 18:10:54 2022 +0000"
      },
      "message": "Merge \"libutils: ~RefBase more logs\" am: 83785021f7 am: 976ee88aac am: 522182dff3\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2021996\n\nChange-Id: Ia8aa98d8fa07b4994f767ce78e1d50e7f2130eba\n"
    },
    {
      "commit": "f164de8935a66522f83f8f3d2af3b6ead7cc713f",
      "tree": "af3e755620676bd7efda38c0ca13acc39b661b2e",
      "parents": [
        "927d9d1c689a94ea65367e840bee9e53296b57c2"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Mar 11 02:28:57 2022 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Mar 11 02:46:31 2022 +0000"
      },
      "message": "libutils: ~RefBase more logs\n\nThis code was a bit confusing because Android runs with an old debug\nmode on. The flag around this is removed to make it more clear what\nis going on, and the log is promoted D -\u003e W.\n\nBug: N/A\nTest: boot, check logs\nChange-Id: I4645b1a7b8e252336a6f9482ce6b57e1b907619d\n"
    },
    {
      "commit": "4c58cef88a6277f36bc5c0eba7b4ec22f2a49f8a",
      "tree": "b8af36c3f0a24ce3ee695d2c5aa008a3824050a2",
      "parents": [
        "da2d0bb4ff61034360184681f631718686585ad3",
        "84fd9f8e990a88e3706e5a0f6a16c6d3f7afcde9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 08 22:50:19 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Mar 08 22:50:19 2022 +0000"
      },
      "message": "Merge \"Adding libutils owner smoreland@ as fuzz targets owner for alerts\" am: 5520cb3309 am: bb9525cb67 am: 84fd9f8e99\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2016715\n\nChange-Id: Ib21a3e63ac6bde2f2fd6a581050eedd0b0165c8b\n"
    },
    {
      "commit": "e75dd9a1c10157827206a1165f9c862a1fabcf4c",
      "tree": "6cce588a525181669edf7ec5a047b26fff308c83",
      "parents": [
        "ca0c5c5b10b151f2b043d104f0006a338899ad39"
      ],
      "author": {
        "name": "Anis Assi",
        "email": "anisassi@google.com",
        "time": "Tue Mar 08 19:48:19 2022 +0000"
      },
      "committer": {
        "name": "Anis Assi",
        "email": "anisassi@google.com",
        "time": "Tue Mar 08 19:48:21 2022 +0000"
      },
      "message": "Adding libutils owner smoreland@ as fuzz targets owner for alerts\n\nBug: 221891733\nChange-Id: I85ff5c754fb2eb85331e84b3dbacd24844d54efc\n"
    },
    {
      "commit": "e76d8254bff069981b7cce99b32fcc6121bd6b46",
      "tree": "9195f2c002a6848d44b7af090e2126400c6aa095",
      "parents": [
        "b142fc23297fd6a0eaab3437f38b17a53918534d",
        "7826f9a7384e2a2baf20ff39a0d7e37cd68d7649"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 25 22:34:41 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 25 22:34:41 2022 +0000"
      },
      "message": "Merge \"Fix OkOrFail\u003cstatus_t\u003e conversion ambiguities\" am: 5a1f51b070 am: fb78f6f5e4 am: 7826f9a738\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/2000911\n\nChange-Id: Ia5c6fc34fe562a143d18acd89688b88e125442b2\n"
    },
    {
      "commit": "dde6034eac99789c4c23c5cd9f6419db02d9a649",
      "tree": "66f05321983f57462aef737352784c058989790b",
      "parents": [
        "075b6d725ee0b8278abce3b04801de03753e7fd6"
      ],
      "author": {
        "name": "Atneya Nair",
        "email": "atneya@google.com",
        "time": "Fri Feb 11 17:26:28 2022 -0500"
      },
      "committer": {
        "name": "Atneya Nair",
        "email": "atneya@google.com",
        "time": "Fri Feb 25 14:27:41 2022 -0500"
      },
      "message": "Fix OkOrFail\u003cstatus_t\u003e conversion ambiguities\n\nOkOrFail\u003cstatus_t\u003e has specialized conversions for Result\u003cint, StatusT\u003e\nto avoid ambiguous implicit conversion sequences. Since user conversion\noperators sequences can be followed by integral promotion, specializing\nfor integral types is necessary.\n\nSpecialize ResultError\u003cStatusT\u003e so calling code() returns a status_t\ninstead of a StatusT and message() is implemented even when not carrying\na string.\nEventually, these classes should be combined.\n\nAdd equality operators for ResultError\u003cStatusT\u003e.\n\nBug: 219580167\nTest: atest Errors_test.cpp\nMerged-In: I14acecfd2aef33c40e79ddb091e2f4af9291d837\nChange-Id: Ifb5ed3c2d3452b10901e4aeb19368d873225d9ce\n"
    },
    {
      "commit": "81f6c2ec75338de00d460c5d23e497a0dea9d292",
      "tree": "a74bd014caa8df4a992c67e5e68c7e1a68b094a2",
      "parents": [
        "7726d3dd4d904346ba99e05111e5786e66722057",
        "74402be9d1e81ef815ff17e4de8b2bc9a97fd6c1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 09 00:00:07 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 09 00:00:07 2022 +0000"
      },
      "message": "Merge \"libutils: Remove a little dead code\" am: 4a39ba316f am: 0a8e5126ef am: 9637277417 am: 74402be9d1\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/1977026\n\nChange-Id: I5fba0be1400bf89bd35692d68f2a518d486a20cb\n"
    },
    {
      "commit": "7726d3dd4d904346ba99e05111e5786e66722057",
      "tree": "a465f05c8fe3c1479a95e8efaf92e390e670feff",
      "parents": [
        "582b69a0360e68f62b3e556714a9e554dde1b9fe",
        "caa74a6549d62214362ef86e4f8e6db138a3baa2"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Feb 08 23:59:23 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 08 23:59:23 2022 +0000"
      },
      "message": "Merge \"libutils -\u003d libprocessgroup dep\" am: a0542fb15f am: 55975b7e0a am: 16149a30a3 am: caa74a6549\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/1975707\n\nChange-Id: I88506b52d099fdd120aec12dc517bd8e22b95f2e\n"
    },
    {
      "commit": "4a39ba316f775c77b69b438f42352319c64688fe",
      "tree": "813277699e6ca11b7ecc4a62baa7ac666236226c",
      "parents": [
        "a0542fb15f50020037b36e7b4c9730e0b09e8a2c",
        "044be6bceb1bfd706a550805e10d8e208ecfa903"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 08 23:12:39 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 08 23:12:39 2022 +0000"
      },
      "message": "Merge \"libutils: Remove a little dead code\""
    }
  ],
  "next": "044be6bceb1bfd706a550805e10d8e208ecfa903"
}
