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]

Re: [RFA] python/py-breakpoint.c (bppy_set_condition): Stop memory leak.


Tom Tromey wrote:
"Michael" == Michael Snyder <msnyder@vmware.com> writes:

Michael> 2011-03-11 Michael Snyder <msnyder@vmware.com> Michael> * python/py-breakpoint.c (bppy_set_condition): Stop memory leak.

This isn't sufficient to stop the leak.

Michael> GDB_PY_SET_HANDLE_EXCEPTION (except);

This can return.

We aren't really using cleanups in "pure python" functions like this one.
You can just explicitly xfree `exp' after the TRY_CATCH.
However, note the `exp = ""' branch.

Like this?



2011-03-11  Michael Snyder  <msnyder@vmware.com>

	* python/py-breakpoint.c (bppy_set_condition): Stop memory leak.

Index: py-breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/python/py-breakpoint.c,v
retrieving revision 1.15
diff -u -p -r1.15 py-breakpoint.c
--- py-breakpoint.c	11 Mar 2011 21:34:34 -0000	1.15
+++ py-breakpoint.c	11 Mar 2011 21:53:40 -0000
@@ -457,6 +457,10 @@ bppy_set_condition (PyObject *self, PyOb
     {
       set_breakpoint_condition (self_bp->bp, exp, 0);
     }
+
+  if (newvalue != Py_None)
+    xfree (exp);
+
   GDB_PY_SET_HANDLE_EXCEPTION (except);
 
   return 0;

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