mirror of
https://gitlab.com/qemu-project/qemu.git
synced 2026-05-06 04:16:46 -04:00
vmstate: Stop checking size for nullptr compression
The NULL pointer marker code applies only to VMS_ARRAY_OF_POINTER, where the size is never NULL. Move the setting of is_null under VMS_ARRAY_OF_POINTER, so we can stop checking the size. Reviewed-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@futurfusion.io> Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Juraj Marcin <jmarcin@redhat.com> Link: https://lore.kernel.org/qemu-devel/20260401202844.673494-11-peterx@redhat.com Signed-off-by: Fabiano Rosas <farosas@suse.de>
This commit is contained in:
+3
-3
@@ -682,14 +682,14 @@ static bool vmstate_save_vmsd_v(QEMUFile *f, const VMStateDescription *vmsd,
|
||||
const VMStateField *inner_field;
|
||||
/* maximum number of elements to compress in the JSON blob */
|
||||
int max_elems = vmsd_can_compress(field) ? (n_elems - i) : 1;
|
||||
bool use_marker_field, is_null;
|
||||
bool use_marker_field, is_null = false;
|
||||
|
||||
if (field->flags & VMS_ARRAY_OF_POINTER) {
|
||||
assert(curr_elem);
|
||||
curr_elem = *(void **)curr_elem;
|
||||
is_null = !curr_elem;
|
||||
}
|
||||
|
||||
is_null = !curr_elem && size;
|
||||
use_marker_field = use_dynamic_array || is_null;
|
||||
|
||||
if (use_marker_field) {
|
||||
@@ -717,7 +717,7 @@ static bool vmstate_save_vmsd_v(QEMUFile *f, const VMStateDescription *vmsd,
|
||||
|
||||
for (int j = i + 1; j < n_elems; j++) {
|
||||
void *elem = *(void **)(first_elem + size * j);
|
||||
bool elem_is_null = !elem && size;
|
||||
bool elem_is_null = !elem;
|
||||
|
||||
if (is_null != elem_is_null) {
|
||||
max_elems = j - i;
|
||||
|
||||
Reference in New Issue
Block a user