diff --git a/src/fd/impl.cpp b/src/fd/impl.cpp
index 3147e64..5f9fe7f 100644
--- a/src/fd/impl.cpp
+++ b/src/fd/impl.cpp
@@ -188,16 +188,16 @@
     return FileFlags(CHECK_ERRNO(::fcntl(get(), F_GETFL), "fcntl getfl"));
 }
 
-std::span<std::byte> FdImpl::mmap(std::span<std::byte> window, ProtFlags prot,
-                                  MMapFlags flags, off_t offset)
+std::span<std::byte> FdImpl::mmap(std::byte* window, std::size_t size,
+                                  ProtFlags prot, MMapFlags flags, off_t offset)
 {
-    auto ret = ::mmap(window.data(), window.size(), static_cast<int>(prot),
+    auto ret = ::mmap(window, size, static_cast<int>(prot),
                       static_cast<int>(flags), get(), offset);
     if (ret == MAP_FAILED)
     {
         util::doError(errno, "mmap");
     }
-    return {reinterpret_cast<std::byte*>(ret), window.size()};
+    return {reinterpret_cast<std::byte*>(ret), size};
 }
 
 void FdImpl::munmap(std::span<std::byte> window)
diff --git a/src/fd/mmap.cpp b/src/fd/mmap.cpp
index 7026aa6..4718121 100644
--- a/src/fd/mmap.cpp
+++ b/src/fd/mmap.cpp
@@ -6,8 +6,13 @@
 namespace fd
 {
 
+MMap::MMap(Fd& fd, size_t window_size, ProtFlags prot, MMapFlags flags,
+           off_t offset) :
+    mapping(fd.mmap(nullptr, window_size, prot, flags, offset), fd)
+{}
 MMap::MMap(Fd& fd, std::span<std::byte> window, ProtFlags prot, MMapFlags flags,
-           off_t offset) : mapping(fd.mmap(window, prot, flags, offset), fd)
+           off_t offset) :
+    mapping(fd.mmap(window.data(), window.size(), prot, flags, offset), fd)
 {}
 
 std::span<std::byte> MMap::get() const
