use libc's powerof2

Instead of rolling our own powerof2 function, use the version provided
by libc. In particular, this version is not ubsan safe, whereas the libc
version is. See https://android-review.googlesource.com/c/platform/bionic/+/932279

Test: compiles and boots
Change-Id: I0dd39254357826c14c3185a5e6332faa90975f01
gugelfrei
Nick Kralevich 5 years ago
parent c18cebd376
commit f80d4a14ea

@ -25,6 +25,7 @@
#include <new>
#include <log/log.h>
#include <sys/param.h>
#include <audio_effects/effect_dynamicsprocessing.h>
#include <dsp/DPBase.h>
@ -225,10 +226,6 @@ void DP_changeVariant(DynamicsProcessingContext *pContext, int newVariant) {
} //switch
}
static inline bool isPowerOf2(unsigned long n) {
return (n & (n - 1)) == 0;
}
void DP_configureVariant(DynamicsProcessingContext *pContext, int newVariant) {
ALOGV("DP_configureVariant %d", newVariant);
switch(newVariant) {
@ -242,7 +239,7 @@ void DP_configureVariant(DynamicsProcessingContext *pContext, int newVariant) {
desiredBlock);
if (desiredBlock < minBlockSize) {
currentBlock = minBlockSize;
} else if (!isPowerOf2(desiredBlock)) {
} else if (!powerof2(desiredBlock)) {
//find next highest power of 2.
currentBlock = 1 << (32 - __builtin_clz(desiredBlock));
}
@ -1297,4 +1294,3 @@ audio_effect_library_t AUDIO_EFFECT_LIBRARY_INFO_SYM = {
};
}; // extern "C"

@ -20,6 +20,7 @@
#include <log/log.h>
#include "DPFrequency.h"
#include <algorithm>
#include <sys/param.h>
namespace dp_fx {
@ -30,10 +31,6 @@ using Eigen::MatrixXd;
#define CIRCULAR_BUFFER_UPSAMPLE 4 //4 times buffer size
static constexpr float MIN_ENVELOPE = 1e-6f; //-120 dB
//helper functionS
static inline bool isPowerOf2(unsigned long n) {
return (n & (n - 1)) == 0;
}
static constexpr float EPSILON = 0.0000001f;
static inline bool isZero(float f) {
@ -151,7 +148,7 @@ void DPFrequency::configure(size_t blockSize, size_t overlapSize,
} else if (mBlockSize < MIN_BLOCKSIZE) {
mBlockSize = MIN_BLOCKSIZE;
} else {
if (!isPowerOf2(blockSize)) {
if (!powerof2(blockSize)) {
//find next highest power of 2.
mBlockSize = 1 << (32 - __builtin_clz(blockSize));
}

Loading…
Cancel
Save