From d1cab9876d72d867b2de82688f5f5a2a4b655edb Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 15 Sep 2020 11:08:56 -0600 Subject: Don't use gdb_py_long_from_ulongest Remove the gdb_py_long_from_ulongest defines and change the Python layer to prefer gdb_py_object_from_ulongest. While writing this I noticed that the error handling in archpy_disassemble was incorrect -- it could call PyDict_SetItemString with a NULL value. This patch also fixes this bug. gdb/ChangeLog 2020-09-15 Tom Tromey * python/python-internal.h (gdb_py_long_from_ulongest): Remove defines. * python/py-value.c (valpy_long): Use gdb_py_object_from_ulongest. * python/py-symtab.c (salpy_get_pc): Use gdb_py_object_from_ulongest. (salpy_get_last): Likewise. * python/py-record-btrace.c (recpy_bt_insn_pc): Use gdb_py_object_from_ulongest. * python/py-lazy-string.c (stpy_get_address): Use gdb_py_object_from_ulongest. * python/py-frame.c (frapy_pc): Use gdb_py_object_from_ulongest. * python/py-arch.c (archpy_disassemble): Use gdb_py_object_from_ulongest and gdb_py_object_from_longest. Fix error handling. --- gdb/python/python-internal.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'gdb/python/python-internal.h') diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index b93c78f..2c4195f 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -126,7 +126,6 @@ #define GDB_PY_LLU_ARG "K" typedef PY_LONG_LONG gdb_py_longest; typedef unsigned PY_LONG_LONG gdb_py_ulongest; -#define gdb_py_long_from_ulongest PyLong_FromUnsignedLongLong #define gdb_py_long_as_ulongest PyLong_AsUnsignedLongLong #else /* HAVE_LONG_LONG */ @@ -135,7 +134,6 @@ typedef unsigned PY_LONG_LONG gdb_py_ulongest; #define GDB_PY_LLU_ARG "K" typedef long gdb_py_longest; typedef unsigned long gdb_py_ulongest; -#define gdb_py_long_from_ulongest PyLong_FromUnsignedLong #define gdb_py_long_as_ulongest PyLong_AsUnsignedLong #endif /* HAVE_LONG_LONG */ -- cgit v1.1