This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] [python] Use TRY_CATCH in some functions.
- From: Tom Tromey <tromey at redhat dot com>
- To: pmuldoon at redhat dot com
- Cc: gdb-patches at sourceware dot org
- Date: Tue, 11 Oct 2011 10:41:27 -0600
- Subject: Re: [patch] [python] Use TRY_CATCH in some functions.
- References: <m3zkh7bv1i.fsf@redhat.com>
>>>>> "Phil" == Phil Muldoon <pmuldoon@redhat.com> writes:
Phil> After fixing the bugs related to py-value.c not using TRY_CATCH in some
Phil> cases, I decided to take a look at the rest of the Python files. I
Phil> caught a few others too.
Thanks for doing this.
Phil> @@ -624,20 +625,31 @@ typy_lookup_type (struct demangle_component *demangled,
[...]
Phil> + if (except.reason < 0)
Phil> + {
Phil> + PyErr_Format (except.reason == RETURN_QUIT
Phil> + ? PyExc_KeyboardInterrupt : PyExc_RuntimeError,
Phil> + "%s", except.message);
Phil> + return NULL;
Why not GDB_PY_HANDLE_EXCEPTION here?
(And also fix up typy_lookup_typename to do the same.)
Phil> @@ -990,8 +1002,16 @@ typy_richcompare (PyObject *self, PyObject *other, int op)
[...]
Phil> + {
Phil> + bcache_xfree (cache);
Phil> + VEC_free (type_equality_entry_d, worklist);
Phil> + GDB_PY_HANDLE_EXCEPTION (except);
I think the freeing should be hoisted above the exception check, to
consolidate the code. With the current patch the code is duplicated on
both branches.
Otherwise this look good.
Tom