Set varobj->path_expr in varobj_get_path_expr
authorSimon Marchi <simon.marchi@ericsson.com>
Fri, 30 Jan 2015 19:43:59 +0000 (14:43 -0500)
committerSimon Marchi <simon.marchi@ericsson.com>
Fri, 30 Jan 2015 19:43:59 +0000 (14:43 -0500)
commit2568868e69f710e470c8698a34010daf36500a30
tree221125e4d45d545ec01147f49d9add13733e302e
parentca83fa81892ab61870295cb5397c59daff1a55e0
Set varobj->path_expr in varobj_get_path_expr

It seems like different languages are doing this differently (e.g.
C and Ada). For C, var->path_expr is set inside c_path_expr_of_child.
The next time the value is requested, is it therefore not recomputed.
Ada does not set this field, but just returns the value. Since the field
is never set, the value is recomputed every time it is requested.

This patch makes it so that path_expr_of_child's only job is to compute
the path expression, not save/cache the value. The field is set by the
varobj common code.

gdb/ChangeLog:

* varobj.c (varobj_get_path_expr): Set var->path_expr.
* c-varobj.c (c_path_expr_of_child): Set local var instead of
child->path_expr.
(cplus_path_expr_of_child): Same.
gdb/ChangeLog
gdb/c-varobj.c
gdb/varobj.c