Unify the many definitions of NELEMENTS
Change-Id: Ie52ce24ca9eca272dfacfb17483ec7b7f2c126d4
diff --git a/aom/aom_integer.h b/aom/aom_integer.h
index 2e8f23f..bd1fe27 100644
--- a/aom/aom_integer.h
+++ b/aom/aom_integer.h
@@ -61,4 +61,6 @@
#include <inttypes.h>
#endif
+#define NELEMENTS(x) (int)(sizeof(x) / sizeof(x[0]))
+
#endif // AOM_AOM_INTEGER_H_
diff --git a/aom_dsp/aom_dsp_common.h b/aom_dsp/aom_dsp_common.h
index 3807ae0..5b10432 100644
--- a/aom_dsp/aom_dsp_common.h
+++ b/aom_dsp/aom_dsp_common.h
@@ -31,8 +31,6 @@
#define AOMMIN(x, y) (((x) < (y)) ? (x) : (y))
#define AOMMAX(x, y) (((x) > (y)) ? (x) : (y))
-#define NELEMENTS(x) (sizeof((x)) / sizeof((x)[0]))
-
#define IMPLIES(a, b) (!(a) || (b)) // Logical 'a implies b' (or 'a -> b')
#define IS_POWER_OF_TWO(x) (((x) & ((x)-1)) == 0)
diff --git a/test/av1_convolve_test.cc b/test/av1_convolve_test.cc
index 5ccf397..3947c71 100644
--- a/test/av1_convolve_test.cc
+++ b/test/av1_convolve_test.cc
@@ -145,7 +145,7 @@
};
int bsize_ls[] = { 1, 2, 4, 8, 16, 32, 64, 3, 7, 15, 31, 63 };
-int bsize_num = sizeof(bsize_ls) / sizeof(bsize_ls[0]);
+int bsize_num = NELEMENTS(bsize_ls);
TEST_P(Av1ConvolveTest, av1_convolve_vert) {
const int y_step_q4 = 16;
diff --git a/test/av1_inv_txfm1d_test.cc b/test/av1_inv_txfm1d_test.cc
index a2919a5..46d01f0 100644
--- a/test/av1_inv_txfm1d_test.cc
+++ b/test/av1_inv_txfm1d_test.cc
@@ -47,7 +47,7 @@
TEST(av1_inv_txfm1d, round_trip) {
ACMRandom rnd(ACMRandom::DeterministicSeed());
- for (int si = 0; si < ARRAY_SIZE(fwd_txfm_func_ls); ++si) {
+ for (int si = 0; si < NELEMENTS(fwd_txfm_func_ls); ++si) {
int txfm_size = txfm_size_ls[si];
for (int ti = 0; ti < txfm_type_num; ++ti) {
@@ -63,7 +63,7 @@
int32_t output[64];
int32_t round_trip_output[64];
- assert(txfm_size <= ARRAY_SIZE(input));
+ assert(txfm_size <= NELEMENTS(input));
for (int ni = 0; ni < txfm_size; ++ni) {
input[ni] = rnd.Rand16() % input_base - rnd.Rand16() % input_base;
diff --git a/test/av1_inv_txfm2d_test.cc b/test/av1_inv_txfm2d_test.cc
index 7d31673..a630f26 100644
--- a/test/av1_inv_txfm2d_test.cc
+++ b/test/av1_inv_txfm2d_test.cc
@@ -56,7 +56,7 @@
for (int ci = 0; ci < count; ci++) {
int16_t expected[64 * 64] = { 0 };
- assert(txfm2d_size_ < ARRAY_SIZE(expected));
+ assert(txfm2d_size_ < NELEMENTS(expected));
for (int ni = 0; ni < txfm2d_size_; ++ni) {
if (ci == 0) {
@@ -68,11 +68,11 @@
}
int32_t coeffs[64 * 64] = { 0 };
- assert(txfm2d_size_ < ARRAY_SIZE(coeffs));
+ assert(txfm2d_size_ < NELEMENTS(coeffs));
fwd_txfm_func(expected, coeffs, txfm1d_size_, tx_type_, bd);
uint16_t actual[64 * 64] = { 0 };
- assert(txfm2d_size_ < ARRAY_SIZE(actual));
+ assert(txfm2d_size_ < NELEMENTS(actual));
inv_txfm_func(coeffs, actual, txfm1d_size_, tx_type_, bd);
for (int ni = 0; ni < txfm2d_size_; ++ni) {
diff --git a/test/decode_api_test.cc b/test/decode_api_test.cc
index 6bd72a4..8b1c9d2 100644
--- a/test/decode_api_test.cc
+++ b/test/decode_api_test.cc
@@ -13,13 +13,12 @@
#include "./aom_config.h"
#include "test/ivf_video_source.h"
+#include "test/util.h"
#include "aom/aomdx.h"
#include "aom/aom_decoder.h"
namespace {
-#define NELEMENTS(x) static_cast<int>(sizeof(x) / sizeof(x[0]))
-
TEST(DecodeAPI, InvalidParams) {
static const aom_codec_iface_t *kCodecs[] = {
#if CONFIG_AV1_DECODER
diff --git a/test/encode_api_test.cc b/test/encode_api_test.cc
index 14e43c8..80c42fe 100644
--- a/test/encode_api_test.cc
+++ b/test/encode_api_test.cc
@@ -12,13 +12,12 @@
#include "third_party/googletest/src/googletest/include/gtest/gtest.h"
#include "./aom_config.h"
+#include "test/util.h"
#include "aom/aomcx.h"
#include "aom/aom_encoder.h"
namespace {
-#define NELEMENTS(x) static_cast<int>(sizeof(x) / sizeof(x[0]))
-
TEST(EncodeAPI, InvalidParams) {
static const aom_codec_iface_t *kCodecs[] = {
#if CONFIG_AV1_ENCODER
diff --git a/test/encode_perf_test.cc b/test/encode_perf_test.cc
index fd9f67e..5a37b48 100644
--- a/test/encode_perf_test.cc
+++ b/test/encode_perf_test.cc
@@ -53,8 +53,6 @@
const int kEncodePerfTestSpeeds[] = { 5, 6, 7, 8 };
const int kEncodePerfTestThreads[] = { 1, 2, 4 };
-#define NELEMENTS(x) (sizeof((x)) / sizeof((x)[0]))
-
class AV1EncodePerfTest
: public ::libaom_test::CodecTestWithParam<libaom_test::TestMode>,
public ::libaom_test::EncoderTest {
diff --git a/test/util.h b/test/util.h
index 83d7903..d1587b6 100644
--- a/test/util.h
+++ b/test/util.h
@@ -15,10 +15,9 @@
#include <stdio.h>
#include <math.h>
#include "third_party/googletest/src/googletest/include/gtest/gtest.h"
+#include "aom/aom_integer.h"
#include "aom/aom_image.h"
-#define ARRAY_SIZE(x) (int)(sizeof(x) / sizeof(x[0]))
-
// Macros
#define GET_PARAM(k) std::tr1::get<k>(GetParam())