From 5a6c770930a54585c6d4bd9257ce7636b469d7c1 Mon Sep 17 00:00:00 2001 From: Siva Chandra Date: Wed, 4 Jun 2014 10:50:11 -0700 Subject: [PATCH] Wrap PyObject_Get/HasAttrString in a function with second arg having const qualifier. This is done to avoid errors when compiled with -Werror against Python-2.4 which did not have the const qualifier for the second argument of these functions. gdb/ * python/python-internal.h (gdb_PyObject_GetAttrString) (gdb_PyObject_HasAttrString): New inline function definitions. * py-value.c (get_field_flag): Remove the now unnecessary cast to char * of the second argument to PyObject_GetAttrString. --- gdb/ChangeLog | 7 +++++++ gdb/python/py-value.c | 3 +-- gdb/python/python-internal.h | 26 ++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 61464c8..9fd45e0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2014-06-10 Siva Chandra Reddy + + * python/python-internal.h (gdb_PyObject_GetAttrString) + (gdb_PyObject_HasAttrString): New inline function definitions. + * py-value.c (get_field_flag): Remove the now unnecessary cast to + char * of the second argument to PyObject_GetAttrString. + 2014-06-10 Joel Brobecker * serial.c (serial_write): Fix index of character to be printed diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c index 54da67a..8532da6 100644 --- a/gdb/python/py-value.c +++ b/gdb/python/py-value.c @@ -554,8 +554,7 @@ static int get_field_flag (PyObject *field, const char *flag_name) { int flag_value; - /* Python 2.4 did not have a 'const' here. */ - PyObject *flag_object = PyObject_GetAttrString (field, (char *) flag_name); + PyObject *flag_object = PyObject_GetAttrString (field, flag_name); if (flag_object == NULL) return -1; diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index 9c06621..0198e9d 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -187,6 +187,32 @@ gdb_Py_DECREF (void *op) /* ARI: editCase function */ #undef Py_DECREF #define Py_DECREF(op) gdb_Py_DECREF (op) +/* The second argument to PyObject_GetAttrString was missing the 'const' + qualifier in Python-2.4. Hence, we wrap it in a function to avoid errors + when compiled with -Werror. */ + +static inline PyObject * +gdb_PyObject_GetAttrString (PyObject *obj, + const char *attr) /* ARI: editCase function */ +{ + return PyObject_GetAttrString (obj, (char *) attr); +} + +#define PyObject_GetAttrString(obj, attr) gdb_PyObject_GetAttrString (obj, attr) + +/* The second argument to PyObject_HasAttrString was also missing the 'const' + qualifier in Python-2.4. Hence, we wrap it also in a function to avoid + errors when compiled with -Werror. */ + +static inline int +gdb_PyObject_HasAttrString (PyObject *obj, + const char *attr) /* ARI: editCase function */ +{ + return PyObject_HasAttrString (obj, (char *) attr); +} + +#define PyObject_HasAttrString(obj, attr) gdb_PyObject_HasAttrString (obj, attr) + /* In order to be able to parse symtab_and_line_to_sal_object function a real symtab_and_line structure is needed. */ #include "symtab.h" -- 2.7.4