Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1261)

Unified Diff: native_client_sdk/src/libraries/nacl_io/httpfs/http_fs_node.cc

Issue 443693002: [NaCl SDK] nacl_io: Remove use of new/delete for data buffers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/libraries/nacl_io/httpfs/http_fs_node.cc
diff --git a/native_client_sdk/src/libraries/nacl_io/httpfs/http_fs_node.cc b/native_client_sdk/src/libraries/nacl_io/httpfs/http_fs_node.cc
index 653c646daa2544ed90325d44905bf60ba00bf1f7..b41cefbda0ea5df37b59275e2b96e18f57538eaa 100644
--- a/native_client_sdk/src/libraries/nacl_io/httpfs/http_fs_node.cc
+++ b/native_client_sdk/src/libraries/nacl_io/httpfs/http_fs_node.cc
@@ -228,6 +228,8 @@ HttpFsNode::HttpFsNode(Filesystem* filesystem,
bool cache_content)
: Node(filesystem),
url_(url),
+ buffer_(NULL),
+ buffer_len_(0),
cache_content_(cache_content),
has_cached_size_(false) {
}
@@ -557,12 +559,18 @@ Error HttpFsNode::ReadEntireResponseToTemp(const ScopedResource& loader,
*out_bytes = 0;
const int kBytesToRead = MAX_READ_BUFFER_SIZE;
- buffer_.resize(kBytesToRead);
+ buffer_ = (char*)realloc(buffer_, kBytesToRead);
+ assert(buffer_);
+ if (!buffer_) {
+ buffer_len_ = 0;
+ return ENOMEM;
+ }
+ buffer_len_ = kBytesToRead;
while (true) {
int bytes_read;
Error error =
- ReadResponseToBuffer(loader, buffer_.data(), kBytesToRead, &bytes_read);
+ ReadResponseToBuffer(loader, buffer_, kBytesToRead, &bytes_read);
if (error)
return error;
@@ -604,16 +612,23 @@ Error HttpFsNode::ReadResponseToTemp(const ScopedResource& loader,
int* out_bytes) {
*out_bytes = 0;
- if (buffer_.size() < static_cast<size_t>(count))
- buffer_.resize(std::min(count, MAX_READ_BUFFER_SIZE));
+ if (buffer_len_ < count) {
+ int new_len = std::min(count, MAX_READ_BUFFER_SIZE);
+ buffer_ = (char*)realloc(buffer_, new_len);
+ assert(buffer_);
+ if (!buffer_) {
+ buffer_len_ = 0;
+ return ENOMEM;
+ }
+ buffer_len_ = new_len;
+ }
int bytes_left = count;
while (bytes_left > 0) {
- int bytes_to_read =
- std::min(static_cast<size_t>(bytes_left), buffer_.size());
+ int bytes_to_read = std::min(bytes_left, buffer_len_);
int bytes_read;
Error error = ReadResponseToBuffer(
- loader, buffer_.data(), bytes_to_read, &bytes_read);
+ loader, buffer_, bytes_to_read, &bytes_read);
if (error)
return error;

Powered by Google App Engine
This is Rietveld 408576698