From 1a56bfa56ed967c5f6ed98f75834408417a062ff Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 8 Oct 2017 16:37:46 -0600 Subject: Remove free_splay_tree cleanup One spot in gdb uses a cleanup to free a splay tree. This patch introduces a unique_ptr specialization for this case. ChangeLog 2017-10-09 Tom Tromey * mi/mi-main.c (free_splay_tree): Remove. (list_available_thread_groups): Use splay_tree_up. * common/gdb_splay_tree.h: New file. --- gdb/common/gdb_splay_tree.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 gdb/common/gdb_splay_tree.h (limited to 'gdb/common') diff --git a/gdb/common/gdb_splay_tree.h b/gdb/common/gdb_splay_tree.h new file mode 100644 index 0000000..1a6577b --- /dev/null +++ b/gdb/common/gdb_splay_tree.h @@ -0,0 +1,42 @@ +/* GDB wrapper for splay trees. + + Copyright (C) 2017 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifndef GDB_SPLAY_TREE_H +#define GDB_SPLAY_TREE_H + +#include "splay-tree.h" + +namespace gdb { + +struct splay_tree_deleter +{ + void operator() (splay_tree tree) const + { + splay_tree_delete (tree); + } +}; + +} /* namespace gdb */ + +/* A unique pointer to a splay tree. */ + +typedef std::unique_ptr + gdb_splay_tree_up; + +#endif /* ! GDB_SPLAY_TREE_H */ -- cgit v1.1