DecoderBuffer: use NewVarSize()
This commit is contained in:
@@ -21,8 +21,7 @@
|
|||||||
#include "DecoderBuffer.hxx"
|
#include "DecoderBuffer.hxx"
|
||||||
#include "DecoderAPI.hxx"
|
#include "DecoderAPI.hxx"
|
||||||
#include "util/ConstBuffer.hxx"
|
#include "util/ConstBuffer.hxx"
|
||||||
|
#include "util/VarSize.hxx"
|
||||||
#include <glib.h>
|
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -43,24 +42,22 @@ struct DecoderBuffer {
|
|||||||
|
|
||||||
/** the actual buffer (dynamic size) */
|
/** the actual buffer (dynamic size) */
|
||||||
unsigned char data[sizeof(size_t)];
|
unsigned char data[sizeof(size_t)];
|
||||||
|
|
||||||
|
DecoderBuffer(Decoder *_decoder, InputStream &_is,
|
||||||
|
size_t _size)
|
||||||
|
:decoder(_decoder), is(&_is),
|
||||||
|
size(_size), length(0), consumed(0) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
DecoderBuffer *
|
DecoderBuffer *
|
||||||
decoder_buffer_new(Decoder *decoder, InputStream &is,
|
decoder_buffer_new(Decoder *decoder, InputStream &is,
|
||||||
size_t size)
|
size_t size)
|
||||||
{
|
{
|
||||||
DecoderBuffer *buffer = (DecoderBuffer *)
|
|
||||||
g_malloc(sizeof(*buffer) - sizeof(buffer->data) + size);
|
|
||||||
|
|
||||||
assert(size > 0);
|
assert(size > 0);
|
||||||
|
|
||||||
buffer->decoder = decoder;
|
return NewVarSize<DecoderBuffer>(sizeof(DecoderBuffer::data),
|
||||||
buffer->is = &is;
|
size,
|
||||||
buffer->size = size;
|
decoder, is, size);
|
||||||
buffer->length = 0;
|
|
||||||
buffer->consumed = 0;
|
|
||||||
|
|
||||||
return buffer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -68,7 +65,7 @@ decoder_buffer_free(DecoderBuffer *buffer)
|
|||||||
{
|
{
|
||||||
assert(buffer != nullptr);
|
assert(buffer != nullptr);
|
||||||
|
|
||||||
g_free(buffer);
|
DeleteVarSize(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
Reference in New Issue
Block a user