Просмотр исходного кода

kernel/shared_memory: Make data members private

Rather than allow unfettered access to the class internals, we hide all
members by default and create and API that other code can operate
against.
Lioncash 7 лет назад
Родитель
Сommit
f472232705
1 измененных файлов с 17 добавлено и 12 удалено
  1. 17 12
      src/core/hle/kernel/shared_memory.h

+ 17 - 12
src/core/hle/kernel/shared_memory.h

@@ -81,6 +81,11 @@ public:
         return HANDLE_TYPE;
     }
 
+    /// Gets the size of the underlying memory block in bytes.
+    u64 GetSize() const {
+        return size;
+    }
+
     /**
      * Converts the specified MemoryPermission into the equivalent VMAPermission.
      * @param permission The MemoryPermission to convert.
@@ -112,26 +117,26 @@ public:
      */
     u8* GetPointer(u32 offset = 0);
 
-    /// Process that created this shared memory block.
-    SharedPtr<Process> owner_process;
-    /// Address of shared memory block in the owner process if specified.
-    VAddr base_address;
+private:
+    explicit SharedMemory(KernelCore& kernel);
+    ~SharedMemory() override;
+
     /// Backing memory for this shared memory block.
     std::shared_ptr<std::vector<u8>> backing_block;
     /// Offset into the backing block for this shared memory.
-    std::size_t backing_block_offset;
+    std::size_t backing_block_offset = 0;
     /// Size of the memory block. Page-aligned.
-    u64 size;
+    u64 size = 0;
     /// Permission restrictions applied to the process which created the block.
-    MemoryPermission permissions;
+    MemoryPermission permissions{};
     /// Permission restrictions applied to other processes mapping the block.
-    MemoryPermission other_permissions;
+    MemoryPermission other_permissions{};
+    /// Process that created this shared memory block.
+    SharedPtr<Process> owner_process;
+    /// Address of shared memory block in the owner process if specified.
+    VAddr base_address = 0;
     /// Name of shared memory object.
     std::string name;
-
-private:
-    explicit SharedMemory(KernelCore& kernel);
-    ~SharedMemory() override;
 };
 
 } // namespace Kernel