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.
This commit is contained in:
Siva Chandra 2014-06-04 10:50:11 -07:00
parent d9949a3673
commit 5a6c770930
3 changed files with 34 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2014-06-10 Siva Chandra Reddy <sivachandra@google.com>
* 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 <brobecker@adacore.com>
* serial.c (serial_write): Fix index of character to be printed

View File

@ -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;

View File

@ -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"