mirror of https://github.com/aria2/aria2
Replace A2_ARRAY_LEN with constexpr arraySize
parent
b8b291187d
commit
ae631513f3
|
@ -42,16 +42,11 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
// calculate length of array
|
|
||||||
template<typename T, size_t N>
|
template<typename T, size_t N>
|
||||||
char (&char_array_ref_fun(T (&)[N]))[N];
|
constexpr size_t arraySize(T (&)[N])
|
||||||
|
{
|
||||||
// For 0 length array
|
return N;
|
||||||
template<typename T>
|
}
|
||||||
char (&char_array_ref_fun(T (&)[0u]))[0u];
|
|
||||||
|
|
||||||
// To calculate size of array at compile time, we use macro here.
|
|
||||||
#define A2_ARRAY_LEN(X) sizeof(char_array_ref_fun(X))
|
|
||||||
|
|
||||||
template<typename T, size_t N>
|
template<typename T, size_t N>
|
||||||
class array_wrapper {
|
class array_wrapper {
|
||||||
|
|
|
@ -222,7 +222,7 @@ void BitfieldManTest::testFilter()
|
||||||
std::vector<size_t> out;
|
std::vector<size_t> out;
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)6, btman.getFirstNMissingUnusedIndex(out, 32));
|
CPPUNIT_ASSERT_EQUAL((size_t)6, btman.getFirstNMissingUnusedIndex(out, 32));
|
||||||
const size_t ans[] = { 2, 3, 4, 5, 6, 7 };
|
const size_t ans[] = { 2, 3, 4, 5, 6, 7 };
|
||||||
for(size_t i = 0; i < A2_ARRAY_LEN(ans); ++i) {
|
for(size_t i = 0; i < arraySize(ans); ++i) {
|
||||||
CPPUNIT_ASSERT_EQUAL(ans[i], out[i]);
|
CPPUNIT_ASSERT_EQUAL(ans[i], out[i]);
|
||||||
}
|
}
|
||||||
CPPUNIT_ASSERT_EQUAL((int64_t)12ULL, btman.getFilteredTotalLength());
|
CPPUNIT_ASSERT_EQUAL((int64_t)12ULL, btman.getFilteredTotalLength());
|
||||||
|
|
|
@ -108,14 +108,14 @@ void BtPortMessageTest::testDoReceivedAction()
|
||||||
|
|
||||||
// 9 nodes to create at least 2 buckets.
|
// 9 nodes to create at least 2 buckets.
|
||||||
std::shared_ptr<DHTNode> nodes[9];
|
std::shared_ptr<DHTNode> nodes[9];
|
||||||
for(size_t i = 0; i < A2_ARRAY_LEN(nodes); ++i) {
|
for(size_t i = 0; i < arraySize(nodes); ++i) {
|
||||||
memset(nodeID, 0, DHT_ID_LENGTH);
|
memset(nodeID, 0, DHT_ID_LENGTH);
|
||||||
nodeID[DHT_ID_LENGTH-1] = i+1;
|
nodeID[DHT_ID_LENGTH-1] = i+1;
|
||||||
nodes[i].reset(new DHTNode(nodeID));
|
nodes[i].reset(new DHTNode(nodeID));
|
||||||
}
|
}
|
||||||
|
|
||||||
DHTRoutingTable routingTable(localNode);
|
DHTRoutingTable routingTable(localNode);
|
||||||
for(size_t i = 0; i < A2_ARRAY_LEN(nodes); ++i) {
|
for(size_t i = 0; i < arraySize(nodes); ++i) {
|
||||||
routingTable.addNode(nodes[i]);
|
routingTable.addNode(nodes[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ void DHTTaskExecutorTest::testUpdate()
|
||||||
std::shared_ptr<MockDHTTask>(new MockDHTTask(rn))
|
std::shared_ptr<MockDHTTask>(new MockDHTTask(rn))
|
||||||
};
|
};
|
||||||
tasks[1]->finished_ = true;
|
tasks[1]->finished_ = true;
|
||||||
for(size_t i = 0; i < A2_ARRAY_LEN(tasks); ++i) {
|
for(size_t i = 0; i < arraySize(tasks); ++i) {
|
||||||
tex.addTask(tasks[i]);
|
tex.addTask(tasks[i]);
|
||||||
}
|
}
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)0, tex.getExecutingTaskSize());
|
CPPUNIT_ASSERT_EQUAL((size_t)0, tex.getExecutingTaskSize());
|
||||||
|
|
|
@ -141,7 +141,7 @@ void DefaultPeerStorageTest::testCheckoutPeer()
|
||||||
std::shared_ptr<Peer>(new Peer("192.168.0.2", 1000)),
|
std::shared_ptr<Peer>(new Peer("192.168.0.2", 1000)),
|
||||||
std::shared_ptr<Peer>(new Peer("192.168.0.3", 1000))
|
std::shared_ptr<Peer>(new Peer("192.168.0.3", 1000))
|
||||||
};
|
};
|
||||||
int len = A2_ARRAY_LEN(peers);
|
int len = arraySize(peers);
|
||||||
for(int i = 0; i < len; ++i) {
|
for(int i = 0; i < len; ++i) {
|
||||||
ps.addPeer(peers[i]);
|
ps.addPeer(peers[i]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ void LongestSequencePieceSelectorTest::testSelect()
|
||||||
{
|
{
|
||||||
size_t A[] = { 1,2,3,4,7,10,11,12,13,14,15,100,112,113,114 };
|
size_t A[] = { 1,2,3,4,7,10,11,12,13,14,15,100,112,113,114 };
|
||||||
BitfieldMan bf(1024, 1024*256);
|
BitfieldMan bf(1024, 1024*256);
|
||||||
for(size_t i = 0; i < A2_ARRAY_LEN(A); ++i) {
|
for(size_t i = 0; i < arraySize(A); ++i) {
|
||||||
bf.setBit(A[i]);
|
bf.setBit(A[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -168,7 +168,7 @@ void OptionParserTest::testParseArg()
|
||||||
|
|
||||||
char* argv[] = { prog, optionTimeout, argTimeout, optionDir, argDir,
|
char* argv[] = { prog, optionTimeout, argTimeout, optionDir, argDir,
|
||||||
nonopt1, nonopt2 };
|
nonopt1, nonopt2 };
|
||||||
int argc = A2_ARRAY_LEN(argv);
|
int argc = arraySize(argv);
|
||||||
|
|
||||||
std::stringstream s;
|
std::stringstream s;
|
||||||
std::vector<std::string> nonopts;
|
std::vector<std::string> nonopts;
|
||||||
|
|
|
@ -61,11 +61,11 @@ void array_funTest::testArray_and()
|
||||||
void array_funTest::testArrayLength()
|
void array_funTest::testArrayLength()
|
||||||
{
|
{
|
||||||
int64_t ia[] = { 1, 2, 3, 4, 5 };
|
int64_t ia[] = { 1, 2, 3, 4, 5 };
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)5, A2_ARRAY_LEN(ia));
|
CPPUNIT_ASSERT_EQUAL((size_t)5, arraySize(ia));
|
||||||
// This causes compile error under clang and gcc v3.4.3 opensolaris
|
// This causes compile error under clang and gcc v3.4.3 opensolaris
|
||||||
// 5.11
|
// 5.11
|
||||||
// int64_t zeroLengthArray[] = {};
|
// int64_t zeroLengthArray[] = {};
|
||||||
// CPPUNIT_ASSERT_EQUAL((size_t)0, A2_ARRAY_LEN(zeroLengthArray));
|
// CPPUNIT_ASSERT_EQUAL((size_t)0, arraySize(zeroLengthArray));
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
Loading…
Reference in New Issue