)]}'
{
  "log": [
    {
      "commit": "c91c5f82f09100862cbfba54b27d24fda4b1d4b4",
      "tree": "a93365a9ca95eebd38b3c09abdfa7aba8767328d",
      "parents": [
        "558fe171c649bbdcab06dbe25673bbe217d59aee",
        "4fa49d221d73b807aa3560bfdb9c47f3854bddf5"
      ],
      "author": {
        "name": "Sharjeel Khan",
        "email": "sharjeelkhan@google.com",
        "time": "Mon Sep 01 10:59:02 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 01 10:59:02 2025 -0700"
      },
      "message": "Merge \"Fix -Wnontrivial-memcall warning\" into main"
    },
    {
      "commit": "4fa49d221d73b807aa3560bfdb9c47f3854bddf5",
      "tree": "282b549971f1509a8760ad83bd16e35bec34fc78",
      "parents": [
        "08531077b370a54afae5b19c6293739f1f2d8ab5"
      ],
      "author": {
        "name": "Sharjeel Khan",
        "email": "sharjeelkhan@google.com",
        "time": "Mon Jul 28 18:14:55 2025 +0000"
      },
      "committer": {
        "name": "Sharjeel Khan",
        "email": "sharjeelkhan@google.com",
        "time": "Tue Aug 19 18:23:47 2025 +0000"
      },
      "message": "Fix -Wnontrivial-memcall warning\n\nMemcall functions work at the byte level so they don\u0027t know about C++\nsemantics and these C++ objects might not have trivial\nconstructors or destructors. I silenced the warning by explicitly\ncasting the pointer to void* with static_cast for one case. I fixed the\nthe key_value_pair_t into a trivial type by using the default copy\nconstructor.\n\nsystem/core/libutils/include/utils/RefBase.h:728:17: note: explicitly\ncast the pointer to silence this warning\n  728 |         memmove(dest, src, n*sizeof(sp\u003cTYPE\u003e));\n      |                 ^\n      |                 (void*)\n\nsystem/core/libutils/include/utils/TypeHelpers.h:163:12: error: first\nargument in call to \u0027memcpy\u0027 is a pointer to non-trivially copyable type\n\u0027android::key_value_pair_t\u003cunsigned int, unsigned long\u003e\u0027\n[-Werror,-Wnontrivial-memcall]\n  163 |     memcpy(d,s,n*sizeof(TYPE));\n      |            ^\n\nBug: 430598176\nTest: m \u0026 presubmits\n\nChange-Id: Ia1bc978d5d4415336fd19dd971bf142bc6ceeb65\n"
    },
    {
      "commit": "79168e8fbfbbb89b1b5d3b57487fbf003824d74d",
      "tree": "fb9d385d821232ec279da53f31ae8dae0ca73bee",
      "parents": [
        "371af7b71612059fd166302920ce8e8bb1a8612e"
      ],
      "author": {
        "name": "Matthew Sedam",
        "email": "matthewsedam@google.com",
        "time": "Mon Aug 11 12:58:40 2025 -0700"
      },
      "committer": {
        "name": "Matthew Sedam",
        "email": "matthewsedam@google.com",
        "time": "Mon Aug 11 12:58:40 2025 -0700"
      },
      "message": "Revert^2 \"SharedBuffer: Use AllocatorTracker to allocate the buffer\"\n\nThis reverts commit a5b7b8a0084f1ac1199a81e2c93a865f93d1758e.\n\nReason for revert: Issue fixed\n\nBug: 414621670\nChange-Id: Ia29ab55dea78d84678fb024587916df7e790e601\n"
    },
    {
      "commit": "6e81013bd76cbdf77909c4b22746ea23caedb2e0",
      "tree": "5e496f1ed8766b8d39937157cc16c8342e0f28d8",
      "parents": [
        "496e1de6e0ab2e58cd9d2912622409c84e54b969"
      ],
      "author": {
        "name": "Kevin Jeon",
        "email": "kevinjeon@google.com",
        "time": "Tue Jul 29 19:59:55 2025 +0000"
      },
      "committer": {
        "name": "Kevin Jeon",
        "email": "kevinjeon@google.com",
        "time": "Thu Jul 31 06:47:13 2025 -0700"
      },
      "message": "Skip epoll_wait syscall when possible\n\nThis change updates Looper to skip epoll_wait if there are no FDs\nrequested (see MessageQueue.addOnFileDescriptorEventListener()) and if\nthe poll timeout is 0, which indicates that there are already messages\nto handle without another poll being needed.\n\nTest: presubmit, atest libutils_test\nBug: 410218466\nFlag: android.os.native_looper_skip_epoll_wait_for_zero_timeout\n\nChange-Id: I4737fcf5b902576fa66e4886f99bccbaedb6e5fb\n"
    },
    {
      "commit": "73131ce5598278ef304aa1a1583915f299930e77",
      "tree": "84ba961d70119e4d3b6c1eb29f8315fbfeab6065",
      "parents": [
        "1488c22d50e4636f9603a89c6d551bbf0f8453b2",
        "a5b7b8a0084f1ac1199a81e2c93a865f93d1758e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jul 29 12:47:41 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 29 12:47:41 2025 -0700"
      },
      "message": "Merge \"Revert \"SharedBuffer: Use AllocatorTracker to allocate the buffer\"\" into main"
    },
    {
      "commit": "a5b7b8a0084f1ac1199a81e2c93a865f93d1758e",
      "tree": "647b83537c7f5ac53f60000a155a6dcee4cb1fcf",
      "parents": [
        "b0a4f3257845807a2f3bcbf9be45ee0b24cc4592"
      ],
      "author": {
        "name": "Santiago Aboy Solanes",
        "email": "solanes@google.com",
        "time": "Tue Jul 29 08:09:54 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 29 08:09:54 2025 -0700"
      },
      "message": "Revert \"SharedBuffer: Use AllocatorTracker to allocate the buffer\"\n\nThis reverts commit b0a4f3257845807a2f3bcbf9be45ee0b24cc4592.\n\nReason for revert: Breaks haiku-trunk_staging-userdebug https://android-build.corp.google.com/build_explorer/build_details/13849997/haiku-trunk_staging-userdebug/\nFlag: EXEMPT fixing build brekage\nTest: Reverted locally and tested the build\n\nBug: 414621670\nChange-Id: I4ad63761c437da1d4282b36d15df5cbe65ce7795\n"
    },
    {
      "commit": "7a35e7b74bc593686745a10b51fea0caeb960393",
      "tree": "5cd925a9d351d5712656f2df48e97261b1792c9e",
      "parents": [
        "4febca949e2a8939cd7f19d4913cd406956f4545"
      ],
      "author": {
        "name": "Parth Sane",
        "email": "parthsane@google.com",
        "time": "Thu Jul 24 15:44:32 2025 +0000"
      },
      "committer": {
        "name": "Parth Sane",
        "email": "parthsane@google.com",
        "time": "Thu Jul 24 16:32:08 2025 +0000"
      },
      "message": "optimize equality comparision of String16/8\n\nThe pointer equality case is cheap and simple, and is often\nsufficient for equality.  Add it before other work.\n\nBug: N/A\nTest: atest libutils_binder_test\nFlag: EXEMPT bugfix\nChange-Id: I2590faf2667cf6f5d553bb68319abba3a2b42a33\n"
    },
    {
      "commit": "b0a4f3257845807a2f3bcbf9be45ee0b24cc4592",
      "tree": "e4db76822b3ebefb6d30777b13ce68e3d527375e",
      "parents": [
        "cec1439df805f3a608c5fa7e43a4db1756550be2"
      ],
      "author": {
        "name": "Matthew Sedam",
        "email": "matthewsedam@google.com",
        "time": "Wed Jul 16 13:27:17 2025 -0700"
      },
      "committer": {
        "name": "Matthew Sedam",
        "email": "matthewsedam@google.com",
        "time": "Fri Jul 18 11:16:08 2025 -0700"
      },
      "message": "SharedBuffer: Use AllocatorTracker to allocate the buffer\n\nThis will allow containers (like String16) that use\nSharedBuffer as the underlying storage to be used in\nembedded-friendly environments.\n\nBug: 414621670\nFlag: EXEMPT bugfix\nTest: atest libutils_binder_test\nChange-Id: I59ed268970c3638e641edaff06fc3dde9069f626\n"
    },
    {
      "commit": "cec1439df805f3a608c5fa7e43a4db1756550be2",
      "tree": "647b83537c7f5ac53f60000a155a6dcee4cb1fcf",
      "parents": [
        "975815103987250e1bb9eb1835337d13072e2529"
      ],
      "author": {
        "name": "Matthew Sedam",
        "email": "matthewsedam@google.com",
        "time": "Thu Jul 17 12:03:37 2025 -0700"
      },
      "committer": {
        "name": "Matthew Sedam",
        "email": "matthewsedam@google.com",
        "time": "Fri Jul 18 10:59:10 2025 -0700"
      },
      "message": "Support pw::Allocator in RefBase and sp\n\nThis will allow for custom allocators to be used by\ntypes implementing RefBase and using sp when the\nANDROID_UTILS_USE_PW_ALLOCATOR flag is specified.\n\nIf the allocator is not set, we will use standard\nnew/delete as we do not control where the memory is\nallocated. A user may not use sp to allocate the\nmemory, so we must use default new/delete. If the\nuser sets the global allocator, they are expected\nto use it to allocate all objects if not using sp.\n\nWe explicitly disallow allocating arrays of types\nusing these constructs. Instead, we provide a simple\nbuffer allocation macro. This reduces the number of\ncombinations we need to support.\n\nBug: 416545855\nFlag: EXEMPT bugfix\nTest: atest libutils_binder_test\nChange-Id: I1d1a81dc345d88c94b2ca70c0b04fc32d9f04647"
    },
    {
      "commit": "c4cc641e5d21d0c2eb2e41614dacac6389e10c39",
      "tree": "678c0fa874f8f1ae26eb7dff6cf900d68a4d400f",
      "parents": [
        "c0f243f1c294d3313b0fcaf0c94b480cc30a7fb2",
        "23328bc2492bba5f670069ca3dd76cc738a1378e"
      ],
      "author": {
        "name": "Jim Shargo",
        "email": "jshargo@google.com",
        "time": "Thu May 08 14:19:35 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 08 14:19:35 2025 -0700"
      },
      "message": "Merge \"LruCache: add a \"contains\" method\" into main"
    },
    {
      "commit": "23328bc2492bba5f670069ca3dd76cc738a1378e",
      "tree": "a63fae351927cb0cac1814fcf34e4c9387684d9e",
      "parents": [
        "d02ff3783c33b1e1a8fb8ae4093a5c56334cdf58"
      ],
      "author": {
        "name": "Jim Shargo",
        "email": "jshargo@google.com",
        "time": "Thu May 08 18:41:42 2025 +0000"
      },
      "committer": {
        "name": "Jim Shargo",
        "email": "jshargo@google.com",
        "time": "Thu May 08 19:04:39 2025 +0000"
      },
      "message": "LruCache: add a \"contains\" method\n\nAdds a contains(TKey) method to the LruCache so that users of the class\ncan see if they\u0027d previously added an entry.\n\nThis was previously accomplisehd by \"get\", but for classes whose null\nvalue is a valid key (such as ints) this is insufficient.\n\nBug: n/a\nFlag: EXEMPT small new function\nTest: new tests\nChange-Id: I57c51dfe56819ef98e17d05187cff70afb6f8bf6\n"
    },
    {
      "commit": "c56ee917ed3666edba296bb82a82ab6c9d7b1e42",
      "tree": "b741b8bf56887a088fee1a4005e63748fd7532fb",
      "parents": [
        "ef66562fc1afaff36714a3da19e971c59ff39ca1",
        "1d34d4b1abb17494957961671c7197f77db20401"
      ],
      "author": {
        "name": "Liana Kazanova (xWF)",
        "email": "lkazanova@google.com",
        "time": "Wed May 07 14:12:55 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 07 14:12:55 2025 -0700"
      },
      "message": "Merge \"Revert \"~sp\u003c\u003e, m_ptr \u003d 17\"\" into main"
    },
    {
      "commit": "1d34d4b1abb17494957961671c7197f77db20401",
      "tree": "b6a8d7d344818d600feb16a096ee7b46232812b4",
      "parents": [
        "12607d8f3cbecc1f0280dcf4d21a0647e8c77436"
      ],
      "author": {
        "name": "Liana Kazanova (xWF)",
        "email": "lkazanova@google.com",
        "time": "Wed May 07 11:48:32 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 07 11:48:32 2025 -0700"
      },
      "message": "Revert \"~sp\u003c\u003e, m_ptr \u003d 17\"\n\nThis reverts commit 12607d8f3cbecc1f0280dcf4d21a0647e8c77436.\n\nReason for revert:DroidMonitor: Potential culprit for http://b/416132249 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.\n\nBug: 416132249\nBug: 410582335\nBug: 393013610\nBug: 405737267\nChange-Id: I7a2ce05e1e22bf73a29ae47c32d1e3327af411bd\n"
    },
    {
      "commit": "93a9ea08c937dcbcd5de050b7919fe33e7c022be",
      "tree": "efaaac66eb9ceedd1adc4f90bfedaa60c3300e31",
      "parents": [
        "f23594035e5cf1ad20052a237dd7de8cb854fc83",
        "12607d8f3cbecc1f0280dcf4d21a0647e8c77436"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue May 06 15:15:41 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 06 15:15:41 2025 -0700"
      },
      "message": "Merge \"~sp\u003c\u003e, m_ptr \u003d 17\" into main"
    },
    {
      "commit": "12607d8f3cbecc1f0280dcf4d21a0647e8c77436",
      "tree": "367b9d1621fd92175d39eb2682b5de1faa46e1c5",
      "parents": [
        "9ccbab0d6d7f2931d24e6ef4c58426ff0f3111e3"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 18 20:48:56 2025 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue May 06 15:15:03 2025 -0700"
      },
      "message": "~sp\u003c\u003e, m_ptr \u003d 17\n\nDetect double-free (e.g. two threads deleting sp\u003c\u003e) and detect\nODR of sp\u003c\u003e symbol.\n\nThis ignores cases where the pointer is null, as it creates too much\nnoise, but we should fix these cases as well for clarity.\n\nTest: add ODR sp\u003c\u003e issue and see\n        04-18 21:18:45.164  2911  2911 F DEBUG   : signal 11 (SIGSEGV), code\n    1 (SEGV_MAPERR), fault addr 0x0000000000000017\n\nBug: 410582335\nBug: 393013610\nBug: 405737267\nChange-Id: I60c40a8483933f54818c973a49ed6261ec77165f\n"
    },
    {
      "commit": "6b065e7db291b3ec1231398b01b04e38a0157508",
      "tree": "bea6fd83c3e1a2382f3ab7afe29302efafe9dcc1",
      "parents": [
        "d436c6a1b4d3dfa2fe222747b8d63ce99404bb5c"
      ],
      "author": {
        "name": "Abdelrahman Daim",
        "email": "adaim@meta.com",
        "time": "Mon Apr 28 07:07:06 2025 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue May 06 00:48:42 2025 +0000"
      },
      "message": "RefBase: add counter sanity checks for incStrong / incWeak\n\nSummary: If there\u0027s a severe leak of RefBase objects like `AIBinder*`, catch the issue on\nincrementing ref counters in addition to decrementing. This will prevent\ncases when a leak happens in one place where it always increments the\ncounter, and then all of a sudden in different place someone releases a\nreference will result in crash.\n\nTest: Manually verified that if AIBinder significantly leaks ref counter, the process will crash\nand the call stack will clearly indicate leaking source, with the following abort message:\n\n```\nAbort message: incWeak called on 0x7e033207c0 too many times, weak refs \u003d 1048576\n```\n\nChange-Id: I1b58d5b851ef0e6abfbedc7f710ce49215bb2def\nSigned-off-by: Abdelrahman Daim \u003cadaim@meta.com\u003e\n"
    },
    {
      "commit": "c6045544b289ff05561518189c4716517c05c2c0",
      "tree": "059e91a624741a37e23a6c74b5e1d17d0091812b",
      "parents": [
        "558b954392f3627ee07469002d16c8d023289a85",
        "ca68e181d0d6f9e363df04af1664675317b4bc97"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Apr 28 16:53:10 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 28 16:53:10 2025 -0700"
      },
      "message": "Merge \"Revert \"Don\u0027t call epoll_wait with zero timeout unless watching FDs\"\" into main"
    },
    {
      "commit": "ca68e181d0d6f9e363df04af1664675317b4bc97",
      "tree": "2a8d7a770e38f44417500e7d5ceb6e9f614399e6",
      "parents": [
        "ea469023ff0611e8914c16ae4f783d0b3e64daee"
      ],
      "author": {
        "name": "Shai Barack",
        "email": "shayba@google.com",
        "time": "Mon Apr 28 15:43:06 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 28 15:43:06 2025 -0700"
      },
      "message": "Revert \"Don\u0027t call epoll_wait with zero timeout unless watching FDs\"\n\nThis reverts commit ea469023ff0611e8914c16ae4f783d0b3e64daee.\n\nReason for revert: b/410218466#comment9\n\nBug: 410218466\nChange-Id: Ic8fb29334830cb6a12904f087ab1e2b1e7ac6fdb\n"
    },
    {
      "commit": "558b954392f3627ee07469002d16c8d023289a85",
      "tree": "5d0c10b1b5cf25aa8263e3cd41905dfdcbd99e23",
      "parents": [
        "682a1c13ead81adc39569788644843e3918401ba",
        "ea469023ff0611e8914c16ae4f783d0b3e64daee"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Apr 28 13:33:47 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 28 13:33:47 2025 -0700"
      },
      "message": "Merge \"Don\u0027t call epoll_wait with zero timeout unless watching FDs\" into main"
    },
    {
      "commit": "ea469023ff0611e8914c16ae4f783d0b3e64daee",
      "tree": "0e596bbe66b363904a7e815af7eba3fa337317ec",
      "parents": [
        "6ec659d3055953685e853dc2f524a46adb4f9002"
      ],
      "author": {
        "name": "Shai Barack",
        "email": "shayba@google.com",
        "time": "Mon Apr 28 09:23:54 2025 -0700"
      },
      "committer": {
        "name": "Shai Barack",
        "email": "shayba@google.com",
        "time": "Mon Apr 28 09:23:54 2025 -0700"
      },
      "message": "Don\u0027t call epoll_wait with zero timeout unless watching FDs\n\nBug: 410218466\nFlag: EXEMPT b/411722849\nTest: Looper_test (passes existing tests)\nChange-Id: I3972c05c700e8b8e35479e97f39ee5b70b13e7c0\n"
    },
    {
      "commit": "0dc78a466f494a0cdca5365bb33f888aac65213b",
      "tree": "1de3752346129c85ac52f6986a14d1abe0a1e97d",
      "parents": [
        "ee463dbef70e26b8591d90d2e7040db812c1427d",
        "8600a501a034513926d5eaee28d956e7c4db982e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Apr 21 15:24:46 2025 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 21 15:24:46 2025 -0700"
      },
      "message": "Merge \"libutils: Singleton: no destroy mutex\" into main"
    },
    {
      "commit": "8600a501a034513926d5eaee28d956e7c4db982e",
      "tree": "eb802230fded2097dbda8af64dc103a6ab831c17",
      "parents": [
        "9ccbab0d6d7f2931d24e6ef4c58426ff0f3111e3"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 21 20:05:09 2025 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 21 20:05:09 2025 +0000"
      },
      "message": "libutils: Singleton: no destroy mutex\n\nFor -Wexit-time-destructors, saves space+memory.\n\nBug: 411725417\nTest: N/A\nChange-Id: I6cbec0dab775441615c1bc2f2a7037526a68677a\n"
    },
    {
      "commit": "d3bba9480e37bc551d81ec951761b31ca96e5e6c",
      "tree": "c828f60e1e1e265f185b8d2663e1a440cd8db668",
      "parents": [
        "1fc1431752b2107634c3422073fd0fe0a7abc8be"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Tue Apr 15 10:57:43 2025 -0700"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Tue Apr 15 10:57:43 2025 -0700"
      },
      "message": "Use relaxed atomic instead of volatile for racy boolean.\n\nThis compiles to the same code in practice, but won\u0027t invoke undefined\nbehavior.\n\nChange-Id: I58bb1d51a48d5c3e9029e0834882d666b214bebe\n"
    },
    {
      "commit": "f33b1b5e2ad09bdccc542f0d43e841fda8bba4b0",
      "tree": "0c84da750c00a59704883062e69b222734332c5e",
      "parents": [
        "d4500c4ba2a556bfba6eab9efb281cd89003efdc"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 08 22:47:38 2025 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 08 22:49:33 2025 +0000"
      },
      "message": "VectorImpl: print size on failure.\n\nBug: 385993122\nTest: N/A\nChange-Id: I80ae32f97c022664fab288a8278f979c89b635d0\n"
    },
    {
      "commit": "d217d8dc16a07eea8e3e2e8107ac7b1ca9203100",
      "tree": "1c545e128da805495d8bd33418b30f5485905838",
      "parents": [
        "66fbbcc12cc32c9c7d2789d31c7326e658fccd5e",
        "d435894e9f6b6ef876e51eef07761d27eff98fd7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Feb 19 21:02:08 2025 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 19 21:02:08 2025 -0800"
      },
      "message": "Merge \"RefBase: document 0 strong count, wp\u003c\u003e::promote\" into main"
    },
    {
      "commit": "d435894e9f6b6ef876e51eef07761d27eff98fd7",
      "tree": "19a081112000462e742a4ee02b5ff6e561604dab",
      "parents": [
        "364d5dfb9bacec7d5d600082f91b6f58451dd661"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Feb 15 00:45:21 2025 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Feb 15 00:49:34 2025 +0000"
      },
      "message": "RefBase: document 0 strong count, wp\u003c\u003e::promote\n\nExplanation within. This shows the errorprone behavior\nof the implicit wp\u003c\u003e constructor and justifies why we\nrecommend wp\u003c\u003e::fromExisting.\n\nBug: 393013610\nTest: libutils_binder_test\nChange-Id: I323b2902f0ae58da8512bdbc80377b5c5865294d\n"
    },
    {
      "commit": "17ffb458fbb42f20922d08d46c14351e0260f2be",
      "tree": "bd30df2e03fa081f7796162f5f79aa91daf111b5",
      "parents": [
        "364d5dfb9bacec7d5d600082f91b6f58451dd661"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 03 20:46:11 2025 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 03 20:47:19 2025 +0000"
      },
      "message": "RefBase: better hints for debugging\n\nRecommendation to enable best-practice compiler flags when seeing errors\nthat show memory is not handled correctly. Oftentimes, implicit\nassignment of refcounts on these objects is the cause of these failures.\n\nBug: 393013610\nTest: N/A\nChange-Id: I6c6ef13a0ac11884e02d608dedc7bb6892c3a583\n"
    },
    {
      "commit": "3cf4bff967605efd4f5b9936f8643d8ac3c1d43b",
      "tree": "be4eb81b27413ba01addf6b5618ca1ad04a038e7",
      "parents": [
        "27f1b1f7ab7db16eae1a04aa13ff0ee56b98728d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 10:23:27 2025 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 10:23:27 2025 -0800"
      },
      "message": "\u003cstring_view\u003e is always available.\n\nChange-Id: I1e2cc66ffc5a6cd354986bd653d0046e990b721f\n"
    },
    {
      "commit": "27f1b1f7ab7db16eae1a04aa13ff0ee56b98728d",
      "tree": "11ac12de4ea66059a1299408832c1c2338f19459",
      "parents": [
        "906f29ee597c94406fbfc95d1fe868bf122bd6d1",
        "84e315c6745ccf3ab8b88e2fb5c895390209710d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 10:16:59 2025 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 24 10:16:59 2025 -0800"
      },
      "message": "Merge \"\u003cstring_view\u003e is always available.\" into main"
    },
    {
      "commit": "20acaada1ad32506a9758740bf84433472da0bc8",
      "tree": "2eb743ecdb9d066575a4a658a731b2674d190ab2",
      "parents": [
        "5632c8ba434c5e4be37e6079b0858ff4abbad4f9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 06:53:25 2025 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 06:53:25 2025 -0800"
      },
      "message": "\u003cstring\u003e is always available.\n\nChange-Id: Ib4bde5521c1e02b7d90b85548b7ed4479c7d8d0d\n"
    },
    {
      "commit": "84e315c6745ccf3ab8b88e2fb5c895390209710d",
      "tree": "3eae3dbd8f49ab335ac1b0e434da9b525369230f",
      "parents": [
        "5632c8ba434c5e4be37e6079b0858ff4abbad4f9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 06:52:05 2025 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 06:52:05 2025 -0800"
      },
      "message": "\u003cstring_view\u003e is always available.\n\nChange-Id: I68e86a67487bc9473dbcd6f7d87509c5621ab52b\n"
    },
    {
      "commit": "940f0755af05d87f82a3ec10046eadfca9f317a7",
      "tree": "44b0b64d702294c5837005ccf676f52866f29079",
      "parents": [
        "cf2c32dabb67a9c8ad3d2ec6e5775e8d19310336"
      ],
      "author": {
        "name": "Atneya Nair",
        "email": "atneya@google.com",
        "time": "Wed Jan 22 21:51:18 2025 -0800"
      },
      "committer": {
        "name": "Atneya Nair",
        "email": "atneya@google.com",
        "time": "Wed Jan 22 21:51:18 2025 -0800"
      },
      "message": "[String8] Add string_view ctor\n\nFor convenience add a std::string_view ctor to String8.\n\nThis allows for easy std::string to String8 conversion.\n\nTest: compiles\nTest: atest libutils_binder_test\nBug: none\nFlag: EXEMPT trivial\nChange-Id: I188362e4045891e1a68ea433a47e08d27490f473\n"
    },
    {
      "commit": "27dd6f8e62fc587fe7e4c298501ea43888a59914",
      "tree": "7bd465c1d4215008c8f1d713683004636072e0d7",
      "parents": [
        "71ebf1a20d0b100a8cc8f947186b368b0c3090d2"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Nov 26 23:44:17 2024 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Nov 26 23:44:17 2024 +0000"
      },
      "message": "libutils OWNERS for shayba@\n\nFor Looper work, but not scoped down to this\nunless you want it to be.\n\nBug: N/A\nTest: N/A\nChange-Id: I14bf8d21af357ef7b9151cca49b0cf40dde0e3ca\n"
    },
    {
      "commit": "a190ecb6f16b025a9c0c82f4c15ef5f759cd7e97",
      "tree": "32d2998080df8cdedc1360a950fb7fde94bc51ff",
      "parents": [
        "097b607ac6855b6c81ef4495c3738ba5e2f2c9db"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Oct 21 23:01:56 2024 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Oct 21 23:18:50 2024 +0000"
      },
      "message": "RefBase: document leak memory case\n\nWe should fix the leak, but it introduces the possibility\nthat something is use this. Instead, document best practice\n(not to allocate RefBase objects on the stack).\n\nFixes: 295340906\nTest: N/A\nChange-Id: Ife7a561f790dc687fb99b73729818e61834fa272\n"
    },
    {
      "commit": "e0ec952bae15d296006de86b80782551c144afa4",
      "tree": "f82b34c0dc8ee4ec79f70d83dffc45bb4ab79e94",
      "parents": [
        "7cc50a8c2959d31817e06974ae8d6563160ef338"
      ],
      "author": {
        "name": "Shai Barack",
        "email": "shayba@google.com",
        "time": "Mon Oct 07 15:25:28 2024 +0000"
      },
      "committer": {
        "name": "Shai Barack",
        "email": "shayba@google.com",
        "time": "Tue Oct 08 08:36:03 2024 +0000"
      },
      "message": "Avoid unnecessary allocation in VectorImpl\n\nWhen shrinking a vector, we might reallocate the buffer\nif the current capacity is too large, or we might reuse\nthe existing buffer.\nNever reallocate the buffer if the current capacity is\nalready at the minimum (i.e. we won\u0027t actually shrink by\nreallocating).\n\nBug: 370649413\nChange-Id: I665037ed2a8621a82f2b58bcc834934de0761f34\nFlag: EXEMPT bugfix\nTested: see b/370649413#comment6\n"
    },
    {
      "commit": "1ec5290872b1bd120e44ebffddd47b2a62bc90d1",
      "tree": "dd92764c2331f048cffa40906474358c2b3edf05",
      "parents": [
        "65daca3b88d5c21ffbbe446ee067edfc010ba614"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Sep 26 12:59:37 2024 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Sep 26 12:59:37 2024 -0700"
      },
      "message": "Remove unnecessary getpriority() system call\n\nThis was introduced for a valid reason in aosp/1224543, but that reason\nwas later removed. This code wasn\u0027t.\n\nIt is not worth making a system call in order to possibly avoid a second\none, which I expect is no more expensive in that, particularly easy,\ncase.\n\nTest: Treehugger\nChange-Id: I346f9b641c6feb791247b16fb900a4ad97e646d2\n"
    },
    {
      "commit": "7d9c9af9467da2848923a8e45a84b00ca4625a25",
      "tree": "9f0e8152cd4a6bd96c75ffad6c543c92c69d2b23",
      "parents": [
        "511a1733ece9ae19b5b5a3d0477151fa6447bdb8"
      ],
      "author": {
        "name": "Paul Ramirez",
        "email": "peramirez@google.com",
        "time": "Mon Sep 16 20:44:57 2024 +0000"
      },
      "committer": {
        "name": "Paul Ramirez",
        "email": "peramirez@google.com",
        "time": "Tue Sep 17 17:40:11 2024 +0000"
      },
      "message": "Add getFdStateDebug to access Looper\u0027s callbacks\n\nAdded getFdStateDebug to access Looper\u0027s internal state.\n\nFlag: EXEMPT testing\nTest: TEST\u003dlibutils_test; m $TEST \u0026\u0026 $ANDROID_HOST_OUT/nativetest64/$TEST/$TEST --gtest_filter\u003d\"LooperTest.getFdStateDebug*\"\nChange-Id: I253ed4a6fa1040053117dcea3be80e55eef9a9b0\n"
    },
    {
      "commit": "be2cc9f93077ad024aa2aee31dd9ad5fa5873ecc",
      "tree": "14b5c10a7b5912491b77d57cd6ebc3c84448a41f",
      "parents": [
        "f62078fa17f09f2ec705a9b437417b7444bdda1c"
      ],
      "author": {
        "name": "Aditya Kumar",
        "email": "appujee@google.com",
        "time": "Thu Sep 05 14:03:59 2024 -0700"
      },
      "committer": {
        "name": "Aditya Kumar",
        "email": "appujee@google.com",
        "time": "Fri Sep 06 15:33:08 2024 -0700"
      },
      "message": "Fix type of android_thread_func typedef\n\nFound the error with latest clang: https://android-build.corp.google.com/artifact/pending/P80448506/art-host-x86_64/latest/view/logs%2Fbuild_error.log\n\n```\nout/soong/.intermediates/system/core/libutils/libutils/linux_glibc_x86_64_static/obj/system/core/libutils/Threads.o system/core/libutils/Threads.cpp\nsystem/core/libutils/Threads.cpp:149:21: error: cast from \u0027android_thread_func_t\u0027 (aka \u0027int (*)(void *)\u0027) to \u0027android_pthread_entry\u0027 (aka \u0027void *(*)(void *)\u0027) converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]\n  149 |                     (android_pthread_entry)entryFunction, userData);\n      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n1 error generated.\n```\n\nChange-Id: Ie2423a568483c975a36a1fa0b06a3f93a27be5aa\n"
    },
    {
      "commit": "b654f2c287fd6504da2b46317c919b100842a96c",
      "tree": "15bdabcd7864180d47130317e255cd5dec2c2e43",
      "parents": [
        "2ed904d8ea374a9d70733fbaa40811c0c96e6f6f"
      ],
      "author": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Wed Jul 31 15:52:09 2024 +0000"
      },
      "committer": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Wed Jul 31 15:52:09 2024 +0000"
      },
      "message": "Remove Windows-specific code from Trace.h\n\nlibcutils builds for Windows, so there is no need to handle Windows\ndifferently in Trace.h.\n    \nBug: 322360037\nTest: build libutils for Windows\n\nChange-Id: If17de95a2222c7d17c74988695d68754f06957ea\n"
    },
    {
      "commit": "ab772110c74ec77e59c593fe7e3b3836fbdd164d",
      "tree": "3eb00dd3b50eff4092a52451dd2e2e859ed03add",
      "parents": [
        "9418c6712c65c7fdc49b425ded8675f0abd40825"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 01 13:21:36 2024 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 01 13:21:36 2024 +0000"
      },
      "message": "Insulate against log spam.\n\nWe may as well check the entire log. The previous bump seems to have made this test less flaky, so why not go all the way?\n\nChange-Id: I26b7524731ec755b724b9363fc9151f6a6d9116d\n"
    },
    {
      "commit": "d41c0f4a9e6e8178f5b8f46fe3b9a4530efc113a",
      "tree": "8c3e35a701af81036f9882fdee3f13caed4b0d7f",
      "parents": [
        "2d4d60cccb705f0ce86da6075aa3606857fa9737"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Jun 25 10:34:23 2024 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Jun 28 12:46:11 2024 -0700"
      },
      "message": "Migrate pthread to std::thread\n\nBug: 341997808\nTest: atest --host libutils_test\nChange-Id: I4f435d5d85efcbcc351b7620811c172badc2276d\n"
    },
    {
      "commit": "47fde793b111aecdb34edba598b5697ba9c4701c",
      "tree": "d077d19f6d53b0c2ad5dfea6264ec81928ac0556",
      "parents": [
        "b2bd7ae863131f0853c135022cc8b9139eea9172"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jun 26 17:50:14 2024 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jun 26 17:52:47 2024 +0000"
      },
      "message": "libutils: CallStackTest log_stack check more log\n\nCheck last 10,000 instead of last 1,000 log entries.\n\nFixes: 348793356\nTest: presubmit\n\nChange-Id: I08c660ddd7e49466a4b55d96e46a402ee8912a24\n"
    },
    {
      "commit": "6f13d115eb0191e240364b70e59186777c8683fd",
      "tree": "605921c4783bf634e413ab8afd3969e7d1969bc2",
      "parents": [
        "1fd7993f85bdf304bc53ca562b8c79a2142daa08"
      ],
      "author": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Fri Jun 21 21:27:32 2024 +0000"
      },
      "committer": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Mon Jun 24 20:18:55 2024 +0000"
      },
      "message": "libutils: Remove unused dependency on libprocessgroup_headers\n\nBug: 349105928\nTest: m\nChange-Id: Ic3e64b073c0ba087c3db19fb428c8c9132c8211f\n"
    },
    {
      "commit": "8bc0ee30bf815380cb9163b8c73641b79ca9d3c5",
      "tree": "74490a6c6d73b1d64699cf9a84acc4e57a2f6f6a",
      "parents": [
        "4c5b2303b9f01cdb2724c99550a492865bb3531b",
        "c4db546a218dc3fa88d86fc03d3139549b293908"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Tue Jun 11 23:08:56 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 11 23:08:56 2024 +0000"
      },
      "message": "Merge \"Add libz to static libs of libutils_test\" into main"
    },
    {
      "commit": "50095020dbd95b94e21ac87afb6b9c977d718882",
      "tree": "2645193a37d7238763359109948363fa2daab5be",
      "parents": [
        "e028a195d0ca82215b2971d52d4093a676d45395",
        "0a2a015e39db778eca620e970472728b4897d41b"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue May 28 20:13:03 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 28 20:13:03 2024 +0000"
      },
      "message": "Merge \"Fix libutils_binder_sdk build warnings\" into main"
    },
    {
      "commit": "e028a195d0ca82215b2971d52d4093a676d45395",
      "tree": "b14fd9fffa78dc31f189fbf9de0d856da4c534a3",
      "parents": [
        "82bc07f911466acf7177d866b3f8c514778c04dd",
        "7badb51d228c760bb9203f34f2e577c93e9078d2"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue May 28 20:11:34 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 28 20:11:34 2024 +0000"
      },
      "message": "Merge \"Mark libutils_binder_sdk as snapshot supported\" into main"
    },
    {
      "commit": "0a2a015e39db778eca620e970472728b4897d41b",
      "tree": "ca75611b60eafb87459d586f915d567ce3fead98",
      "parents": [
        "7badb51d228c760bb9203f34f2e577c93e9078d2"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Apr 30 10:47:35 2024 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue May 28 09:51:20 2024 -0700"
      },
      "message": "Fix libutils_binder_sdk build warnings\n\n-Wclass-memaccess\n-Winvalid-offsetof\n-Wsequence-point\n-Wzero-as-null-pointer-constant (turned on in ag/4503295)\n\nBug: 285204695\nTest: m libutils_binder_sdk\nChange-Id: I5b988f498cb8e0cf04617a4f7fd41ba9970d321d\n"
    },
    {
      "commit": "7badb51d228c760bb9203f34f2e577c93e9078d2",
      "tree": "49b79d36fe69ecc49b5e4db082ac1a8372be3b49",
      "parents": [
        "cc6eaae72517c3d3e555fe313983fae3675908ed"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Wed May 08 16:21:18 2024 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue May 28 09:49:49 2024 -0700"
      },
      "message": "Mark libutils_binder_sdk as snapshot supported\n\nBug: 302718225\nTest: https://r.android.com/2803466\nChange-Id: I3a26e1c4c63e0ed6de896ef31eb56f3a3a6bba01\n"
    },
    {
      "commit": "110308e5ab096a720c44b9d01d0ffe2535bb4b28",
      "tree": "1d2b2dcb60d737bf8a0ed2bed2bae9a3bc6b4e3d",
      "parents": [
        "ba1e0bdd6ce524a2c89e7b53bfb1f873afd59b9f",
        "ad8cf52c4c2b60250d52f1b0b90648fdf407dff4"
      ],
      "author": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Thu May 23 00:38:19 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 23 00:38:19 2024 +0000"
      },
      "message": "Merge \"Remove VNDK definition(s)\" into main"
    },
    {
      "commit": "f01048743ab300595c265a74ec31858f0cc59267",
      "tree": "9809452fcd748112c8df9783a6d6df7a558a4de6",
      "parents": [
        "53748d08e595066fc138b97051032799d7af7124"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri May 10 01:37:09 2024 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed May 15 17:34:57 2024 -0700"
      },
      "message": "Define String8 and String16 operator\u003c\u003d\u003e\n\nPreviously, in C++20 mode, using \u003c\u003d\u003e on String8 or String16 would\ncompare the pointer values from the implicit conversion operators\nreturning const char* and const char16_t*. Instead, compare the string\ncontent. This is especially a problem with STL containers that prefer\n\u003c\u003d\u003e when it is available.\n\nSee https://godbolt.org/z/cc1hW17h3 for a demo of the problem.\n\nBug: 339775405\nTest: treehugger\nChange-Id: I5ee6af96dee0c9968a1bab1ad96729e45bb1ac50\n"
    },
    {
      "commit": "cd3ffd1f2cb91303c6a8caed1429d1fd210de2d7",
      "tree": "271bb4eb0b26a2f0bbf52ca61bd70fdc03f8b03c",
      "parents": [
        "6f7e39526c956e679ea37758ee6efc9ece2edb6a",
        "38d36e44927d56f45042fb5e11a342a3a7dd5daa"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 26 23:06:22 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 26 23:06:22 2024 +0000"
      },
      "message": "Merge \"libutils: T* is a trivial type\" into main"
    },
    {
      "commit": "38d36e44927d56f45042fb5e11a342a3a7dd5daa",
      "tree": "e0b724b4e54aee315c1393fc079f4f95176b98b2",
      "parents": [
        "6d6ff398b337561eb44b944f5b5c08ff388517af"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 26 21:08:48 2024 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 26 21:08:48 2024 +0000"
      },
      "message": "libutils: T* is a trivial type\n\nAvoid calling constructors/destructors for\neach element, when we have Vector\u003cT*\u003e. These\nare used in libbinder and elsewhere.\n\nstd::vector is still faster but uses more mem.\n\nBugs: me\nTest: boot \u0026\u0026 binderLibTest\nChange-Id: Id1239daddd018f8eee5480d1cb6dd25d6f4df808\n"
    },
    {
      "commit": "541f850372064958bb956c5290216e5931fb5912",
      "tree": "d43b089420fac4ce227ab370214f4fe46339581b",
      "parents": [
        "793679f47a23c2f8c8e7354d2bb728a9a673b590"
      ],
      "author": {
        "name": "Akshata Kadam",
        "email": "akshata.jadhav@ittiam.com",
        "time": "Thu Apr 11 14:26:17 2024 +0530"
      },
      "committer": {
        "name": "Akshata Kadam",
        "email": "akshata.jadhav@ittiam.com",
        "time": "Thu Apr 11 14:31:25 2024 +0530"
      },
      "message": "Updated fuzz_config in Android.bp file\n\nAdded new fields in fuzz_config like - componentid,\ndescription, vector, service_privilege, users, fuzzed_code_usage, etc.\n\nBug: 306435930\nTest: Build libutils_fuzz_callstack\n\nChange-Id: I826d75ab01eb0a4d2b363681d4f5a3a4578bbc99\n"
    },
    {
      "commit": "bcaeacc6862be57f72ba1c51427214136c2e06df",
      "tree": "bc0109c23b6a451b978680361c68d912602c6fc1",
      "parents": [
        "bc3476d5dc6fed6fe8401144df5486fa7174ecd2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 27 16:17:50 2024 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 27 17:49:51 2024 -0700"
      },
      "message": "Enable weak functions properly.\n\nThere is a check for WEAKS_AVAILABLE that is never set. Change this so\nso it is available everywhere except apple/windows.\n\nAdd new test to verify that on Android the logStackInternal function is\ndefined.\n\nBug: 331489939\n\nTest: All unit tests pass.\nChange-Id: Ie982eba30ae421931a62718d39ff1f0c282453db\n"
    },
    {
      "commit": "ad8cf52c4c2b60250d52f1b0b90648fdf407dff4",
      "tree": "d0c9557f0c68831d2a8c8546a0c87b3888ddf12f",
      "parents": [
        "b2bfb972e8c612356abe319c9b6109dccc2e03ed"
      ],
      "author": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Mon Mar 11 13:04:38 2024 +0900"
      },
      "committer": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Fri Mar 15 08:19:44 2024 +0000"
      },
      "message": "Remove VNDK definition(s)\n\nAs of VNDK deprecation, any libraries that defines vndk is no longer\nvalid anymore. This change removes all VNDK definition(s) from modules\nwhich was VNDK. Any former VNDK-SP libraries will be marked as double-loadable,\nso it can keep be able to be referenced by LLNDK libraries.\n\nBug: 328994089\nTest: AOSP CF build succeeded\nChange-Id: I1662f16e5e446bb28167b0bb278cd63997267d2a\n"
    },
    {
      "commit": "fdc642643d25a4d67e5a04ae8ad4b0528a8c3835",
      "tree": "ab367cde5d80b48f775c02019aec85d1a40f9858",
      "parents": [
        "df09f80cf43981ef0d96826ee5b879864029184c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 23 00:46:16 2024 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 23 00:46:16 2024 +0000"
      },
      "message": "Reduce \u003cCallStack.h\u003e namespace pollution.\n\nUse the CALLSTACK_ prefix uniformly, and undefine all the macros\nat the end of the file.\n\nChange-Id: Ie5f92bb8cb8b3753082b1c1145696a1e0409e04d\n"
    },
    {
      "commit": "071880f5cbc2a051f99cd61226f4b63ebcb6997d",
      "tree": "5f93cbe98ed9fa332263355ee61a4a6c9a959050",
      "parents": [
        "7cf49320ba53f2954a00409c264ccdca2a7b728b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 21 17:56:48 2024 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 21 21:34:22 2024 -0800"
      },
      "message": "RefBase: update sp and wp to allow constinit\n\nA constexpr ctor is useful for static initialization.\nWe also modernize the unit test for static variable best practices.\n\nTest: atest libutils_binder_test\nChange-Id: If42c0939fb1a2dcb8eb101ed0e10051f67e2150d\n"
    },
    {
      "commit": "593b19b5ce1831ef1dbec6a556e62e903394a1db",
      "tree": "f0607b36efc79dcc90473a8f81653f02cfa5b22c",
      "parents": [
        "66dc1bde80367080cdef37ded67ffa303807e4ae"
      ],
      "author": {
        "name": "Serdar Kocdemir",
        "email": "kocdemir@google.com",
        "time": "Wed Feb 14 13:53:13 2024 +0000"
      },
      "committer": {
        "name": "Serdar Kocdemir",
        "email": "kocdemir@google.com",
        "time": "Wed Feb 14 17:52:19 2024 +0000"
      },
      "message": "Check if ALWAYS_INLINE is already defined\n\nFixes build errors when using callstack library in gfxstream\nproject, where the definition is already made.\n\nTest: build\nChange-Id: I80d4038160725b5dc70f9af93d338aca66a2f0d5\n"
    },
    {
      "commit": "29cd07132da2f5182a0d8ee1327c7175efbf019d",
      "tree": "19864ce7e1af94d7e295f4642b4b949abd66d9ad",
      "parents": [
        "c72c9a6d3c460d10fd5f9dfcd537daab261df168"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 09 16:40:02 2024 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 09 16:40:02 2024 +0000"
      },
      "message": "Remove obsolete __STDC_LIMIT_MACROS references.\n\nNone of our libcs need this any more.\n\nTest: treehugger\nChange-Id: I8a942ad6b3860633a6d722bd237a7c75482499eb\n"
    },
    {
      "commit": "6225d6f3eb5204d39d88c093778b41ca326e81d3",
      "tree": "38caef5d62a74152ceaa25cdffca5288e624c1af",
      "parents": [
        "277533b7a3260c7076ea17aa7c2e57c432787a9c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 07 18:27:47 2024 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 07 18:27:47 2024 +0000"
      },
      "message": "We don\u0027t need __STDC_FORMAT_MACROS any more.\n\nTest: treehugger\nChange-Id: Iada8b959f61bfa55b61d2ed4b345801ed9cea0c6\n"
    },
    {
      "commit": "34a09861af5f2fc81aed1be36ac187926f540718",
      "tree": "d5e2b3fb3aa66aded24844e65ae8467919ff9754",
      "parents": [
        "d95213e7a165780f6fd78551ad82db67ccb6047f"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Jan 20 00:20:17 2024 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jan 23 21:51:13 2024 +0000"
      },
      "message": "libutils: Looper add \u0027repoll\u0027\n\nTo help cases where kernel drivers do not\nimplement poll events correctly.\n\nBug: 316829336\nTest: boot\n\nChange-Id: Ibad16a8e8e061a5be8cede7e8680c3095d6e6f32\n"
    },
    {
      "commit": "c4db546a218dc3fa88d86fc03d3139549b293908",
      "tree": "d90b4279616ba724be106520c401baa2f4b79fa5",
      "parents": [
        "9c88c9d351ac49ab26d91f74b86fdada4e2595ec"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Sat Jan 20 20:12:03 2024 +0000"
      },
      "committer": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Sat Jan 20 20:12:03 2024 +0000"
      },
      "message": "Add libz to static libs of libutils_test\n\nlibz is no longer statically linked into libunwindstatck, so needs to be\nadded explicitly to the static libs of this test\n\nBug: 281077552\nTest: presubmits\nChange-Id: Ia04b63cb8dfd5e80536a188a35d036dd3e4fd775\n"
    },
    {
      "commit": "e5b667bd38ba90ff080a685c52b15371eea8a19a",
      "tree": "fedb043a1cb232d4ce870feebb5308fdc333e0ff",
      "parents": [
        "94d60a73f40fcdc1df12592a186f55b7382b9524"
      ],
      "author": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Mon Jan 08 18:49:37 2024 +0800"
      },
      "committer": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Mon Jan 08 18:52:13 2024 +0800"
      },
      "message": "Enable header_abi_checker for libutils explicitly\n\nThe ABI checking rules for VNDK will be deleted from the main branch.\nTo keep monitoring the ABI, the check must be enabled explicitly.\n\nTest: m libutils.vendor\nBug: 314010764\nChange-Id: I762dec1ed7de014db653663d2917a19df5076fc8\n"
    },
    {
      "commit": "1578cb3c142bbe41bec709dbb352fd88e8a085ba",
      "tree": "b9898fca3cbcfc7de6b85314f8360c16d2f9bd8f",
      "parents": [
        "1b44b8c6d62ce59cab9ddce9e44300b41c51b0e7"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Nov 21 08:56:06 2023 -0800"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Dec 07 14:04:16 2023 -0800"
      },
      "message": "Introduce libutils_binder_sdk\n\nBug: 285204695\nTest: mma in Binder directory\nChange-Id: I430b81594167940cb47897e4261ad87c75ac3783\n"
    },
    {
      "commit": "862f049d178e6158e62fb80ec3cacccf0fe3966b",
      "tree": "afa83654132cb04a0884576a368b2394c6bf0262",
      "parents": [
        "bc907c00f4bbb88997778eedfcf2d03a1849b794"
      ],
      "author": {
        "name": "Kai Sky",
        "email": "dqksky@gmail.com",
        "time": "Fri Nov 24 14:20:20 2023 +0000"
      },
      "committer": {
        "name": "Kai Sky",
        "email": "dqksky@gmail.com",
        "time": "Wed Nov 29 05:41:01 2023 +0000"
      },
      "message": "Looper: Fixed compile error when enabling DEBUG_CALLBACKS\n\nWhen enabling DEBUG_CALLBACKS , compiler complains\nfor the undeclared identifier \u0027fd\u0027.\nFix by removing undeclared objects.\n\nChange-Id: I751a9ef9d8843350105acd6a30645f897050ffa4\n"
    },
    {
      "commit": "e01550bbb6520f00c0826e17e13360f127dfddf6",
      "tree": "c5b467360a83047144cd1d4b9300a542749fc049",
      "parents": [
        "ced62e53eda45387d06c55c155c6bbef8a80a8a0"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 10 15:05:35 2023 -0500"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 20 11:55:02 2023 -0500"
      },
      "message": "Add StrongPointer::release()\n\nUseful when dealing with raw pointers in unavoidable places. Avoids\nan awkward (and \"slow\") dance of mySp-\u003eincStrong(0); mySp-\u003eget(); ~mySp;\n\nTest: make \u0026\u0026 atest --host libutils_binder_test\nChange-Id: Ib8d46150592725cc256779bccfed19a16dce78b2\n"
    },
    {
      "commit": "b6f459abbc594e3b5821bd500a3dca33fe6af84c",
      "tree": "0d4fe292743db88672399e1dab118c804895f90a",
      "parents": [
        "8fbaaa33a1b8c388be4fdefe98741372e4879c24"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Oct 26 15:55:08 2023 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Oct 27 10:48:43 2023 -0700"
      },
      "message": "Allow disabling callstack\n\nBug: 302723053\nTest: mma\nChange-Id: Idea326cc9914d4c81d75dad287e169c09a736486\n"
    },
    {
      "commit": "c7383702733f5a9f954a3f151ee9a555ff0576ff",
      "tree": "8f7022b7b4adeaad46955444e23d12fda647f162",
      "parents": [
        "2ae67e71199fe74258bd12a5330e3e9c7d149b36"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Oct 21 00:43:52 2023 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Oct 24 23:45:01 2023 +0000"
      },
      "message": "libutils_binder: isolate headers\n\nThis isolated all libutils_binder headers from libutils\nexcept for RefBase use of CallStack.h. This header can\nbe disabled with a macro option easily.\n\nBug: N/A\nTest: N/A\nChange-Id: I83af091fc17b5418ab9e4d7fc41fb43792ec547d\n"
    },
    {
      "commit": "7a1ca59839f3ebb8fd73037c7380af958e03ef07",
      "tree": "48a753342498f96bcc72bef942068d16912aa43d",
      "parents": [
        "0666c3a632e811fc1f49685ddfff21ce6b3efa34"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Oct 07 01:09:39 2023 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Oct 09 21:56:15 2023 +0000"
      },
      "message": "libutils: split out libutils_binder\n\nDependencies of libbinder, so we can build\na core libbinder library, libbinder_sdk.\n\nThis is preparing the way to move this part of libbinder\ntogether with binder code into a single project.\n\nBug: 302720583\nChange-Id: Icff078ac6e36c7f2b91cf815d5b9ed19b2e706e1\n"
    },
    {
      "commit": "0666c3a632e811fc1f49685ddfff21ce6b3efa34",
      "tree": "ed96f3356e7f20266909b6e116a2d6b32ddfc09f",
      "parents": [
        "066e625b6b74028f10848ce73a758bd8ea83f378"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Oct 07 00:35:38 2023 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Oct 07 00:35:38 2023 +0000"
      },
      "message": "libutils: remove unused \u0027CALLSTACKS\u0027\n\nThis macro is set, but it doesn\u0027t exist.\n\nBug: 302720583\nTest: build\nChange-Id: I88032c24b8bc8dc52d521e769149cbd8f619dde8\n"
    },
    {
      "commit": "066e625b6b74028f10848ce73a758bd8ea83f378",
      "tree": "3a00beaaec19b3ae0147b6f603a8d5e46b385930",
      "parents": [
        "b0bff22429ba480bf00774cc12f73be56cc966b3"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Oct 07 00:29:44 2023 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sat Oct 07 00:29:44 2023 +0000"
      },
      "message": "libutils: use log/log.h internally\n\nutils/Log.h is one less file we need if we\u0027re\nsplitting up this library for binder.\n\nBug: 302720583\nTest: build\nChange-Id: Ibc7ec5402df342627f465354d7cf59e98f450a31\n"
    },
    {
      "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"
    }
  ],
  "next": "18b746188c73a83ad57b99558914ba9421e8a20a"
}
