)]}'
{
  "commit": "47cd8fcf54b0ea6b5c4e576e194022500211f06e",
  "tree": "1495c627de2b9f16a2138e55240b3c3a495510fb",
  "parents": [
    "d8ad643f4ef7fa77425e58f157fe3f2917ef46b4"
  ],
  "author": {
    "name": "Tom Tromey",
    "email": "tromey@adacore.com",
    "time": "Fri Nov 10 09:16:17 2023 -0700"
  },
  "committer": {
    "name": "Tom Tromey",
    "email": "tromey@adacore.com",
    "time": "Wed Dec 06 10:07:36 2023 -0700"
  },
  "message": "Improve performance of Ada name searches\n\nA user reported that certain operations -- like printing a large\nstructure -- could be slow.  I tracked this down to\nada-lang.c:map_matching_symbols taking an inordinate amount of time.\nSpecifically, calls like the one to look for a parallel \"__XVZ\"\nvariable, in ada_to_fixed_type_1, could result in gdb walking over all\nthe entries in the cooked index over and over.\n\nLooking into this reveals that\ncooked_index_functions::expand_matching_symbols is not written\nefficiently -- it ignores its \"ordered_compare\" parameter.  While\nfixing this would be good, it turns out that this entire method isn\u0027t\nneeded; so this series removes it.\n\nHowever, the deletion is not done in this patch.  This one, instead,\nfixes the immediate cause of the slowdown, by using\nobjfile::expand_symtabs_matching when possible.  This approach is\nfaster because it is more selective about which index entries to\nexamine.\n\n\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1a591567cdaf2646df174fd7cda64f5218bb80cc",
      "old_mode": 33188,
      "old_path": "gdb/ada-lang.c",
      "new_id": "c3a2b2b4384daad413e2987f6c925df58ed28806",
      "new_mode": 33188,
      "new_path": "gdb/ada-lang.c"
    }
  ]
}
