mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-12-15 08:08:55 +00:00
2010-05-14 Phil Muldoon <pmuldoon@redhat.com>
PR python/11482 * python/py-value.c (valpy_hash): New function. (value_object_type): Register valpy_hash. 2010-05-14 Phil Muldoon <pmuldoon@redhat.com> PR python/11482 * gdb.python/py-value.exp (test_value_hash): New function
This commit is contained in:
parent
af47dcbf0d
commit
88d4aea747
@ -1,3 +1,10 @@
|
||||
2010-05-14 Phil Muldoon <pmuldoon@redhat.com>
|
||||
|
||||
PR python/11482
|
||||
|
||||
* python/py-value.c (valpy_hash): New function.
|
||||
(value_object_type): Register valpy_hash.
|
||||
|
||||
2010-05-14 Hui Zhu <teawater@gmail.com>
|
||||
Michael Snyder <msnyder@vmware.com>
|
||||
|
||||
|
@ -432,6 +432,14 @@ valpy_get_is_optimized_out (PyObject *self, void *closure)
|
||||
Py_RETURN_FALSE;
|
||||
}
|
||||
|
||||
/* Calculate and return the address of the PyObject as the value of
|
||||
the builtin __hash__ call. */
|
||||
static long
|
||||
valpy_hash (PyObject *self)
|
||||
{
|
||||
return (long) (intptr_t) self;
|
||||
}
|
||||
|
||||
enum valpy_opcode
|
||||
{
|
||||
VALPY_ADD,
|
||||
@ -1097,7 +1105,7 @@ PyTypeObject value_object_type = {
|
||||
&value_object_as_number, /*tp_as_number*/
|
||||
0, /*tp_as_sequence*/
|
||||
&value_object_as_mapping, /*tp_as_mapping*/
|
||||
0, /*tp_hash */
|
||||
valpy_hash, /*tp_hash*/
|
||||
0, /*tp_call*/
|
||||
valpy_str, /*tp_str*/
|
||||
0, /*tp_getattro*/
|
||||
|
@ -1,3 +1,9 @@
|
||||
2010-05-14 Phil Muldoon <pmuldoon@redhat.com>
|
||||
|
||||
PR python/11482
|
||||
|
||||
* gdb.python/py-value.exp (test_value_hash): New function.
|
||||
|
||||
2010-05-11 Pierre Muller <muller@ics.u-strasbg.fr>
|
||||
|
||||
PR exp/11530.
|
||||
|
@ -393,6 +393,23 @@ proc test_parse_and_eval {} {
|
||||
"parse_and_eval type test"
|
||||
}
|
||||
|
||||
# Test that values are hashable.
|
||||
proc test_value_hash {} {
|
||||
gdb_py_test_multiple "Simple Python value dictionary" \
|
||||
"python" "" \
|
||||
"one = gdb.Value(1)" "" \
|
||||
"two = gdb.Value(2)" "" \
|
||||
"three = gdb.Value(3)" "" \
|
||||
"vdict = {one:\"one str\",two:\"two str\",three:\"three str\"}" "" \
|
||||
"end"
|
||||
gdb_test "python print vdict\[one\]" "one str" "Test dictionary hash"
|
||||
gdb_test "python print vdict\[two\]" "two str" "Test dictionary hash"
|
||||
gdb_test "python print vdict\[three\]" "three str" "Test dictionary hash"
|
||||
gdb_test "python print one.__hash__() == hash(one)" "True" "Test inbuilt hash"
|
||||
gdb_test "python print one.__hash__() == id(one)" "True" "Test inbuilt id"
|
||||
}
|
||||
|
||||
|
||||
# Start with a fresh gdb.
|
||||
|
||||
gdb_exit
|
||||
@ -409,6 +426,7 @@ test_value_boolean
|
||||
test_value_compare
|
||||
test_objfiles
|
||||
test_parse_and_eval
|
||||
test_value_hash
|
||||
|
||||
# The following tests require execution.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user