py-breakpoint: Don't use the 'p' PyArg_ParseTupleAndKeywords format specifier
authorSimon Marchi <simon.marchi@ericsson.com>
Thu, 14 Dec 2017 20:46:47 +0000 (15:46 -0500)
committerSimon Marchi <simon.marchi@ericsson.com>
Thu, 14 Dec 2017 20:46:47 +0000 (15:46 -0500)
commit8e557e52b3fd45a56fb42dbbaad3d6ece3694eb4
tree46bd230fc06d345edc7b9669bd0c07554836c8ff
parent863f7a5f4811c24d9a5863ffb541ff3da1511450
py-breakpoint: Don't use the 'p' PyArg_ParseTupleAndKeywords format specifier

In Python 3, the 'p' format specifier can be passed to
PyArg_ParseTupleAndKeywords to test the argument for truth and convert
it to a boolean value (the p stands for predicate).  However, it is not
available in Python 2, causing this error:

  Traceback (most recent call last):
    File "test.py", line 1, in <module>
      b1 = gdb.Breakpoint("foo", qualified=False)
  TypeError: argument 10 (impossible<bad format char>)

This patch changes it to the 'O' specifier, which returns the Python
object passed in without transformation, and uses PyObject_IsTrue on it.
This is what is done for the other boolean parameters of this function
(internal and temporary).

This fixes the test gdb.python/py-breakpoint.exp for Python 2.

gdb/ChangeLog:

* python/py-breakpoint.c (bppy_init): Use 'O' format specifier
for "qualified" and use PyObject_IsTrue.
gdb/ChangeLog
gdb/python/py-breakpoint.c