summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorleeight <leeight@gmail.com>2018-11-19 12:31:26 +0800
committerAnna Henningsen <anna@addaleax.net>2018-12-01 18:57:00 +0100
commitadbf9477eb244b0f83a705b06269705967194f03 (patch)
tree1d69b9665e912f3a6b2925e4998589c4a8f1676b /src
parent82ceb5e4b1f0114361fca617799caa04725bee1b (diff)
downloadandroid-node-v8-adbf9477eb244b0f83a705b06269705967194f03.tar.gz
android-node-v8-adbf9477eb244b0f83a705b06269705967194f03.tar.bz2
android-node-v8-adbf9477eb244b0f83a705b06269705967194f03.zip
src: use arraysize instead of hardcode number
PR-URL: https://github.com/nodejs/node/pull/24473 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Refael Ackermann <refack@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/node_os.cc7
-rw-r--r--src/node_url.cc7
-rw-r--r--src/util.h9
3 files changed, 17 insertions, 6 deletions
diff --git a/src/node_os.cc b/src/node_os.cc
index 9e5530646a..fa38040e3a 100644
--- a/src/node_os.cc
+++ b/src/node_os.cc
@@ -22,6 +22,7 @@
#include "node_internals.h"
#include "string_bytes.h"
+#include <array>
#include <errno.h>
#include <string.h>
@@ -219,7 +220,7 @@ static void GetInterfaceAddresses(const FunctionCallbackInfo<Value>& args) {
int count, i;
char ip[INET6_ADDRSTRLEN];
char netmask[INET6_ADDRSTRLEN];
- char mac[18];
+ std::array<char, 18> mac;
Local<Object> ret, o;
Local<String> name, family;
Local<Array> ifarr;
@@ -256,8 +257,8 @@ static void GetInterfaceAddresses(const FunctionCallbackInfo<Value>& args) {
ret->Set(env->context(), name, ifarr).FromJust();
}
- snprintf(mac,
- 18,
+ snprintf(mac.data(),
+ mac.size(),
"%02x:%02x:%02x:%02x:%02x:%02x",
static_cast<unsigned char>(interfaces[i].phys_addr[0]),
static_cast<unsigned char>(interfaces[i].phys_addr[1]),
diff --git a/src/node_url.cc b/src/node_url.cc
index 57be5418aa..b9fda6cf43 100644
--- a/src/node_url.cc
+++ b/src/node_url.cc
@@ -787,10 +787,11 @@ inline bool ToASCII(const std::string& input, std::string* output) {
void URLHost::ParseIPv6Host(const char* input, size_t length) {
CHECK_EQ(type_, HostType::H_FAILED);
- for (unsigned n = 0; n < 8; n++)
+ unsigned size = arraysize(value_.ipv6);
+ for (unsigned n = 0; n < size; n++)
value_.ipv6[n] = 0;
uint16_t* piece_pointer = &value_.ipv6[0];
- uint16_t* const buffer_end = piece_pointer + 8;
+ uint16_t* const buffer_end = piece_pointer + size;
uint16_t* compress_pointer = nullptr;
const char* pointer = input;
const char* end = pointer + length;
@@ -952,7 +953,7 @@ void URLHost::ParseIPv4Host(const char* input, size_t length, bool* is_ipv4) {
const char ch = pointer < end ? pointer[0] : kEOL;
const int remaining = end - pointer - 1;
if (ch == '.' || ch == kEOL) {
- if (++parts > 4)
+ if (++parts > static_cast<int>(arraysize(numbers)))
return;
if (pointer == mark)
return;
diff --git a/src/util.h b/src/util.h
index 086e33933e..9dd39fe186 100644
--- a/src/util.h
+++ b/src/util.h
@@ -37,6 +37,7 @@
#include <functional> // std::function
#include <set>
#include <string>
+#include <array>
#include <unordered_map>
namespace node {
@@ -223,6 +224,14 @@ inline v8::Local<v8::String> FIXED_ONE_BYTE_STRING(
return OneByteString(isolate, data, N - 1);
}
+template <std::size_t N>
+inline v8::Local<v8::String> FIXED_ONE_BYTE_STRING(
+ v8::Isolate* isolate,
+ const std::array<char, N>& arr) {
+ return OneByteString(isolate, arr.data(), N - 1);
+}
+
+
// Swaps bytes in place. nbytes is the number of bytes to swap and must be a
// multiple of the word size (checked by function).