)]}'
{
  "commit": "4458f245568fbed785cc8c9b83ff6f3887405dd9",
  "tree": "bee2e58ffb6a9decd73f72cf90872e0cb1782a4b",
  "parents": [
    "169fe7ab54b964a6619c6fd05ab55090fa671b10"
  ],
  "author": {
    "name": "Hannes Domani",
    "email": "ssbssa@yahoo.de",
    "time": "Mon Nov 06 18:32:41 2023 +0100"
  },
  "committer": {
    "name": "Hannes Domani",
    "email": "ssbssa@yahoo.de",
    "time": "Mon Nov 06 18:32:41 2023 +0100"
  },
  "message": "Fix resizing of TUI python windows\n\nWhen resizing from a big to small terminal size, and you have a\nTUI python window that would then be outside of the new size,\nvalgrind shows this error:\n\n\u003d\u003d3389\u003d\u003d Invalid read of size 1\n\u003d\u003d3389\u003d\u003d    at 0xC3DFEE: wnoutrefresh (lib_refresh.c:167)\n\u003d\u003d3389\u003d\u003d    by 0xC3E3C9: wrefresh (lib_refresh.c:63)\n\u003d\u003d3389\u003d\u003d    by 0xA9766C: tui_unhighlight_win(tui_win_info*) (tui-wingeneral.c:134)\n\u003d\u003d3389\u003d\u003d    by 0x98921C: tui_py_window::rerender() (py-tui.c:183)\n\u003d\u003d3389\u003d\u003d    by 0xA8C23C: tui_layout_split::apply(int, int, int, int, bool) (tui-layout.c:1030)\n\u003d\u003d3389\u003d\u003d    by 0xA8C2A2: tui_layout_split::apply(int, int, int, int, bool) (tui-layout.c:1033)\n\u003d\u003d3389\u003d\u003d    by 0xA8C23C: tui_layout_split::apply(int, int, int, int, bool) (tui-layout.c:1030)\n\u003d\u003d3389\u003d\u003d    by 0xA8B1F8: tui_apply_current_layout(bool) (tui-layout.c:81)\n\u003d\u003d3389\u003d\u003d    by 0xA95CDB: tui_resize_all() (tui-win.c:525)\n\u003d\u003d3389\u003d\u003d    by 0xA95D1E: tui_async_resize_screen(void*) (tui-win.c:562)\n\u003d\u003d3389\u003d\u003d    by 0x6B855D: invoke_async_signal_handlers() (async-event.c:234)\n\u003d\u003d3389\u003d\u003d    by 0xC0CEF8: gdb_do_one_event(int) (event-loop.cc:199)\n\u003d\u003d3389\u003d\u003d  Address 0x115cc214 is 1,332 bytes inside a block of size 2,240 free\u0027d\n\u003d\u003d3389\u003d\u003d    at 0x4A0A430: free (vg_replace_malloc.c:446)\n\u003d\u003d3389\u003d\u003d    by 0xC3CF7D: _nc_freewin (lib_newwin.c:121)\n\u003d\u003d3389\u003d\u003d    by 0xA8B1C6: tui_apply_current_layout(bool) (tui-layout.c:78)\n\u003d\u003d3389\u003d\u003d    by 0xA95CDB: tui_resize_all() (tui-win.c:525)\n\u003d\u003d3389\u003d\u003d    by 0xA95D1E: tui_async_resize_screen(void*) (tui-win.c:562)\n\u003d\u003d3389\u003d\u003d    by 0x6B855D: invoke_async_signal_handlers() (async-event.c:234)\n\u003d\u003d3389\u003d\u003d    by 0xC0CEF8: gdb_do_one_event(int) (event-loop.cc:199)\n\u003d\u003d3389\u003d\u003d    by 0x8E40E9: captured_command_loop() (main.c:407)\n\u003d\u003d3389\u003d\u003d    by 0x8E5E54: gdb_main(captured_main_args*) (main.c:1324)\n\u003d\u003d3389\u003d\u003d    by 0x62AC04: main (gdb.c:39)\n\nIt\u0027s because tui_py_window::m_inner_window still has the outside\ncoordinates, and wnoutrefresh then does an out-of-bounds access.\n\nFix this by resetting m_inner_window on every resize, it will anyways\nbe recreated in the next rerender call.\n\nApproved-By: Andrew Burgess \u003caburgess@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "64f22dbb46278f79285ac380d0aef044ced811ec",
      "old_mode": 33188,
      "old_path": "gdb/python/py-tui.c",
      "new_id": "a84e38a05635b4b6400df189be0913f8f711925e",
      "new_mode": 33188,
      "new_path": "gdb/python/py-tui.c"
    }
  ]
}
