From eb3e1316137af3b88ec4a7208eabc2a048607331 Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Tue, 19 Nov 2013 06:56:00 +0400 Subject: [PATCH] get rid of py-value.c:is_intlike (use is_integral_type instead) is_intlike was mostly duplicating is_integral_type, with the exception of the handling of TYPE_CODE_PTR when parameter PTR_OK is nonzero. This patches deletes the is_intlike function, using is_integral_type instead, and adjusting the two locations where this function gets called. The code should remain strictly equivalent. gdb/ChangeLog: * python/py-value.c (is_intlike): Delete. (valpy_int): Replace use of CHECK_TYPEDEF and is_intlike by use of is_integral_type. (valpy_long): Replace use of CHECK_TYPEDEF and is_intlike by use of is_integral_type and check for TYPE_CODE_PTR. --- gdb/python/py-value.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c index 451bfaf..95f9586 100644 --- a/gdb/python/py-value.c +++ b/gdb/python/py-value.c @@ -1129,18 +1129,6 @@ valpy_richcompare (PyObject *self, PyObject *other, int op) Py_RETURN_FALSE; } -/* Helper function to determine if a type is "int-like". */ -static int -is_intlike (struct type *type, int ptr_ok) -{ - return (TYPE_CODE (type) == TYPE_CODE_INT - || TYPE_CODE (type) == TYPE_CODE_ENUM - || TYPE_CODE (type) == TYPE_CODE_BOOL - || TYPE_CODE (type) == TYPE_CODE_CHAR - || TYPE_CODE (type) == TYPE_CODE_RANGE - || (ptr_ok && TYPE_CODE (type) == TYPE_CODE_PTR)); -} - #ifndef IS_PY3K /* Implements conversion to int. */ static PyObject * @@ -1153,8 +1141,7 @@ valpy_int (PyObject *self) TRY_CATCH (except, RETURN_MASK_ALL) { - CHECK_TYPEDEF (type); - if (!is_intlike (type, 0)) + if (!is_integral_type (type)) error (_("Cannot convert value to int.")); l = value_as_long (value); @@ -1176,9 +1163,8 @@ valpy_long (PyObject *self) TRY_CATCH (except, RETURN_MASK_ALL) { - CHECK_TYPEDEF (type); - - if (!is_intlike (type, 1)) + if (!is_integral_type (type) + && TYPE_CODE (type) != TYPE_CODE_PTR) error (_("Cannot convert value to long.")); l = value_as_long (value); -- 1.8.1.2