diff options
author | 2021-01-02 15:08:44 -0500 | |
---|---|---|
committer | 2021-01-02 15:08:44 -0500 | |
commit | 78f93a270c2b8d013128a2a346bdf0b8f98700d9 (patch) | |
tree | 973ac52008030097a75cf2b6c510a733a2b7ce99 /src/lib/util/palette.cpp | |
parent | 1944eded0db72a3bee702f4ec3eb47ece8b70e94 (diff) |
palette.cpp: Use std::fill instead of memset for dirty vector; add range check
Diffstat (limited to 'src/lib/util/palette.cpp')
-rw-r--r-- | src/lib/util/palette.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lib/util/palette.cpp b/src/lib/util/palette.cpp index 59a63b2c8f5..b649b4cf46d 100644 --- a/src/lib/util/palette.cpp +++ b/src/lib/util/palette.cpp @@ -77,7 +77,7 @@ void palette_client::dirty_state::resize(uint32_t colors) // resize to the correct number of dwords and mark all entries dirty uint32_t dirty_dwords = (colors + 31) / 32; m_dirty.resize(dirty_dwords); - memset(&m_dirty[0], 0xff, dirty_dwords*4); + std::fill(m_dirty.begin(), m_dirty.end(), ~uint32_t(0)); // mark all entries dirty m_dirty[dirty_dwords - 1] &= (1 << (colors % 32)) - 1; @@ -108,7 +108,8 @@ void palette_client::dirty_state::mark_dirty(uint32_t index) void palette_client::dirty_state::reset() { // erase relevant entries in the new live one - memset(&m_dirty[m_mindirty / 32], 0, ((m_maxdirty / 32) + 1 - (m_mindirty / 32)) * sizeof(uint32_t)); + if (m_mindirty <= m_maxdirty) + std::fill(&m_dirty[m_mindirty / 32], &m_dirty[(m_maxdirty / 32) + 1], 0); m_mindirty = m_dirty.size() * 32 - 1; m_maxdirty = 0; } |