On Monday, June 19 2017, I wrote:
[...]
-struct gdb_environ *
-make_environ (void)
+gdb_environ &
+gdb_environ::operator= (gdb_environ &&e)
{
- struct gdb_environ *e;
-
- e = XNEW (struct gdb_environ);
-
- e->allocated = 10;
- e->vector = (char **) xmalloc ((e->allocated + 1) * sizeof (char
*));
- e->vector[0] = 0;
- return e;
-}
-
-/* Free an environment and all the strings in it. */
-
-void
-free_environ (struct gdb_environ *e)
-{
- char **vector = e->vector;
-
- while (*vector)
- xfree (*vector++);
-
- xfree (e->vector);
- xfree (e);
+ clear ();
+ m_environ_vector = std::move (e.m_environ_vector);
+ return *this;
}
I should probably do an m_environ_vector.clear () before doing the
std::move, because the vector will contain the NULL element. I'll make
sure to do this before I push the patch.