This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA 0/5] Some random C++-ification
- From: Tom Tromey <tom at tromey dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 22 Sep 2016 11:50:51 -0600
- Subject: [RFA 0/5] Some random C++-ification
- Authentication-results: sourceware.org; auth=none
I was feeling inspired by Pedro's Cauldron slides, so I found a few
random spots that could be converted from cleanups to self-managing
data structures from libstdc++ -- in these cases, std::string and
std::vector.
I saw a note in one of the C++ conversion documents about perhaps not
using std::vector, since GCC did not. However, I think often GCC's
uses are unusual, and I don't think there is any reason to avoid
std::vector in (most of) gdb.
This should probably not go in until after Pedro's "new" patch.
Built and regtested on x86-64 Fedora 24.
A few reflections on these changes:
* First, I think it's a nice improvement. The examples here aren't so
dramatic, but if you dig a bit it's easy to find cases where the
cleanup logic is complicated; and this approach eventually lets one
delegate all that work to the compiler.
* Speaking of, I have a patch to convert uses of the ensure_python_env
to use RAII. However, I don't think this is ready to go in --
because the cleanups installed by this are order-sensitive with
respect to other cleanups that might be created in the various
Python-calling functions. My belief is that cleanups have to all be
run before any destructors, so any ordering issues are a subtlety
that, in the short term, will have to be accounted for in code
review.
* It wasn't actually clear to me that this kind of change is
desirable.
* I was unclear on the coding style to use so I just used the gdb C
style. Maybe there are some spaces that shouldn't be there now.
Tom