gdb/
authorPedro Alves <palves@redhat.com>
Fri, 6 Feb 2009 22:50:52 +0000 (22:50 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 6 Feb 2009 22:50:52 +0000 (22:50 +0000)
commit5f5233d48e4aca803bda1339f5645c6f6b144dcf
treee81a888ae30e78ac1e5e1ca78cba03743d269d4b
parent117de6a92498c0dd715fa0fdec577697433f3c5e
gdb/
2009-02-06  Jim Blandy  <jimb@codesourcery.com>
    Daniel Jacobowitz  <dan@codesourcery.com>
    Vladimir Prus  <vladimir@codesourcery.com>
    Pedro Alves  <pedro@codesourcery.com>

* defs.h (enum lval_type): New value: lval_computed.
* value.h (struct lval_funcs): New type.
(allocate_computed_value, value_computed_funcs)
(value_computed_closure): New declarations.
* value.c (struct value): Add a structure to the location union
for computed lvalues, containing 'funcs' and 'closure' members.
(allocate_computed_value, value_computed_funcs)
(value_computed_closure): New functions.
(value_free): For computed lvalues, call the closure's
'free_closure' function before freeing the value itself.
(value_copy): If we're copying an lval_computed value, call the
closure's 'copy_closure' function.
(set_value_component_location): If the original value is a
computed lvalue, then call the closure's 'copy_closure' function.
(value_of_internalvar): If an internal variable's value is a
computed lvalue, make retrieving its value produce an equivalent
computed lvalue.
* valops.c (value_fetch_lazy): Unlazy computed lvalues by calling
their read function.
(value_assign): Assign to computed lvalues by calling their write
function.

gdb/doc/
2009-02-06  Pedro Alves  <pedro@codesourcery.com>

* gdbint.texinfo (Values): New chapter.
gdb/ChangeLog
gdb/defs.h
gdb/doc/ChangeLog
gdb/doc/gdbint.texinfo
gdb/valops.c
gdb/value.c
gdb/value.h