]> git.tdb.fi Git - libs/core.git/commitdiff
Move Memory constructors to the .cpp file
authorMikko Rasa <tdb@tdb.fi>
Tue, 3 Jan 2023 13:29:58 +0000 (15:29 +0200)
committerMikko Rasa <tdb@tdb.fi>
Tue, 3 Jan 2023 14:31:19 +0000 (16:31 +0200)
It's causing an undefined reference to vftable if they're in the header.

source/io/memory.cpp
source/io/memory.h

index 19629c446d6c8bfc5e25288e8580deeadbe68c5c..0539fdbc4245f3c9c9ada441bf2aefdbcf0c0707 100644 (file)
@@ -9,14 +9,26 @@ using namespace std;
 namespace Msp {
 namespace IO {
 
-Memory::Memory(char *b, char *e, Mode m)
+Memory::Memory(char *d, std::size_t s, Mode m):
+       Memory(d, d+s, m)
+{ }
+
+Memory::Memory(char *b, char *e, Mode m):
+       begin(b),
+       end(e),
+       pos(begin)
 {
-       begin = b;
-       end = e;
-       pos = begin;
        mode = m;
 }
 
+Memory::Memory(const char *d, std::size_t s):
+       Memory(const_cast<char *>(d), const_cast<char *>(d+s), M_READ)
+{ }
+
+Memory::Memory(const char *b, const char *e):
+       Memory(const_cast<char *>(b), const_cast<char *>(e), M_READ)
+{ }
+
 void Memory::set_block(bool)
 {
        throw unsupported("Memory::set_block");
index 5ae2a34fe43fe6c72c490f20148f0ef992ab7f30..e009cfdd24965d701d745e4dd865734615d4e85c 100644 (file)
@@ -15,10 +15,10 @@ private:
        char *pos = nullptr;
 
 public:
-       Memory(char *d, std::size_t s, Mode m = M_RDWR): Memory(d, d+s, m) { }
+       Memory(char *d, std::size_t s, Mode m = M_RDWR);
        Memory(char *, char *, Mode = M_RDWR);
-       Memory(const char *d, std::size_t s): Memory(const_cast<char *>(d), const_cast<char *>(d+s), M_READ) { }
-       Memory(const char *b, const char *e): Memory(const_cast<char *>(b), const_cast<char *>(e), M_READ) { }
+       Memory(const char *d, std::size_t s);
+       Memory(const char *b, const char *e);
 
        void set_block(bool) override;
        void set_inherit(bool) override;