GapBuffer takes separate buffer_size and size parameters
This commit is contained in:
parent
0cbc36c5ff
commit
1c62e41b26
@ -57,6 +57,7 @@ bool Buffer::load_from_file(const char * filename)
|
||||
size_t loaded_size;
|
||||
text_loader.load_buffer(buffer, file_size, &loaded_size);
|
||||
|
||||
m_gap_buffer = std::make_shared<GapBuffer>(buffer, buffer_size, loaded_size);
|
||||
m_eol_at_eof = text_loader.get_eol_at_eof();
|
||||
|
||||
return true;
|
||||
|
@ -4,16 +4,18 @@
|
||||
GapBuffer::GapBuffer()
|
||||
{
|
||||
m_buffer = (uint8_t *)System::alloc_pages(1u);
|
||||
m_size = System::page_size;
|
||||
m_buffer_size = System::page_size;
|
||||
m_size = 0u;
|
||||
}
|
||||
|
||||
GapBuffer::GapBuffer(uint8_t * buffer, size_t size)
|
||||
GapBuffer::GapBuffer(uint8_t * buffer, size_t buffer_size, size_t size)
|
||||
{
|
||||
m_buffer = buffer;
|
||||
m_buffer_size = buffer_size;
|
||||
m_size = size;
|
||||
}
|
||||
|
||||
GapBuffer::~GapBuffer()
|
||||
{
|
||||
System::free_pages(m_buffer, m_size >> System::page_size_log);
|
||||
System::free_pages(m_buffer, m_buffer_size >> System::page_size_log);
|
||||
}
|
||||
|
@ -8,11 +8,12 @@ class GapBuffer
|
||||
{
|
||||
public:
|
||||
GapBuffer();
|
||||
GapBuffer(uint8_t * buffer, size_t size);
|
||||
GapBuffer(uint8_t * buffer, size_t buffer_size, size_t size);
|
||||
~GapBuffer();
|
||||
|
||||
protected:
|
||||
uint8_t * m_buffer;
|
||||
size_t m_buffer_size;
|
||||
size_t m_size;
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user