fix py-value.c
authorTom Tromey <tromey@redhat.com>
Thu, 30 May 2013 17:18:54 +0000 (17:18 +0000)
committerTom Tromey <tromey@redhat.com>
Thu, 30 May 2013 17:18:54 +0000 (17:18 +0000)
Some code in py-value.c could exit a loop without running some
cleanups made in the loop.

* python/py-value.c (valpy_binop): Call do_cleanups before
exiting loop.

gdb/ChangeLog
gdb/python/py-value.c

index 08f247c..1f07f38 100644 (file)
@@ -1,5 +1,10 @@
 2013-05-30  Tom Tromey  <tromey@redhat.com>
 
+       * python/py-value.c (valpy_binop): Call do_cleanups before
+       exiting loop.
+
+2013-05-30  Tom Tromey  <tromey@redhat.com>
+
        * python/py-prettyprint.c (print_children): Remove extra
        do_cleanups call.
 
index 0b2a38f..0d87219 100644 (file)
@@ -769,11 +769,17 @@ valpy_binop (enum valpy_opcode opcode, PyObject *self, PyObject *other)
         a gdb.Value object and need to convert it from python as well.  */
       arg1 = convert_value_from_python (self);
       if (arg1 == NULL)
-       break;
+       {
+         do_cleanups (cleanup);
+         break;
+       }
 
       arg2 = convert_value_from_python (other);
       if (arg2 == NULL)
-       break;
+       {
+         do_cleanups (cleanup);
+         break;
+       }
 
       switch (opcode)
        {