summaryrefslogtreecommitdiff
path: root/src/hir/serialise_lowlevel.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2017-07-08 18:09:35 +0800
committerJohn Hodge <tpg@mutabah.net>2017-07-08 18:09:35 +0800
commit4a954d768f5d314133e85629546fdb4a4f587d2d (patch)
tree2e498bc166b5809fe1d8afc879b92033760ff86b /src/hir/serialise_lowlevel.cpp
parent029dd3f14422f0587b63e33781afe072bafc094a (diff)
downloadmrust-4a954d768f5d314133e85629546fdb4a4f587d2d.tar.gz
Codegen+Loading - MSVC support draft (libcore compiles, doesn't load)
Diffstat (limited to 'src/hir/serialise_lowlevel.cpp')
-rw-r--r--src/hir/serialise_lowlevel.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/hir/serialise_lowlevel.cpp b/src/hir/serialise_lowlevel.cpp
index a3bb3870..19e8c6b4 100644
--- a/src/hir/serialise_lowlevel.cpp
+++ b/src/hir/serialise_lowlevel.cpp
@@ -43,7 +43,7 @@ void Writer::write(const void* buf, size_t len)
WriterInner::WriterInner(const ::std::string& filename):
- m_backing( filename ),
+ m_backing( filename, ::std::ios_base::out | ::std::ios_base::binary),
m_zstream(),
m_buffer( 16*1024 )
//m_buffer( 4*1024 )
@@ -177,7 +177,7 @@ size_t ReadBuffer::read(void* dst, size_t len)
void ReadBuffer::populate(ReaderInner& is)
{
m_backing.resize( m_backing.capacity(), 0 );
- auto len = is.read(m_backing.data(), m_backing.capacity());
+ auto len = is.read(m_backing.data(), m_backing.size());
m_backing.resize( len );
m_ofs = 0;
}
@@ -217,10 +217,14 @@ void Reader::read(void* buf, size_t len)
ReaderInner::ReaderInner(const ::std::string& filename):
- m_backing(filename),
+ m_backing(filename, ::std::ios_base::in|::std::ios_base::binary),
m_zstream(),
m_buffer(16*1024)
{
+ ::std::memset(&m_zstream, 0, sizeof m_zstream);
+ if( !m_backing.is_open() )
+ throw ::std::runtime_error("Unable to open file");
+
m_zstream.zalloc = Z_NULL;
m_zstream.zfree = Z_NULL;
m_zstream.opaque = Z_NULL;