From ea63f79752e286c2987740a52b81cd289d125806 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Thu, 31 Mar 2016 12:54:09 +0200 Subject: [PATCH] src: use size_t for http parser array size fields Make the `num_values_` and `num_fields_` unsigned and remove an erroneous comment. PR-URL: https://github.com/nodejs/node/pull/5969 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell --- src/node_http_parser.cc | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/node_http_parser.cc b/src/node_http_parser.cc index a9081dc674..4087ed263f 100644 --- a/src/node_http_parser.cc +++ b/src/node_http_parser.cc @@ -193,7 +193,7 @@ class Parser : public AsyncWrap { if (num_fields_ == num_values_) { // start of new field name num_fields_++; - if (num_fields_ == static_cast(arraysize(fields_))) { + if (num_fields_ == arraysize(fields_)) { // ran out of space - flush to javascript land Flush(); num_fields_ = 1; @@ -202,7 +202,7 @@ class Parser : public AsyncWrap { fields_[num_fields_ - 1].Reset(); } - CHECK_LT(num_fields_, static_cast(arraysize(fields_))); + CHECK_LT(num_fields_, arraysize(fields_)); CHECK_EQ(num_fields_, num_values_ + 1); fields_[num_fields_ - 1].Update(at, length); @@ -218,7 +218,7 @@ class Parser : public AsyncWrap { values_[num_values_ - 1].Reset(); } - CHECK_LT(num_values_, static_cast(arraysize(values_))); + CHECK_LT(num_values_, arraysize(values_)); CHECK_EQ(num_values_, num_fields_); values_[num_values_ - 1].Update(at, length); @@ -385,11 +385,11 @@ class Parser : public AsyncWrap { url_.Save(); status_message_.Save(); - for (int i = 0; i < num_fields_; i++) { + for (size_t i = 0; i < num_fields_; i++) { fields_[i].Save(); } - for (int i = 0; i < num_values_; i++) { + for (size_t i = 0; i < num_values_; i++) { values_[i].Save(); } } @@ -637,12 +637,10 @@ class Parser : public AsyncWrap { } Local CreateHeaders() { - // num_values_ is either -1 or the entry # of the last header - // so num_values_ == 0 means there's a single header Local headers = Array::New(env()->isolate()); Local fn = env()->push_values_to_array_function(); Local argv[NODE_PUSH_VAL_TO_ARRAY_MAX * 2]; - int i = 0; + size_t i = 0; do { size_t j = 0; @@ -702,8 +700,8 @@ class Parser : public AsyncWrap { StringPtr values_[32]; // header values StringPtr url_; StringPtr status_message_; - int num_fields_; - int num_values_; + size_t num_fields_; + size_t num_values_; bool have_flushed_; bool got_exception_; Local current_buffer_;