)]}'
{
  "commit": "5dd240724366295970c613ed23d0092bcf392f18",
  "tree": "6f4f75dacce4a7e10f0fe354474fca849aaa446c",
  "parents": [
    "f14d5f4af12eb521a5142151d6ea3addbbed42bb"
  ],
  "author": {
    "name": "Abseil Team",
    "email": "absl-team@google.com",
    "time": "Fri Apr 30 10:41:56 2021 -0700"
  },
  "committer": {
    "name": "Derek Mauro",
    "email": "dmauro@google.com",
    "time": "Fri Apr 30 13:55:34 2021 -0400"
  },
  "message": "Export of internal Abseil changes\n\n--\n60b8e77be4bab1bbd3b4c3b70054879229634511 by Derek Mauro \u003cdmauro@google.com\u003e:\n\nUse _MSVC_LANG for some C++ dialect checks since MSVC doesn\u0027t\nset __cplusplus accurately by default.\n\nhttps://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/\n\nSee GitHub #722.\n\nPiperOrigin-RevId: 371362181\n\n--\n5d736accdff04db0e722f377c0d79f2d3ed53263 by Martijn Vels \u003cmvels@google.com\u003e:\n\nFix the estimated memory size for CordRepExternal\n\nPiperOrigin-RevId: 371350380\n\n--\neaaa1d8a167aeca67a2aa3a098a2b61a9d72172f by Martijn Vels \u003cmvels@google.com\u003e:\n\nRemove flakes by not enforcing re-allocated pointers do never match original\n\nTests that do multiple updates could end up with the original allocated pointer on a 2nd resize, so the \u0027EqIfPrivate\u0027 should not assume that if we do \u0027not\u0027 have the capacity that all following relocations will never match the original. We only care about \u0027pointer unchanged if private and there is capacity\u0027, trying to establish \u0027pointer changed at some point due to re-allocation; is pointless.\n\nPiperOrigin-RevId: 371338965\n\n--\nd1837bee6bade1902b095c1cbf64231668bb84c5 by Martijn Vels \u003cmvels@google.com\u003e:\n\nUndo inline of small data copy in cord\n\nThis leads to a performance regression as the code is not inlined (absent hard FDO inputs), and there are no suitable tail call options.\n\nPiperOrigin-RevId: 371332332\n\n--\n06dc64b833069efc7d18b11df607c8c22be690da by Martijn Vels \u003cmvels@google.com\u003e:\n\nAdd final instrumentation for Cordz and remove \u0027old\u0027 cordz logic.\n\nThis change instruments the last cord function for cordz. It removes the \u0027old\u0027 functions: set_tree, replace_tree, UpdateCordzStatistics and RecordMetrics.\n\nPiperOrigin-RevId: 371219909\n\n--\na5e0be538579c603052feec03e6d9910c43ea787 by Martijn Vels \u003cmvels@google.com\u003e:\n\nExtend the life of CordRep* if inside a snapshot\n\nIf a snapshot (potentially) includes the current CordzInfo, we need to extent the lifetime of the CordRep*, as the snapshot \u0027point in time\u0027 observation of the cord should ideally be preserved.\n\nPiperOrigin-RevId: 371146151\n\n--\n74d77a89774cd6c8ecdeebee0193b294a39383d6 by Martijn Vels \u003cmvels@google.com\u003e:\n\nInstrument std::string consuming methods: ctor, operator\u003d, Append and Prepend\n\nThis change moves the \u0027steal into CordRep\u0027 logic into a separate function so we can use it directly in the ctor, operator assign and append and prepend, allowing Cordz instrumentation with the proper method attributes.\n\nThe assign operator is implemented in AssignLargeString leaving the dispatch inlined in cord.h (which as a side effects also allows clean tail calls in the AssignLargeString method)\n\nPiperOrigin-RevId: 371094756\n\n--\nb39effc45266b7ce2e7f96caa3b16cb6e3acc2dd by Martijn Vels \u003cmvels@google.com\u003e:\n\nAdd Cordz instrumentation to CordReader\n\nPiperOrigin-RevId: 370990181\nGitOrigin-RevId: 60b8e77be4bab1bbd3b4c3b70054879229634511\nChange-Id: I96af62e6f1a643e8b1228ae01e6c84e33706bb05\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2b5ff623d4309c88dc3727d52b408b99f9cddcb3",
      "old_mode": 33188,
      "old_path": "absl/memory/memory.h",
      "new_id": "d63326068fe686329dbfbef4c59b4930d7ad3475",
      "new_mode": 33188,
      "new_path": "absl/memory/memory.h"
    },
    {
      "type": "modify",
      "old_id": "b5427a43483a45c6a88365bab1420b975b0bf4e9",
      "old_mode": 33188,
      "old_path": "absl/meta/type_traits.h",
      "new_id": "e7c123936d44aea2dad98e24351ede258ec44e49",
      "new_mode": 33188,
      "new_path": "absl/meta/type_traits.h"
    },
    {
      "type": "modify",
      "old_id": "ae88f7bbc40a728fd75bbc7871428ee6d7fc2ffa",
      "old_mode": 33188,
      "old_path": "absl/strings/BUILD.bazel",
      "new_id": "15277de35329b29bb82135f032b44f6a777281a2",
      "new_mode": 33188,
      "new_path": "absl/strings/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "8ebe91e664f226885389f8ed4617c23eb04a5ba3",
      "old_mode": 33188,
      "old_path": "absl/strings/CMakeLists.txt",
      "new_id": "1750f7aff043157289c806573ce89aaa06774ad0",
      "new_mode": 33188,
      "new_path": "absl/strings/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "9262aee6ae327d7e611af94bf68867c28fe4c135",
      "old_mode": 33188,
      "old_path": "absl/strings/cord.cc",
      "new_id": "1c2ff9f22379277d836119233bc55369565088d8",
      "new_mode": 33188,
      "new_path": "absl/strings/cord.cc"
    },
    {
      "type": "modify",
      "old_id": "d7b43247e2ba42d161b48e6cc5185e1467efc61d",
      "old_mode": 33188,
      "old_path": "absl/strings/cord.h",
      "new_id": "8abc47421c21900a8c248dedbc6950e4005ecf7b",
      "new_mode": 33188,
      "new_path": "absl/strings/cord.h"
    },
    {
      "type": "modify",
      "old_id": "2943cf38b1adced86ed781549060495b4c736a4c",
      "old_mode": 33188,
      "old_path": "absl/strings/cord_ring_test.cc",
      "new_id": "cc8fbaf995c4cb2e0d70c3a08b1c657574fc4a91",
      "new_mode": 33188,
      "new_path": "absl/strings/cord_ring_test.cc"
    },
    {
      "type": "modify",
      "old_id": "74a9086391b6b3275b1c49a3de9b711e8fd5e289",
      "old_mode": 33188,
      "old_path": "absl/strings/cord_test.cc",
      "new_id": "14eca15573362b04a42d3c49a20408b74a54e964",
      "new_mode": 33188,
      "new_path": "absl/strings/cord_test.cc"
    },
    {
      "type": "modify",
      "old_id": "6ccccc51fb8388b9b98470792df157f34714eb61",
      "old_mode": 33188,
      "old_path": "absl/strings/cord_test_helpers.h",
      "new_id": "31a1dc89801ebce4b1e6d85b820ffce8fe077f9b",
      "new_mode": 33188,
      "new_path": "absl/strings/cord_test_helpers.h"
    },
    {
      "type": "modify",
      "old_id": "84947cfd2adf05efbad25157f99b846e16e4db80",
      "old_mode": 33188,
      "old_path": "absl/strings/cordz_test.cc",
      "new_id": "aeb3d13f52e4ac84a93aa8445875d5a7f76c625a",
      "new_mode": 33188,
      "new_path": "absl/strings/cordz_test.cc"
    },
    {
      "type": "modify",
      "old_id": "5297ec8e11ca39b663f17930ab58b66a0d5fb944",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/cordz_handle.cc",
      "new_id": "a73fefed59137d779196937008ff081b873dee64",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/cordz_handle.cc"
    },
    {
      "type": "modify",
      "old_id": "93076cfdf71a688e3cfd1daedbc1cac7d1e1ab55",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/cordz_handle.h",
      "new_id": "5df53c782a55eedd649e5556a9f2d028c592d08a",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/cordz_handle.h"
    },
    {
      "type": "modify",
      "old_id": "c04240e86164dd6bfecb630ad7c653ab13c50518",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/cordz_handle_test.cc",
      "new_id": "4eefd72c422b2afb2daf6175776471748e62abd7",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/cordz_handle_test.cc"
    },
    {
      "type": "modify",
      "old_id": "0461ec465e913293703dbd85f2d5da33365be3a5",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/cordz_info.cc",
      "new_id": "0f657aaff25f939fdd6286344859363833046094",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/cordz_info.cc"
    },
    {
      "type": "modify",
      "old_id": "f7682cb3f589ae95fb5d301241fa70eddd59833f",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/cordz_info.h",
      "new_id": "1fe046ec66958087881221ab867bf40f64e475f4",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/cordz_info.h"
    },
    {
      "type": "modify",
      "old_id": "5eaf4b9c4e55846e6e428319caccc723cfa26c84",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/cordz_info_test.cc",
      "new_id": "5bb23e475ade74d1fdf49f9afae05085fd16292d",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/cordz_info_test.cc"
    },
    {
      "type": "modify",
      "old_id": "741950b2ae9f9bc60a2d40410ae747d31d6a3c93",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/cordz_update_tracker.h",
      "new_id": "d5b1406787a2d589c07cfc93367655d3f91cd8d0",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/cordz_update_tracker.h"
    },
    {
      "type": "modify",
      "old_id": "eda662f2fe1fbc007e02faf77f2f1c054c9a77b7",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/cordz_update_tracker_test.cc",
      "new_id": "fcd17df7a0deeb08154e5cd8ac9fc1f99ab08bd7",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/cordz_update_tracker_test.cc"
    }
  ]
}
