Allocate memory using appropriate expected alignment in unit tests.

Fixes crashes of test_libvpx on 32-bit Linux.

Change-Id: If94e7628a86b788ca26c004861dee2f162e47ed6
This commit is contained in:
Ronald S. Bultje 2013-06-21 17:03:57 -07:00
parent 98188e0e82
commit ac6ea2ab91
2 changed files with 16 additions and 10 deletions

View File

@ -18,6 +18,7 @@
#include "vpx/vpx_integer.h"
#include "vpx_config.h"
extern "C" {
#include "vpx_mem/vpx_mem.h"
#if CONFIG_VP8_ENCODER
# include "vp8/common/variance.h"
# include "vp8_rtcd.h"
@ -205,17 +206,18 @@ class SubpelVarianceTest :
rnd(ACMRandom::DeterministicSeed());
block_size_ = width_ * height_;
src_ = new uint8_t[block_size_];
sec_ = new uint8_t[block_size_];
src_ = reinterpret_cast<uint8_t *>(vpx_memalign(16, block_size_));
sec_ = reinterpret_cast<uint8_t *>(vpx_memalign(16, block_size_));
ref_ = new uint8_t[block_size_ + width_ + height_ + 1];
ASSERT_TRUE(src_ != NULL);
ASSERT_TRUE(sec_ != NULL);
ASSERT_TRUE(ref_ != NULL);
}
virtual void TearDown() {
delete[] src_;
vpx_free(src_);
delete[] ref_;
delete[] sec_;
vpx_free(sec_);
}
protected:

View File

@ -16,6 +16,7 @@ extern "C" {
#include "./vpx_config.h"
#include "./vp9_rtcd.h"
#include "vp9/common/vp9_blockd.h"
#include "vpx_mem/vpx_mem.h"
}
typedef void (*subtract_fn_t)(int rows, int cols,
@ -42,9 +43,12 @@ TEST_P(VP9SubtractBlockTest, SimpleSubtract) {
bsize = static_cast<BLOCK_SIZE_TYPE>(static_cast<int>(bsize) + 1)) {
const int block_width = 4 << b_width_log2(bsize);
const int block_height = 4 << b_height_log2(bsize);
int16_t *diff = new int16_t[block_width * block_height * 2];
uint8_t *pred = new uint8_t[block_width * block_height * 2];
uint8_t *src = new uint8_t[block_width * block_height * 2];
int16_t *diff = reinterpret_cast<int16_t *>(
vpx_memalign(16, sizeof(*diff) * block_width * block_height * 2));
uint8_t *pred = reinterpret_cast<uint8_t *>(
vpx_memalign(16, block_width * block_height * 2));
uint8_t *src = reinterpret_cast<uint8_t *>(
vpx_memalign(16, block_width * block_height * 2));
for (int n = 0; n < 100; n++) {
for (int r = 0; r < block_height; ++r) {
@ -80,9 +84,9 @@ TEST_P(VP9SubtractBlockTest, SimpleSubtract) {
}
}
}
delete[] diff;
delete[] pred;
delete[] src;
vpx_free(diff);
vpx_free(pred);
vpx_free(src);
}
}