qapi acpi: Elide redundant has_FOO in generated C

The has_FOO for pointer-valued FOO are redundant, except for arrays.
They are also a nuisance to work with.  Recent commit "qapi: Start to
elide redundant has_FOO in generated C" provided the means to elide
them step by step.  This is the step for qapi/acpi.py.

Said commit explains the transformation in more detail.  The invariant
violations mentioned there do not occur here.

Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Cc: Ani Sinha <ani@anisinha.ca>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20221104160712.3005652-7-armbru@redhat.com>
This commit is contained in:
Markus Armbruster 2022-11-04 17:06:48 +01:00
parent 4b2fc7dbc4
commit b94ba62fd4
4 changed files with 7 additions and 10 deletions

View File

@ -185,7 +185,7 @@ static void acpi_table_install(const char unsigned *blob, size_t bloblen,
changed_fields = 0; changed_fields = 0;
ext_hdr->_length = cpu_to_le16(acpi_payload_size); ext_hdr->_length = cpu_to_le16(acpi_payload_size);
if (hdrs->has_sig) { if (hdrs->sig) {
strncpy(ext_hdr->sig, hdrs->sig, sizeof ext_hdr->sig); strncpy(ext_hdr->sig, hdrs->sig, sizeof ext_hdr->sig);
++changed_fields; ++changed_fields;
} }
@ -204,11 +204,11 @@ static void acpi_table_install(const char unsigned *blob, size_t bloblen,
ext_hdr->checksum = 0; ext_hdr->checksum = 0;
if (hdrs->has_oem_id) { if (hdrs->oem_id) {
strncpy(ext_hdr->oem_id, hdrs->oem_id, sizeof ext_hdr->oem_id); strncpy(ext_hdr->oem_id, hdrs->oem_id, sizeof ext_hdr->oem_id);
++changed_fields; ++changed_fields;
} }
if (hdrs->has_oem_table_id) { if (hdrs->oem_table_id) {
strncpy(ext_hdr->oem_table_id, hdrs->oem_table_id, strncpy(ext_hdr->oem_table_id, hdrs->oem_table_id,
sizeof ext_hdr->oem_table_id); sizeof ext_hdr->oem_table_id);
++changed_fields; ++changed_fields;
@ -217,7 +217,7 @@ static void acpi_table_install(const char unsigned *blob, size_t bloblen,
ext_hdr->oem_revision = cpu_to_le32(hdrs->oem_rev); ext_hdr->oem_revision = cpu_to_le32(hdrs->oem_rev);
++changed_fields; ++changed_fields;
} }
if (hdrs->has_asl_compiler_id) { if (hdrs->asl_compiler_id) {
strncpy(ext_hdr->asl_compiler_id, hdrs->asl_compiler_id, strncpy(ext_hdr->asl_compiler_id, hdrs->asl_compiler_id,
sizeof ext_hdr->asl_compiler_id); sizeof ext_hdr->asl_compiler_id);
++changed_fields; ++changed_fields;
@ -255,12 +255,12 @@ void acpi_table_add(const QemuOpts *opts, Error **errp)
if (!hdrs) { if (!hdrs) {
goto out; goto out;
} }
if (hdrs->has_file == hdrs->has_data) { if (!hdrs->file == !hdrs->data) {
error_setg(errp, "'-acpitable' requires one of 'data' or 'file'"); error_setg(errp, "'-acpitable' requires one of 'data' or 'file'");
goto out; goto out;
} }
pathnames = g_strsplit(hdrs->has_file ? hdrs->file : hdrs->data, ":", 0); pathnames = g_strsplit(hdrs->file ?: hdrs->data, ":", 0);
if (pathnames == NULL || pathnames[0] == NULL) { if (pathnames == NULL || pathnames[0] == NULL) {
error_setg(errp, "'-acpitable' requires at least one pathname"); error_setg(errp, "'-acpitable' requires at least one pathname");
goto out; goto out;
@ -297,7 +297,7 @@ void acpi_table_add(const QemuOpts *opts, Error **errp)
close(fd); close(fd);
} }
acpi_table_install(blob, bloblen, hdrs->has_file, hdrs, errp); acpi_table_install(blob, bloblen, !!hdrs->file, hdrs, errp);
out: out:
g_free(blob); g_free(blob);

View File

@ -35,7 +35,6 @@ static ACPIOSTInfo *acpi_cpu_device_status(int idx, AcpiCpuStatus *cdev)
DeviceState *dev = DEVICE(cdev->cpu); DeviceState *dev = DEVICE(cdev->cpu);
if (dev->id) { if (dev->id) {
info->device = g_strdup(dev->id); info->device = g_strdup(dev->id);
info->has_device = true;
} }
} }
return info; return info;

View File

@ -44,7 +44,6 @@ static ACPIOSTInfo *acpi_memory_device_status(int slot, MemStatus *mdev)
DeviceState *dev = DEVICE(mdev->dimm); DeviceState *dev = DEVICE(mdev->dimm);
if (dev->id) { if (dev->id) {
info->device = g_strdup(dev->id); info->device = g_strdup(dev->id);
info->has_device = true;
} }
} }
return info; return info;

View File

@ -759,7 +759,6 @@ class QAPISchemaObjectTypeMember(QAPISchemaMember):
assert self.type assert self.type
# Temporary hack to support dropping the has_FOO in reviewable chunks # Temporary hack to support dropping the has_FOO in reviewable chunks
opt_out = [ opt_out = [
'qapi/acpi.json',
'qapi/audio.json', 'qapi/audio.json',
'qapi/block-core.json', 'qapi/block-core.json',
'qapi/block-export.json', 'qapi/block-export.json',