|
|
@@ -6,7 +6,6 @@
|
|
|
#pragma once
|
|
|
|
|
|
#include "filesystem.h"
|
|
|
-#include "reader_writer.h"
|
|
|
#include "log.h"
|
|
|
#include <setjmp.h>
|
|
|
|
|
|
@@ -18,9 +17,9 @@ namespace crown
|
|
|
|
|
|
struct CompileOptions
|
|
|
{
|
|
|
- CompileOptions(Filesystem& fs, File* out, const char* platform, jmp_buf* buf)
|
|
|
+ CompileOptions(Filesystem& fs, Buffer& output, const char* platform, jmp_buf* buf)
|
|
|
: _fs(fs)
|
|
|
- , _bw(*out)
|
|
|
+ , _output(output)
|
|
|
, _platform(platform)
|
|
|
, _jmpbuf(buf)
|
|
|
{
|
|
|
@@ -61,25 +60,20 @@ struct CompileOptions
|
|
|
_fs.delete_file(path);
|
|
|
}
|
|
|
|
|
|
- BinaryWriter& write(const void* data, uint32_t size)
|
|
|
+ void write(const void* data, uint32_t size)
|
|
|
{
|
|
|
- _bw.write(data, size);
|
|
|
- return _bw;
|
|
|
+ array::push(_output, (const char*)data, size);
|
|
|
}
|
|
|
|
|
|
template <typename T>
|
|
|
- BinaryWriter& write(const T& data)
|
|
|
+ void write(const T& data)
|
|
|
{
|
|
|
- _bw.write(data);
|
|
|
- return _bw;
|
|
|
+ write(&data, sizeof(data));
|
|
|
}
|
|
|
|
|
|
- BinaryWriter& write(const Buffer& data)
|
|
|
+ void write(const Buffer& data)
|
|
|
{
|
|
|
- if (array::size(data))
|
|
|
- _bw.write(array::begin(data), array::size(data));
|
|
|
-
|
|
|
- return _bw;
|
|
|
+ array::push(_output, array::begin(data), array::size(data));
|
|
|
}
|
|
|
|
|
|
const char* platform() const
|
|
|
@@ -88,7 +82,7 @@ struct CompileOptions
|
|
|
}
|
|
|
|
|
|
Filesystem& _fs;
|
|
|
- BinaryWriter _bw;
|
|
|
+ Buffer& _output;
|
|
|
const char* _platform;
|
|
|
jmp_buf* _jmpbuf;
|
|
|
};
|