gdb: pass/return setting setter/getter scalar values by value
authorSimon Marchi <simon.marchi@polymtl.ca>
Sun, 31 Oct 2021 16:02:03 +0000 (12:02 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Thu, 4 Nov 2021 19:48:57 +0000 (15:48 -0400)
commitfcef6471ed3c07d6eac2d9e0010552994f0891aa
tree22738befcaa3ea4f3f4533b733fe5a2ae17ca5bf
parent7ead06a8b65ef038abd65344ff6aea76054ea1d5
gdb: pass/return setting setter/getter scalar values by value

The getter and setter in struct setting always receive and return values
by const reference.  This is not necessary for scalar values (like bool
and int), but more importantly it makes it a bit annoying to write a
getter, you have to use a scratch static variable or something similar
that you can refer to:

  const bool &
  my_getter ()
  {
    static bool value;
    value = function_returning_bool ();
    return value;
  }

Change the getter and setter function signatures to receive and return
value by value instead of by reference, when the underlying data type is
scalar.  This means that string-based settings will still use
references, but all others will be by value.  The getter above would
then be re-written as:

  bool
  my_getter ()
  {
    return function_returning_bool ();
  }

This is useful for a patch later in this series that defines a boolean
setting with a getter and a setter.

Change-Id: Ieca3a2419fcdb75a6f75948b2c920b548a0af0fd
gdb/cli/cli-decode.c
gdb/command.h
gdb/remote.c