Use gdbpy_enter in py-xmethods.c

Change the simple parts of py-xmethods.c to use gdbpy_enter.

2017-01-10  Tom Tromey  <tom@tromey.com>

	* python/py-xmethods.c (gdbpy_free_xmethod_worker_data)
	(gdbpy_clone_xmethod_worker_data): Use gdbpy_enter.
This commit is contained in:
Tom Tromey 2016-11-07 16:13:40 -07:00
parent c57af3f12b
commit f18e226ff8
2 changed files with 7 additions and 8 deletions

View file

@ -1,3 +1,8 @@
2017-01-10 Tom Tromey <tom@tromey.com>
* python/py-xmethods.c (gdbpy_free_xmethod_worker_data)
(gdbpy_clone_xmethod_worker_data): Use gdbpy_enter.
2017-01-10 Tom Tromey <tom@tromey.com> 2017-01-10 Tom Tromey <tom@tromey.com>
* python/py-type.c (save_objfile_types): Use gdbpy_enter. * python/py-type.c (save_objfile_types): Use gdbpy_enter.

View file

@ -52,18 +52,15 @@ gdbpy_free_xmethod_worker_data (const struct extension_language_defn *extlang,
void *data) void *data)
{ {
struct gdbpy_worker_data *worker_data = (struct gdbpy_worker_data *) data; struct gdbpy_worker_data *worker_data = (struct gdbpy_worker_data *) data;
struct cleanup *cleanups;
gdb_assert (worker_data->worker != NULL && worker_data->this_type != NULL); gdb_assert (worker_data->worker != NULL && worker_data->this_type != NULL);
/* We don't do much here, but we still need the GIL. */ /* We don't do much here, but we still need the GIL. */
cleanups = ensure_python_env (get_current_arch (), current_language); gdbpy_enter enter_py (get_current_arch (), current_language);
Py_DECREF (worker_data->worker); Py_DECREF (worker_data->worker);
Py_DECREF (worker_data->this_type); Py_DECREF (worker_data->this_type);
xfree (worker_data); xfree (worker_data);
do_cleanups (cleanups);
} }
/* Implementation of clone_xmethod_worker_data for Python. */ /* Implementation of clone_xmethod_worker_data for Python. */
@ -74,12 +71,11 @@ gdbpy_clone_xmethod_worker_data (const struct extension_language_defn *extlang,
{ {
struct gdbpy_worker_data *worker_data struct gdbpy_worker_data *worker_data
= (struct gdbpy_worker_data *) data, *new_data; = (struct gdbpy_worker_data *) data, *new_data;
struct cleanup *cleanups;
gdb_assert (worker_data->worker != NULL && worker_data->this_type != NULL); gdb_assert (worker_data->worker != NULL && worker_data->this_type != NULL);
/* We don't do much here, but we still need the GIL. */ /* We don't do much here, but we still need the GIL. */
cleanups = ensure_python_env (get_current_arch (), current_language); gdbpy_enter enter_py (get_current_arch (), current_language);
new_data = XCNEW (struct gdbpy_worker_data); new_data = XCNEW (struct gdbpy_worker_data);
new_data->worker = worker_data->worker; new_data->worker = worker_data->worker;
@ -87,8 +83,6 @@ gdbpy_clone_xmethod_worker_data (const struct extension_language_defn *extlang,
Py_INCREF (new_data->worker); Py_INCREF (new_data->worker);
Py_INCREF (new_data->this_type); Py_INCREF (new_data->this_type);
do_cleanups (cleanups);
return new_data; return new_data;
} }