Philippe Mathieu-Daudé <philmd(a)redhat.com> writes:
On 10/26/21 11:46, Markus Armbruster wrote:
> Philippe Mathieu-Daudé <philmd(a)redhat.com> writes:
>
>> On 10/25/21 07:25, Markus Armbruster wrote:
>>> The code to check policy for handling deprecated input is triplicated.
>>> Factor it out into compat_policy_input_ok() before I mess with it in
>>> the next commit.
>>>
>>> Signed-off-by: Markus Armbruster <armbru(a)redhat.com>
>>> ---
>>> include/qapi/compat-policy.h | 7 +++++
>>> qapi/qapi-visit-core.c | 18 +++++--------
>>> qapi/qmp-dispatch.c | 51 +++++++++++++++++++++++++++---------
>>> qapi/qobject-input-visitor.c | 19 +++-----------
>>> 4 files changed, 55 insertions(+), 40 deletions(-)
>>
>>> diff --git a/qapi/qmp-dispatch.c b/qapi/qmp-dispatch.c
>>> index 8cca18c891..e29ade134c 100644
>>> --- a/qapi/qmp-dispatch.c
>>> +++ b/qapi/qmp-dispatch.c
>>> @@ -28,6 +28,40 @@
>>>
>>> CompatPolicy compat_policy;
>>>
>>> +static bool compat_policy_input_ok1(const char *adjective,
>>> + CompatPolicyInput policy,
>>> + ErrorClass error_class,
>>> + const char *kind, const char *name,
>>> + Error **errp)
>>> +{
>>> + switch (policy) {
>>> + case COMPAT_POLICY_INPUT_ACCEPT:
>>> + return true;
>>> + case COMPAT_POLICY_INPUT_REJECT:
>>> + error_set(errp, error_class, "%s %s %s disabled by
policy",
>>> + adjective, kind, name);
>>> + return false;
>>> + case COMPAT_POLICY_INPUT_CRASH:
>>> + default:
>>> + abort();
>>
>> g_assert_not_reached() provides a nicer user experience.
>
> I find it hard to care for making the experience of a crash that should
> never ever happen nicer :)
Well COMPAT_POLICY_INPUT_CRASH can happen... What about:
Point.
case COMPAT_POLICY_INPUT_CRASH:
error_printf("%s %s %s disabled by policy",
adjective, kind, name);
abort();
default:
g_assert_not_reached();
Separate patch. I'd prefer to delay it a bit, to avoid rocking the boat
so close to the soft freeze.