This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA 0/5] Some random C++-ification


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]