)]}'
{
  "commit": "7daf1ede7149eecf80ac91df5f11063045d5305d",
  "tree": "1915729ca0ff4d645dfa2beb329a5676438d0217",
  "parents": [
    "9359db0eb895005cf034a5e54a0c86fb0f6baeca"
  ],
  "author": {
    "name": "Tom Sepez",
    "email": "tsepez@chromium.org",
    "time": "Thu May 09 04:34:14 2024 +0000"
  },
  "committer": {
    "name": "Pdfium LUCI CQ",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu May 09 04:34:14 2024 +0000"
  },
  "message": "Fix return of span_with_terminator() for empty string.\n\nNever return an empty span. There must always be at least\na terminator.\n\nThis involves creating an appropriate \"\" literal for the given\nCharType, which had been previously skirted by putting such code\ninto {Byte,Wide}String itself. Use a function overload to do this,\nsince you can\u0027t write, i.e \u003cT\u003e\"\".\n\nThen consolidate other functions which were separate due to this\nprior limitation.\n\n-- Add test for this corner case.\n-- Also use std::char_traits\u003c\u003e::length() to avoid the strlen() vs.\n   wcslen() problem.\n\n\nChange-Id: I483c4caa54c589a98ee1b27c3b6ce2fe19be45ee\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/118950\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\nCommit-Queue: Tom Sepez \u003ctsepez@chromium.org\u003e\nReviewed-by: Thomas Sepez \u003ctsepez@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f58bf19118634d67fd8695a380d9554783f69c5d",
      "old_mode": 33188,
      "old_path": "core/fxcrt/bytestring.h",
      "new_id": "d4ba7bbc12d29df0ee9fc31e4719ce4980ed6b80",
      "new_mode": 33188,
      "new_path": "core/fxcrt/bytestring.h"
    },
    {
      "type": "modify",
      "old_id": "8604f02d607d52d9e39e917eaf8e34d36f8087d4",
      "old_mode": 33188,
      "old_path": "core/fxcrt/bytestring_unittest.cpp",
      "new_id": "95ccfe1e2ea1a736fb1b8212607df5bd39723321",
      "new_mode": 33188,
      "new_path": "core/fxcrt/bytestring_unittest.cpp"
    },
    {
      "type": "modify",
      "old_id": "3259723d5fba30642e20d6ffe42171044aaf7223",
      "old_mode": 33188,
      "old_path": "core/fxcrt/string_template.h",
      "new_id": "482f5fb0ba353db04ddf2de782fa0186772153c1",
      "new_mode": 33188,
      "new_path": "core/fxcrt/string_template.h"
    },
    {
      "type": "modify",
      "old_id": "f60f105dcabb4c39f8b029eed1dff8ee0a30af60",
      "old_mode": 33188,
      "old_path": "core/fxcrt/widestring.h",
      "new_id": "616ff4fb89a15f6d6ea8c9574ba6828eac22cf71",
      "new_mode": 33188,
      "new_path": "core/fxcrt/widestring.h"
    },
    {
      "type": "modify",
      "old_id": "05b413440220c84d05a1c5a0c6d01fbc6dcc1ff9",
      "old_mode": 33188,
      "old_path": "core/fxcrt/widestring_unittest.cpp",
      "new_id": "fa7284f62458d35c068e4a4ee170be14f1432ec2",
      "new_mode": 33188,
      "new_path": "core/fxcrt/widestring_unittest.cpp"
    }
  ]
}
