This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
The attached patch addresses all of Tom's comments except two for which I have responses below: Tom> What about TYPE_CODE_UNION and TYPE_CODE_RANGE? Tom> Offhand I don't recall if other types present "fields". Tom> Maybe TYPE_CODE_FUNC? TYPE_CODE_COMPLEX? I missed TYPE_CODE_UNION so I have added it in the attached patch. The other types do not support the "fields" method. [But, is it a mistake that we do not support fields for other methods? The documentation does talk about ranges, functions and methods. At this point, I am tempted to ask as to why we should "overload" the method "fields" to return function/method args? Can we bring in a class hierarchy of types where in gdb.Type exists as a base class, and gdb.TypeStruct, gdb.TypeFunction etc. are derived from it. That way, we can add relevant methods to the respective classes. For example, gdb.TypeFunction will have "args" as a method and not "fields". I understand the notion of fields is overloaded internally, but we could make the Python API clearer.] Siva> + arg = type_to_type_object (type); Siva> + if (arg == NULL) Siva> + goto fail; Tom> I think if TYPE is not a gdb.Type then this will return -1 without Tom> setting the Python exception. The above comment is for the change in py-type.c. The variable TYPE in question here is "struct type" and not gdb.Type. I think type_to_type_object would return NULL only if PyObject_New called in it fails. Is an exception not set by PyObject_New on failure? 2013-12-11 Siva Chandra Reddy <sivachandra@google.com> PR 16113: Allow gdb.Field objects with the subscript operator on gdb.Value objects of struct/class values. * NEWS (Python Scripting): Add entry for the new feature and the new attribute of gdb.Field objects. * python/py-type.c (gdbpy_is_field): New function (convert_field): Add 'parent_type' attribute to gdb.Field objects. * python/py-value.c (valpy_getitem): Allow subscript value to be a gdb.Field object. (value_has_field): New function (get_field_flag): New function * python/python-internal.h (gdbpy_is_field): Add declaration. testsuite/ * gdb.python/py-value-cc.cc: Improve test case. * gdb.python/py-value-cc.exp: Add new tests. doc/ * gdb.texinfo (Values From Inferior): Add a note about using gdb.Field objects as subscripts on gdb.Value objects. (Types In Python): Add description about the new attribute of gdb.Field objects.
Attachment:
value_field_subscript_patch_v3.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |