pw_kvs: de-inline FlashPartition constructor

This is so that we can safely use PW_DCHECK

Change-Id: Id29b7ebfbef012ee892255d9eac735044a49f311
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/21041
Commit-Queue: Paul Mathieu <paulmathieu@google.com>
Reviewed-by: David Rogers <davidrogers@google.com>
diff --git a/pw_kvs/flash_memory.cc b/pw_kvs/flash_memory.cc
index ceb2d3e..1f663c4 100644
--- a/pw_kvs/flash_memory.cc
+++ b/pw_kvs/flash_memory.cc
@@ -41,6 +41,28 @@
   return result;
 }
 
+FlashPartition::FlashPartition(
+    FlashMemory* flash,
+    uint32_t start_sector_index,
+    uint32_t sector_count,
+    uint32_t alignment_bytes,  // Defaults to flash alignment
+    PartitionPermission permission)
+
+    : flash_(*flash),
+      start_sector_index_(start_sector_index),
+      sector_count_(sector_count),
+      alignment_bytes_(
+          alignment_bytes == 0
+              ? flash_.alignment_bytes()
+              : std::max(alignment_bytes, uint32_t(flash_.alignment_bytes()))),
+      permission_(permission) {
+  uint32_t misalignment = (alignment_bytes_ % flash_.alignment_bytes());
+  PW_DCHECK_UINT_EQ(misalignment,
+                    0,
+                    "Flash partition alignmentmust be a multiple of the flash "
+                    "memory alignment");
+}
+
 Status FlashPartition::Erase(Address address, size_t num_sectors) {
   if (permission_ == PartitionPermission::kReadOnly) {
     return Status::PermissionDenied();
diff --git a/pw_kvs/public/pw_kvs/flash_memory.h b/pw_kvs/public/pw_kvs/flash_memory.h
index 029fba2..0590e56 100644
--- a/pw_kvs/public/pw_kvs/flash_memory.h
+++ b/pw_kvs/public/pw_kvs/flash_memory.h
@@ -169,22 +169,7 @@
       uint32_t start_sector_index,
       uint32_t sector_count,
       uint32_t alignment_bytes = 0,  // Defaults to flash alignment
-      PartitionPermission permission = PartitionPermission::kReadAndWrite)
-      : flash_(*flash),
-        start_sector_index_(start_sector_index),
-        sector_count_(sector_count),
-        alignment_bytes_(alignment_bytes == 0
-                             ? flash_.alignment_bytes()
-                             : std::max(alignment_bytes,
-                                        uint32_t(flash_.alignment_bytes()))),
-        permission_(permission) {
-    uint32_t misalignment = (alignment_bytes_ % flash_.alignment_bytes());
-    PW_DCHECK_UINT_EQ(
-        misalignment,
-        0,
-        "Flash partition alignmentmust be a multiple of the flash "
-        "memory alignment");
-  }
+      PartitionPermission permission = PartitionPermission::kReadAndWrite);
 
   // Creates a FlashPartition that uses the entire flash with its alignment.
   // TODO(pwbug/246): This can be constexpr when tokenized asserts are fixed.