)]}'
{
  "commit": "71db9462eb994327a79928fbbaee3f3675458df1",
  "tree": "5427bdba38d2605b94965fdd44ba5a9103e674f7",
  "parents": [
    "5f2bbc1069aecbc97fce688b2feafecb0eedfe86"
  ],
  "author": {
    "name": "Michael Anthony Knyszek",
    "email": "mknyszek@google.com",
    "time": "Fri Dec 13 20:24:29 2024 +0000"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Mon Dec 16 13:41:15 2024 -0800"
  },
  "message": "gocore: overhaul roots, expand testing\n\nThis change overhauls how roots work to prepare for supporting composite\nvalues (roots \"de-structured\" and broken up into pieces, despite\nrepresenting a single type). It also expands testing a little bit to\nprevent backsliding from this point.\n\nRoots now do not have an address identity at all, and callers do not\nrely on that fact anymore. They have a forged identity which is useful\nfor some calculations, but otherwise can only be identified by a *Root.\n\nPointers may now be found in composite roots, which is nice, so all\ndestructured values work correctly for the sake of iterating over all\npointers.\n\nFinally, this fixes a small, old bug in typeObject where the type\npointer would be interrogated before we filtered out whether a interface\nwas nil or not. Because we filter dead pointers by making them appear\nnil, this means we could end up looking at a bogus, clobbered type\npointer. (This may be a bug in the compiler\u0027s DWARF generation, the type\nshouldn\u0027t be clobbered.)\n\nChange-Id: I09217b2070dc6f4bf4b1dbd28d52f570ba61ca4a\nReviewed-on: https://go-review.googlesource.com/c/debug/+/635857\nAuto-Submit: Michael Knyszek \u003cmknyszek@google.com\u003e\nReviewed-by: Nicolas Hillegeer \u003caktau@google.com\u003e\nReviewed-by: Michael Pratt \u003cmpratt@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1b16c14b1d7f1646b0f792252d79e49928954e43",
      "old_mode": 33188,
      "old_path": "cmd/viewcore/html.go",
      "new_id": "5180514f7dd048b768ca70faf71f73d849fa39c4",
      "new_mode": 33188,
      "new_path": "cmd/viewcore/html.go"
    },
    {
      "type": "modify",
      "old_id": "ca2709fe4d4941a27ff857be0b1b7c6826ff37bf",
      "old_mode": 33188,
      "old_path": "internal/gocore/dominator.go",
      "new_id": "ecfc7a2861cb6f49169f43c0c9966f7aa72d486a",
      "new_mode": 33188,
      "new_path": "internal/gocore/dominator.go"
    },
    {
      "type": "modify",
      "old_id": "2f9c85dec95d1441bda98f8b16f2eac1f9174e1a",
      "old_mode": 33188,
      "old_path": "internal/gocore/dominator_test.go",
      "new_id": "a057499de2124d8ac48d675148268f1e29d122c6",
      "new_mode": 33188,
      "new_path": "internal/gocore/dominator_test.go"
    },
    {
      "type": "modify",
      "old_id": "e3fc3219dd5526962a546d3fa4d38f5f73075551",
      "old_mode": 33188,
      "old_path": "internal/gocore/dwarf.go",
      "new_id": "aba997a09d58bcdbf31601a3dc2968a798f0ee05",
      "new_mode": 33188,
      "new_path": "internal/gocore/dwarf.go"
    },
    {
      "type": "modify",
      "old_id": "a8bd3e47e18c0c379b0a4e13622577de3eb652fd",
      "old_mode": 33188,
      "old_path": "internal/gocore/gocore_test.go",
      "new_id": "02fdece0f23b1acb068c790a2d5cd4b0d8ece73b",
      "new_mode": 33188,
      "new_path": "internal/gocore/gocore_test.go"
    },
    {
      "type": "modify",
      "old_id": "b3eebb63a3943a30a2c72fcda3aab8cc44861310",
      "old_mode": 33188,
      "old_path": "internal/gocore/goroutine.go",
      "new_id": "d6f65b56627faaa8f1f575a2f2d939026969ccff",
      "new_mode": 33188,
      "new_path": "internal/gocore/goroutine.go"
    },
    {
      "type": "modify",
      "old_id": "b0e270403ad5a30860e6503ad5e892e31aaafa61",
      "old_mode": 33188,
      "old_path": "internal/gocore/object.go",
      "new_id": "5638430917f61655722b58e9418e5809a5d7b975",
      "new_mode": 33188,
      "new_path": "internal/gocore/object.go"
    },
    {
      "type": "modify",
      "old_id": "3a5b55c3d26e64bfb065f89113a61347c25cc240",
      "old_mode": 33188,
      "old_path": "internal/gocore/process.go",
      "new_id": "5e86aceedcf87e5e3592a774005d1b881ae1724a",
      "new_mode": 33188,
      "new_path": "internal/gocore/process.go"
    },
    {
      "type": "modify",
      "old_id": "bc1e56a52adb2bce681f10495c6bf02515659ea3",
      "old_mode": 33188,
      "old_path": "internal/gocore/reverse.go",
      "new_id": "ee9553afc47d6f6949f9fd5e0d7b4f8b93b28ca0",
      "new_mode": 33188,
      "new_path": "internal/gocore/reverse.go"
    },
    {
      "type": "modify",
      "old_id": "f44dea0f76cbb2796a3056af944210d0b22c2ceb",
      "old_mode": 33188,
      "old_path": "internal/gocore/root.go",
      "new_id": "8d4ac99d52493279f71c3274759b0eaa580a5806",
      "new_mode": 33188,
      "new_path": "internal/gocore/root.go"
    },
    {
      "type": "modify",
      "old_id": "d78fa55f6f2407cd207c2afa42bb78aec1c4e1bc",
      "old_mode": 33188,
      "old_path": "internal/gocore/testdata/coretest/test.go",
      "new_id": "bd35566dfc00debf72ee87c40d090419ec328a77",
      "new_mode": 33188,
      "new_path": "internal/gocore/testdata/coretest/test.go"
    },
    {
      "type": "modify",
      "old_id": "1d6374086f06a6d52d366859b62e48d724e7c329",
      "old_mode": 33188,
      "old_path": "internal/gocore/type.go",
      "new_id": "1d052a2e484544b8be4a9d759a20f0edb1496903",
      "new_mode": 33188,
      "new_path": "internal/gocore/type.go"
    }
  ]
}
