X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fbuffered.cpp;fp=source%2Fio%2Fbuffered.cpp;h=55c69a635cf69d0a6b8f41b0f2eec67a028b16e7;hp=2836e4bbbaeb879de07be26bf5fba2ecea8fcad9;hb=c8bf2d6c15893ccc9dbc4e04611b7229029f4808;hpb=817e584903996a041692640720a5a272d847a3c7 diff --git a/source/io/buffered.cpp b/source/io/buffered.cpp index 2836e4b..55c69a6 100644 --- a/source/io/buffered.cpp +++ b/source/io/buffered.cpp @@ -61,7 +61,7 @@ void Buffered::flush() begin = end = buf; } -unsigned Buffered::do_write(const char *data, unsigned size) +size_t Buffered::do_write(const char *data, size_t size) { set_op(M_WRITE); @@ -92,7 +92,7 @@ unsigned Buffered::do_write(const char *data, unsigned size) } } -unsigned Buffered::do_read(char *data, unsigned size) +size_t Buffered::do_read(char *data, size_t size) { set_op(M_READ); @@ -110,7 +110,7 @@ unsigned Buffered::do_read(char *data, unsigned size) { // Give out whatever is in the buffer already memcpy(data, begin, end-begin); - unsigned ret = end-begin; + size_t ret = end-begin; begin = end = buf; data += ret; @@ -119,10 +119,10 @@ unsigned Buffered::do_read(char *data, unsigned size) if(size(end-begin), size); + len = min(end-begin, size); memcpy(data, begin, len); begin += len; ret += len; @@ -137,7 +137,7 @@ unsigned Buffered::do_read(char *data, unsigned size) } } -unsigned Buffered::put(char c) +size_t Buffered::put(char c) { set_op(M_WRITE); @@ -190,7 +190,7 @@ void Buffered::set_op(Mode op) cur_op = op; } -unsigned Buffered::get_current_size() const +size_t Buffered::get_current_size() const { return end-begin; }