mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
physmem: Simplify dirty memory type checks with loop
In physical_memory_range_includes_clean(), we have three nearly identical if-statements checking different DIRTY_MEMORY types (VGA, CODE, MIGRATION). This code duplication makes maintenance harder and increases the risk of inconsistencies when adding new dirty memory types. Replace the repetitive checks with a simple loop that iterates through all DIRTY_MEMORY_NUM types, checking only those specified in the mask. This reduces code size and makes it easier to add new dirty memory types in the future. Signed-off-by: Bin Guo <guobin@linux.alibaba.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20260401100005.20651-1-guobin@linux.alibaba.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
committed by
Philippe Mathieu-Daudé
parent
46cd2c1050
commit
bf7ce99494
@@ -981,17 +981,11 @@ uint8_t physical_memory_range_includes_clean(ram_addr_t start,
|
||||
{
|
||||
uint8_t ret = 0;
|
||||
|
||||
if (mask & (1 << DIRTY_MEMORY_VGA) &&
|
||||
!physical_memory_all_dirty(start, length, DIRTY_MEMORY_VGA)) {
|
||||
ret |= (1 << DIRTY_MEMORY_VGA);
|
||||
}
|
||||
if (mask & (1 << DIRTY_MEMORY_CODE) &&
|
||||
!physical_memory_all_dirty(start, length, DIRTY_MEMORY_CODE)) {
|
||||
ret |= (1 << DIRTY_MEMORY_CODE);
|
||||
}
|
||||
if (mask & (1 << DIRTY_MEMORY_MIGRATION) &&
|
||||
!physical_memory_all_dirty(start, length, DIRTY_MEMORY_MIGRATION)) {
|
||||
ret |= (1 << DIRTY_MEMORY_MIGRATION);
|
||||
for (int i = 0; i < DIRTY_MEMORY_NUM; i++) {
|
||||
if ((mask & (1 << i)) &&
|
||||
!physical_memory_all_dirty(start, length, i)) {
|
||||
ret |= (1 << i);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user