* python/python-value.c (value_object_methods)
(value_object_as_number, value_object_as_mapping): Move to bottom of file. (valpy_dealloc, valpy_new, valpy_length, valpy_getitem) (valpy_setitem, valpy_str, valpy_add, valpy_subtract) (valpy_multiply, valpy_divide, valpy_remainder, valpy_power) (valpy_negative, valpy_positive, valpy_absolute, valpy_nonzero) (valpy_richcompare, valpy_dereference): Don't forward-declare. (valpy_length) [HAVE_LIBPYTHON2_4]: Change return type to `int'.
This commit is contained in:
parent
f177e35094
commit
f9176c46a1
2 changed files with 73 additions and 78 deletions
|
@ -1,3 +1,15 @@
|
||||||
|
2008-10-19 Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
|
* python/python-value.c (value_object_methods)
|
||||||
|
(value_object_as_number, value_object_as_mapping): Move to bottom
|
||||||
|
of file.
|
||||||
|
(valpy_dealloc, valpy_new, valpy_length, valpy_getitem)
|
||||||
|
(valpy_setitem, valpy_str, valpy_add, valpy_subtract)
|
||||||
|
(valpy_multiply, valpy_divide, valpy_remainder, valpy_power)
|
||||||
|
(valpy_negative, valpy_positive, valpy_absolute, valpy_nonzero)
|
||||||
|
(valpy_richcompare, valpy_dereference): Don't forward-declare.
|
||||||
|
(valpy_length) [HAVE_LIBPYTHON2_4]: Change return type to `int'.
|
||||||
|
|
||||||
2008-10-18 Pedro Alves <pedro@codesourcery.com>
|
2008-10-18 Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
* infrun.c (adjust_pc_after_break): Do nothing if executing in
|
* infrun.c (adjust_pc_after_break): Do nothing if executing in
|
||||||
|
|
|
@ -57,84 +57,6 @@ typedef struct {
|
||||||
int owned_by_gdb;
|
int owned_by_gdb;
|
||||||
} value_object;
|
} value_object;
|
||||||
|
|
||||||
static void valpy_dealloc (PyObject *obj);
|
|
||||||
static PyObject *valpy_new (PyTypeObject *subtype, PyObject *args,
|
|
||||||
PyObject *keywords);
|
|
||||||
static Py_ssize_t valpy_length (PyObject *self);
|
|
||||||
static PyObject *valpy_getitem (PyObject *self, PyObject *key);
|
|
||||||
static int valpy_setitem (PyObject *self, PyObject *key, PyObject *value);
|
|
||||||
static PyObject *valpy_str (PyObject *self);
|
|
||||||
static PyObject *valpy_add (PyObject *self, PyObject *other);
|
|
||||||
static PyObject *valpy_subtract (PyObject *self, PyObject *other);
|
|
||||||
static PyObject *valpy_multiply (PyObject *self, PyObject *other);
|
|
||||||
static PyObject *valpy_divide (PyObject *self, PyObject *other);
|
|
||||||
static PyObject *valpy_remainder (PyObject *self, PyObject *other);
|
|
||||||
static PyObject *valpy_power (PyObject *self, PyObject *other, PyObject *unused);
|
|
||||||
static PyObject *valpy_negative (PyObject *self);
|
|
||||||
static PyObject *valpy_positive (PyObject *self);
|
|
||||||
static PyObject *valpy_absolute (PyObject *self);
|
|
||||||
static int valpy_nonzero (PyObject *self);
|
|
||||||
static PyObject *valpy_richcompare (PyObject *self, PyObject *other, int op);
|
|
||||||
static PyObject *valpy_dereference (PyObject *self, PyObject *args);
|
|
||||||
|
|
||||||
static PyMethodDef value_object_methods[] = {
|
|
||||||
{ "dereference", valpy_dereference, METH_NOARGS, "Dereferences the value." },
|
|
||||||
{NULL} /* Sentinel */
|
|
||||||
};
|
|
||||||
|
|
||||||
static PyNumberMethods value_object_as_number = {
|
|
||||||
valpy_add,
|
|
||||||
valpy_subtract,
|
|
||||||
valpy_multiply,
|
|
||||||
valpy_divide,
|
|
||||||
valpy_remainder,
|
|
||||||
NULL, /* nb_divmod */
|
|
||||||
valpy_power, /* nb_power */
|
|
||||||
valpy_negative, /* nb_negative */
|
|
||||||
valpy_positive, /* nb_positive */
|
|
||||||
valpy_absolute, /* nb_absolute */
|
|
||||||
valpy_nonzero /* nb_nonzero */
|
|
||||||
};
|
|
||||||
|
|
||||||
static PyMappingMethods value_object_as_mapping = {
|
|
||||||
valpy_length,
|
|
||||||
valpy_getitem,
|
|
||||||
valpy_setitem
|
|
||||||
};
|
|
||||||
|
|
||||||
PyTypeObject value_object_type = {
|
|
||||||
PyObject_HEAD_INIT (NULL)
|
|
||||||
0, /*ob_size*/
|
|
||||||
"gdb.Value", /*tp_name*/
|
|
||||||
sizeof (value_object), /*tp_basicsize*/
|
|
||||||
0, /*tp_itemsize*/
|
|
||||||
valpy_dealloc, /*tp_dealloc*/
|
|
||||||
0, /*tp_print*/
|
|
||||||
0, /*tp_getattr*/
|
|
||||||
0, /*tp_setattr*/
|
|
||||||
0, /*tp_compare*/
|
|
||||||
0, /*tp_repr*/
|
|
||||||
&value_object_as_number, /*tp_as_number*/
|
|
||||||
0, /*tp_as_sequence*/
|
|
||||||
&value_object_as_mapping, /*tp_as_mapping*/
|
|
||||||
0, /*tp_hash */
|
|
||||||
0, /*tp_call*/
|
|
||||||
valpy_str, /*tp_str*/
|
|
||||||
0, /*tp_getattro*/
|
|
||||||
0, /*tp_setattro*/
|
|
||||||
0, /*tp_as_buffer*/
|
|
||||||
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_CHECKTYPES, /*tp_flags*/
|
|
||||||
"GDB value object", /* tp_doc */
|
|
||||||
0, /* tp_traverse */
|
|
||||||
0, /* tp_clear */
|
|
||||||
valpy_richcompare, /* tp_richcompare */
|
|
||||||
0, /* tp_weaklistoffset */
|
|
||||||
0, /* tp_iter */
|
|
||||||
0, /* tp_iternext */
|
|
||||||
value_object_methods /* tp_methods */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* Called by the Python interpreter when deallocating a value object. */
|
/* Called by the Python interpreter when deallocating a value object. */
|
||||||
static void
|
static void
|
||||||
valpy_dealloc (PyObject *obj)
|
valpy_dealloc (PyObject *obj)
|
||||||
|
@ -206,7 +128,11 @@ valpy_dereference (PyObject *self, PyObject *args)
|
||||||
return value_to_value_object (res_val);
|
return value_to_value_object (res_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_LIBPYTHON2_4
|
||||||
|
static int
|
||||||
|
#else
|
||||||
static Py_ssize_t
|
static Py_ssize_t
|
||||||
|
#endif
|
||||||
valpy_length (PyObject *self)
|
valpy_length (PyObject *self)
|
||||||
{
|
{
|
||||||
/* We don't support getting the number of elements in a struct / class. */
|
/* We don't support getting the number of elements in a struct / class. */
|
||||||
|
@ -686,4 +612,61 @@ gdbpy_initialize_values (void)
|
||||||
values_in_python = NULL;
|
values_in_python = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyMethodDef value_object_methods[] = {
|
||||||
|
{ "dereference", valpy_dereference, METH_NOARGS, "Dereferences the value." },
|
||||||
|
{NULL} /* Sentinel */
|
||||||
|
};
|
||||||
|
|
||||||
|
static PyNumberMethods value_object_as_number = {
|
||||||
|
valpy_add,
|
||||||
|
valpy_subtract,
|
||||||
|
valpy_multiply,
|
||||||
|
valpy_divide,
|
||||||
|
valpy_remainder,
|
||||||
|
NULL, /* nb_divmod */
|
||||||
|
valpy_power, /* nb_power */
|
||||||
|
valpy_negative, /* nb_negative */
|
||||||
|
valpy_positive, /* nb_positive */
|
||||||
|
valpy_absolute, /* nb_absolute */
|
||||||
|
valpy_nonzero /* nb_nonzero */
|
||||||
|
};
|
||||||
|
|
||||||
|
static PyMappingMethods value_object_as_mapping = {
|
||||||
|
valpy_length,
|
||||||
|
valpy_getitem,
|
||||||
|
valpy_setitem
|
||||||
|
};
|
||||||
|
|
||||||
|
PyTypeObject value_object_type = {
|
||||||
|
PyObject_HEAD_INIT (NULL)
|
||||||
|
0, /*ob_size*/
|
||||||
|
"gdb.Value", /*tp_name*/
|
||||||
|
sizeof (value_object), /*tp_basicsize*/
|
||||||
|
0, /*tp_itemsize*/
|
||||||
|
valpy_dealloc, /*tp_dealloc*/
|
||||||
|
0, /*tp_print*/
|
||||||
|
0, /*tp_getattr*/
|
||||||
|
0, /*tp_setattr*/
|
||||||
|
0, /*tp_compare*/
|
||||||
|
0, /*tp_repr*/
|
||||||
|
&value_object_as_number, /*tp_as_number*/
|
||||||
|
0, /*tp_as_sequence*/
|
||||||
|
&value_object_as_mapping, /*tp_as_mapping*/
|
||||||
|
0, /*tp_hash */
|
||||||
|
0, /*tp_call*/
|
||||||
|
valpy_str, /*tp_str*/
|
||||||
|
0, /*tp_getattro*/
|
||||||
|
0, /*tp_setattro*/
|
||||||
|
0, /*tp_as_buffer*/
|
||||||
|
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_CHECKTYPES, /*tp_flags*/
|
||||||
|
"GDB value object", /* tp_doc */
|
||||||
|
0, /* tp_traverse */
|
||||||
|
0, /* tp_clear */
|
||||||
|
valpy_richcompare, /* tp_richcompare */
|
||||||
|
0, /* tp_weaklistoffset */
|
||||||
|
0, /* tp_iter */
|
||||||
|
0, /* tp_iternext */
|
||||||
|
value_object_methods /* tp_methods */
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* HAVE_PYTHON */
|
#endif /* HAVE_PYTHON */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue