diff --git a/repos/libports/src/lib/libc/internal/mem_alloc.h b/repos/libports/src/lib/libc/internal/mem_alloc.h index ec40e928b8..d88e47951e 100644 --- a/repos/libports/src/lib/libc/internal/mem_alloc.h +++ b/repos/libports/src/lib/libc/internal/mem_alloc.h @@ -47,20 +47,13 @@ namespace Libc { MAX_CHUNK_SIZE = 1024*1024 }; - class Dataspace : public List::Element + struct Dataspace : List::Element { - public: + Ram_dataspace_capability cap; + void *local_addr; - Ram_dataspace_capability cap; - void *local_addr; - - Dataspace(Ram_dataspace_capability c, void *a) - : cap(c), local_addr(a) {} - - inline void * operator new(__SIZE_TYPE__, void* addr) { - return addr; } - - inline void operator delete(void*) { } + Dataspace(Ram_dataspace_capability c, void *a) + : cap(c), local_addr(a) {} }; class Dataspace_pool : public List diff --git a/repos/libports/src/lib/libc/libc_mem_alloc.cc b/repos/libports/src/lib/libc/libc_mem_alloc.cc index 7390841ec8..29c161f256 100644 --- a/repos/libports/src/lib/libc/libc_mem_alloc.cc +++ b/repos/libports/src/lib/libc/libc_mem_alloc.cc @@ -77,7 +77,7 @@ int Libc::Mem_alloc_impl::Dataspace_pool::expand(size_t size, Range_allocator *a } /* add dataspace information to list of dataspaces */ - Dataspace *ds = new (ds_addr) Dataspace(new_ds_cap, local_addr); + Dataspace *ds = construct_at(ds_addr, new_ds_cap, local_addr); insert(ds); return 0;