)]}'
{
  "commit": "0e17d3fc080f543d81e6c2520ba0bd8046ea3a95",
  "tree": "2f0a495b079cc9edb11114028e480890a1c1f866",
  "parents": [
    "4a6daabb94982ccc17ea45ebb6f6e8efa8f86399"
  ],
  "author": {
    "name": "Simon Marchi",
    "email": "simon.marchi@efficios.com",
    "time": "Thu Oct 19 20:40:52 2023 +0000"
  },
  "committer": {
    "name": "Simon Marchi",
    "email": "simon.marchi@polymtl.ca",
    "time": "Fri Oct 20 22:00:23 2023 -0400"
  },
  "message": "gdb: fix owner passed to remove_target_sections in clear_solib\n\nCommit 8971d2788e7 (\"gdb: link so_list using intrusive_list\") introduced\na bug in clear_solib.  Instead of passing an `so_list *` to\nremove_target_sections, it passed an `so_list **`.  This was not caught\nby the compiler, because remove_target_sections takes a `void *` as the\n\"owner\", so you can pass it any pointer and it won\u0027t complain.\n\nThis happened because I previously had a patch to change the type of the\ndisposer parameter to be a reference rather than a pointer, so had to\nchange `so` to `\u0026so`.  When dropping that patch, I forgot to revert this\nbit and / or it got re-introduced when handling subsequent merge\nconflicts.  And I didn\u0027t properly retest.\n\nFix that, but try to make things less error prone.  Add a union to\nrepresent the possible owner kinds for a target_section.  Trying to pass\na pointer to another type than those will not compile.\n\nChange-Id: I600cab5ea0408ccc5638467b760768161ca3036c\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0f9f9d076c684f76510a51ca2053394dad4a8a3d",
      "old_mode": 33188,
      "old_path": "gdb/exec.c",
      "new_id": "5956012338fa6d0289396aa59808f9805e9f39d2",
      "new_mode": 33188,
      "new_path": "gdb/exec.c"
    },
    {
      "type": "modify",
      "old_id": "e0dc5bc0c7aacff272bde80c2c5903cffbe2afa3",
      "old_mode": 33188,
      "old_path": "gdb/maint.c",
      "new_id": "0635af3dfc4ecf47d76b856a9e24daec14e111a7",
      "new_mode": 33188,
      "new_path": "gdb/maint.c"
    },
    {
      "type": "modify",
      "old_id": "cca651fdb6f8675a5d452fc352d84cbaeee7495c",
      "old_mode": 33188,
      "old_path": "gdb/progspace.c",
      "new_id": "839707e9d71f6e8c29ecf520240c2f04f72a8320",
      "new_mode": 33188,
      "new_path": "gdb/progspace.c"
    },
    {
      "type": "modify",
      "old_id": "a480f560a77a67371f6704ef1035eb0a1d9dd333",
      "old_mode": 33188,
      "old_path": "gdb/progspace.h",
      "new_id": "a22e427400e929765ef1424f3483ac867e5a4abd",
      "new_mode": 33188,
      "new_path": "gdb/progspace.h"
    },
    {
      "type": "modify",
      "old_id": "71970636dc58278ed9e025bd579ef3064327859f",
      "old_mode": 33188,
      "old_path": "gdb/solib.c",
      "new_id": "b9fb911a81014dfeb60fc6f8d67d0fba5e2eaf87",
      "new_mode": 33188,
      "new_path": "gdb/solib.c"
    },
    {
      "type": "modify",
      "old_id": "1c902baa7778a10c471023d24648bdb55bc778e7",
      "old_mode": 33188,
      "old_path": "gdb/target-section.h",
      "new_id": "62149d382dd637c78629fd726546fbeafa87d607",
      "new_mode": 33188,
      "new_path": "gdb/target-section.h"
    }
  ]
}
