Эх сурвалжийг харах

memory: Fix cast for ReadBlock/WriteBlock/ZeroBlock/CopyBlock.

bunnei 8 жил өмнө
parent
commit
d4fb8a887c
1 өөрчлөгдсөн 8 нэмэгдсэн , 4 устгасан
  1. 8 4
      src/core/memory.cpp

+ 8 - 4
src/core/memory.cpp

@@ -439,7 +439,8 @@ void ReadBlock(const Kernel::Process& process, const VAddr src_addr, void* dest_
     size_t page_offset = src_addr & PAGE_MASK;
 
     while (remaining_size > 0) {
-        const size_t copy_amount = std::min(PAGE_SIZE - page_offset, remaining_size);
+        const size_t copy_amount =
+            std::min(static_cast<size_t>(PAGE_SIZE) - page_offset, remaining_size);
         const VAddr current_vaddr = static_cast<VAddr>((page_index << PAGE_BITS) + page_offset);
 
         switch (page_table.attributes[page_index]) {
@@ -501,7 +502,8 @@ void WriteBlock(const Kernel::Process& process, const VAddr dest_addr, const voi
     size_t page_offset = dest_addr & PAGE_MASK;
 
     while (remaining_size > 0) {
-        const size_t copy_amount = std::min(PAGE_SIZE - page_offset, remaining_size);
+        const size_t copy_amount =
+            std::min(static_cast<size_t>(PAGE_SIZE) - page_offset, remaining_size);
         const VAddr current_vaddr = static_cast<VAddr>((page_index << PAGE_BITS) + page_offset);
 
         switch (page_table.attributes[page_index]) {
@@ -548,7 +550,8 @@ void ZeroBlock(const Kernel::Process& process, const VAddr dest_addr, const size
     static const std::array<u8, PAGE_SIZE> zeros = {};
 
     while (remaining_size > 0) {
-        const size_t copy_amount = std::min(PAGE_SIZE - page_offset, remaining_size);
+        const size_t copy_amount =
+            std::min(static_cast<size_t>(PAGE_SIZE) - page_offset, remaining_size);
         const VAddr current_vaddr = static_cast<VAddr>((page_index << PAGE_BITS) + page_offset);
 
         switch (page_table.attributes[page_index]) {
@@ -587,7 +590,8 @@ void CopyBlock(const Kernel::Process& process, VAddr dest_addr, VAddr src_addr,
     size_t page_offset = src_addr & PAGE_MASK;
 
     while (remaining_size > 0) {
-        const size_t copy_amount = std::min(PAGE_SIZE - page_offset, remaining_size);
+        const size_t copy_amount =
+            std::min(static_cast<size_t>(PAGE_SIZE) - page_offset, remaining_size);
         const VAddr current_vaddr = static_cast<VAddr>((page_index << PAGE_BITS) + page_offset);
 
         switch (page_table.attributes[page_index]) {