Index: native_client_sdk/src/libraries/nacl_io/fifo_char.cc |
diff --git a/native_client_sdk/src/libraries/nacl_io/fifo_char.cc b/native_client_sdk/src/libraries/nacl_io/fifo_char.cc |
index 56245559724f4fd7c5c4b56ddef31819d28ed929..144f5842be632b750fd6c64f69b79c282683a085 100644 |
--- a/native_client_sdk/src/libraries/nacl_io/fifo_char.cc |
+++ b/native_client_sdk/src/libraries/nacl_io/fifo_char.cc |
@@ -4,6 +4,7 @@ |
#include "nacl_io/fifo_char.h" |
+#include <assert.h> |
#include <stdlib.h> |
#include <string.h> |
@@ -13,12 +14,14 @@ namespace nacl_io { |
FIFOChar::FIFOChar(size_t size) |
: buffer_(NULL), size_(size), avail_(0), tail_(0) { |
- if (size) |
- buffer_ = new char[size]; |
+ if (size) { |
+ buffer_ = (char*)malloc(size); |
+ assert(buffer_ != NULL); |
+ } |
} |
FIFOChar::~FIFOChar() { |
- delete[] buffer_; |
+ free(buffer_); |
} |
bool FIFOChar::IsEmpty() { |
@@ -34,13 +37,11 @@ bool FIFOChar::Resize(size_t len) { |
if (len < avail_) |
return false; |
- // Read current data into new buffer |
- char* data = new char[len]; |
- avail_ = Read(data, avail_); |
- |
- // Replace buffer |
- delete[] buffer_; |
- buffer_ = data; |
+ // Resize buffer |
+ buffer_ = (char*)realloc(buffer_, len); |
+ assert(buffer_ != NULL); |
+ if (buffer_ == NULL) |
+ return false; |
size_ = len; |
return true; |
} |