)]}'
{
  "commit": "cc0acda782858ad8d48a38e024a1987d12249721",
  "tree": "b6b0147f5479d879f8ac166c19e8924de3aba1dc",
  "parents": [
    "c2dd38f1cb7ead1e1b87f5582962fed9a826c02c"
  ],
  "author": {
    "name": "Pavel Labath",
    "email": "pavel@labath.sk",
    "time": "Mon Mar 23 14:20:08 2020 +0100"
  },
  "committer": {
    "name": "Pavel Labath",
    "email": "pavel@labath.sk",
    "time": "Tue Apr 21 16:48:09 2020 +0200"
  },
  "message": "[DWARFDataExtractor] Add a \"truncating\" constructor\n\nSummary:\nThis constructor allows us to create a new DWARFDataExtractor which will\nonly present a subrange of an entire debug section. Since debug sections\ntypically consist of multiple contributions, it is expected that one\nwill create a new data extractor for each contribution in order to\navoid unexpectedly running off into the next one.\n\nThis is very useful for unifying the flows for detecting parse errors.\nWithout it, the code needs to consider two very different scenarios:\n1. If there is another contribution after the current one, the\n   DataExtractor functions will just start reading from there. This is\n   detectable by comparing the current offset against the known\n   end-of-contribution offset.\n2. If this is the last contribution, the data extractor will just start\n   returning zeroes (or other default values). This situation can *not*\n   be detected by checking the parsing offset, as this will not be\n   advanced in case of errors.\n\nUsing a truncated data extractor simplifies the code (and reduces\ncognitive load) by making these two cases behave identically -- a\nrunning off the end of a contribution will _always_ produce an EOF error\n(if one uses error-aware parsing methods) or return default values.\n\nReviewers: dblaikie, probinson, jhenderson, ikudrin\n\nSubscribers: aprantl, llvm-commits\n\nTags: #llvm\n\nDifferential Revision: https://reviews.llvm.org/D77556\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1e5ed09b57b3d8c08b0885f81f505bff8a7b2bf4",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h",
      "new_id": "34329ec66baa5b3323bfaea4063364f664247dc9",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
    },
    {
      "type": "modify",
      "old_id": "46af2602614783e1fca8706e5dcfc33ec1493c84",
      "old_mode": 33188,
      "old_path": "llvm/unittests/DebugInfo/DWARF/DWARFDataExtractorTest.cpp",
      "new_id": "d6b13c773d681ece8493f0ba384a88ff0b673124",
      "new_mode": 33188,
      "new_path": "llvm/unittests/DebugInfo/DWARF/DWARFDataExtractorTest.cpp"
    }
  ]
}
