From d452c4bcefbbe7b2305a5ce26469e06d940a690c Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Thu, 2 Jul 2009 17:04:23 +0000 Subject: * python/python-internal.h (struct language_defn): Declare. (python_gdbarch, python_language): Likewise. (ensure_python_env): Add prototype. (make_cleanup_py_restore_gil): Remove prototype. * python/python.c: Include "arch-utils.h", "value.h" and "language.h". (python_gdbarch, python_language): New global variables. (struct python_env): New data type. (ensure_python_env, restore_python_env): New functions. (eval_python_from_control_command): Call ensure_python_env to install current architecture and language. (python_command, gdbpy_new_objfile): Likewise. * python/python-cmd.c: Include "arch-utils.h" and "language.h". (cmdpy_destroyer, cmdpy_function, cmdpy_completer): Call ensure_python_env. * python/python-type.c (clean_up_objfile_types): Likewise. * python/python-objfile.c: Include "language.h". (clean_up_objfile): Call ensure_python_env. * python/python-prettyprint.c (apply_val_pretty_printer): Likewise. (apply_varobj_pretty_printer): Do not call PyGILState_Ensure. * varobj.c (varobj_ensure_python_env): New helper function. (varobj_get_display_hint, update_dynamic_varobj_children, install_default_visualizer, varobj_set_visualizer, free_variable, value_get_print_value): Call it. (value_get_print_value): Add varobj argument instead of pretty printer argument. Update all callers. * python/python-utils.c (py_gil_restore, make_cleanup_py_restore_gil): Remove. * value.h (internal_function_fn): Add GDBARCH and LANGUAGE argument. (call_internal_function): Likewise. * value.c (call_internal_function): Likewise. Pass to handler. * eval.c (evaluate_subexp_standard): Update call. * python/python-function.c: Include "language.h". (fnpy_call): Add GDBARCH and LANGAUAGE arguments and call make_cleanup_python_env. * python/python-value.c (builtin_type_pyint, builtin_type_pyfloat, builtin_type_pylong, builtin_type_pybool, builtin_type_pychar, valpy_str): Use python_gdbarch and python_language instead of current_gdbarch and current_language. * python/python-type.c (typy_lookup_typename): Likewise. --- gdb/python/python-value.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'gdb/python/python-value.c') diff --git a/gdb/python/python-value.c b/gdb/python/python-value.c index ebc15dc..d4353f7 100644 --- a/gdb/python/python-value.c +++ b/gdb/python/python-value.c @@ -44,19 +44,19 @@ struct value *values_in_python = NULL; GDB (which uses target arithmetic). */ /* Python's integer type corresponds to C's long type. */ -#define builtin_type_pyint builtin_type (current_gdbarch)->builtin_long +#define builtin_type_pyint builtin_type (python_gdbarch)->builtin_long /* Python's float type corresponds to C's double type. */ -#define builtin_type_pyfloat builtin_type (current_gdbarch)->builtin_double +#define builtin_type_pyfloat builtin_type (python_gdbarch)->builtin_double /* Python's long type corresponds to C's long long type. */ -#define builtin_type_pylong builtin_type (current_gdbarch)->builtin_long_long +#define builtin_type_pylong builtin_type (python_gdbarch)->builtin_long_long #define builtin_type_pybool \ - language_bool_type (current_language, current_gdbarch) + language_bool_type (python_language, python_gdbarch) #define builtin_type_pychar \ - language_string_char_type (current_language, current_gdbarch) + language_string_char_type (python_language, python_gdbarch) typedef struct { PyObject_HEAD @@ -333,7 +333,7 @@ valpy_str (PyObject *self) TRY_CATCH (except, RETURN_MASK_ALL) { common_val_print (((value_object *) self)->value, stb, 0, - &opts, current_language); + &opts, python_language); s = ui_file_xstrdup (stb, &dummy); } GDB_PY_HANDLE_EXCEPTION (except); -- cgit v1.1