Fix ext lang calls to value_struct_elt

Message ID 001a11405eae5bc7d80540698d1d@google.com
State New, archived
Headers

Commit Message

Doug Evans Nov. 3, 2016, 6:16 p.m. UTC
  Hi.

I found this while reading the code.

2016-11-03  Doug Evans  <dje@google.com>

	* guile/scm-value.c (gdbscm_value_field): Fix call to value_struct_elt.
	* python/py-value.c (valpy_getitem): Ditto.
  

Comments

Yao Qi Nov. 3, 2016, 8:59 p.m. UTC | #1
On Thu, Nov 03, 2016 at 06:16:10PM +0000, Doug Evans wrote:
> Hi.
> 
> I found this while reading the code.
> 
> 2016-11-03  Doug Evans  <dje@google.com>
> 
> 	* guile/scm-value.c (gdbscm_value_field): Fix call to value_struct_elt.
> 	* python/py-value.c (valpy_getitem): Ditto.
>

Patch is good to me.
  
Doug Evans Nov. 7, 2016, 9:32 p.m. UTC | #2
On Thu, Nov 3, 2016 at 1:59 PM, Yao Qi <qiyaoltc@gmail.com> wrote:
> On Thu, Nov 03, 2016 at 06:16:10PM +0000, Doug Evans wrote:
>> Hi.
>>
>> I found this while reading the code.
>>
>> 2016-11-03  Doug Evans  <dje@google.com>
>>
>>       * guile/scm-value.c (gdbscm_value_field): Fix call to value_struct_elt.
>>       * python/py-value.c (valpy_getitem): Ditto.
>>
>
> Patch is good to me.

Committed, thanks.
  

Patch

diff --git a/gdb/guile/scm-value.c b/gdb/guile/scm-value.c
index 1cdf953..416e488 100644
--- a/gdb/guile/scm-value.c
+++ b/gdb/guile/scm-value.c
@@ -726,7 +726,8 @@  gdbscm_value_field (SCM self, SCM field_scm)
      {
        struct value *tmp = value;

-      res_val = value_struct_elt (&tmp, NULL, field, NULL, NULL);
+      res_val = value_struct_elt (&tmp, NULL, field, NULL,
+				  "struct/class/union");
      }
    CATCH (except, RETURN_MASK_ALL)
      {
diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c
index 46683b8..f8bf17a 100644
--- a/gdb/python/py-value.c
+++ b/gdb/python/py-value.c
@@ -754,7 +754,8 @@  valpy_getitem (PyObject *self, PyObject *key)
        struct value *res_val = NULL;

        if (field)
-	res_val = value_struct_elt (&tmp, NULL, field, 0, NULL);
+	res_val = value_struct_elt (&tmp, NULL, field, NULL,
+				    "struct/class/union");
        else if (bitpos >= 0)
  	res_val = value_struct_elt_bitpos (&tmp, bitpos, field_type,
  					   "struct/class/union");