From 55549f7ae151214b10a8f21b13b096774f0a7870 Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 18 Jun 2015 02:59:41 +0000 Subject: [PATCH] bsnes/nall - change some non-standard dynamic local arrays to slightly less non-standard alloca calls --- libsnes/bsnes/nall/dsp/resample/average.hpp | 2 +- libsnes/bsnes/nall/dsp/resample/cosine.hpp | 3 ++- libsnes/bsnes/nall/dsp/resample/cubic.hpp | 2 +- libsnes/bsnes/nall/dsp/resample/hermite.hpp | 2 +- libsnes/bsnes/nall/dsp/resample/linear.hpp | 2 +- libsnes/bsnes/nall/dsp/resample/nearest.hpp | 2 +- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libsnes/bsnes/nall/dsp/resample/average.hpp b/libsnes/bsnes/nall/dsp/resample/average.hpp index 867b13bfe9..b6567a655d 100644 --- a/libsnes/bsnes/nall/dsp/resample/average.hpp +++ b/libsnes/bsnes/nall/dsp/resample/average.hpp @@ -50,7 +50,7 @@ void ResampleAverage::sample() { void ResampleAverage::sampleLinear() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -1); diff --git a/libsnes/bsnes/nall/dsp/resample/cosine.hpp b/libsnes/bsnes/nall/dsp/resample/cosine.hpp index 3363d5f67b..70e2fae775 100644 --- a/libsnes/bsnes/nall/dsp/resample/cosine.hpp +++ b/libsnes/bsnes/nall/dsp/resample/cosine.hpp @@ -21,7 +21,8 @@ void ResampleCosine::clear() { void ResampleCosine::sample() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); + for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -1); diff --git a/libsnes/bsnes/nall/dsp/resample/cubic.hpp b/libsnes/bsnes/nall/dsp/resample/cubic.hpp index bc4cc95502..ccea1d9591 100644 --- a/libsnes/bsnes/nall/dsp/resample/cubic.hpp +++ b/libsnes/bsnes/nall/dsp/resample/cubic.hpp @@ -21,7 +21,7 @@ void ResampleCubic::clear() { void ResampleCubic::sample() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -3); diff --git a/libsnes/bsnes/nall/dsp/resample/hermite.hpp b/libsnes/bsnes/nall/dsp/resample/hermite.hpp index 0cc9ba0e4d..5d0e267106 100644 --- a/libsnes/bsnes/nall/dsp/resample/hermite.hpp +++ b/libsnes/bsnes/nall/dsp/resample/hermite.hpp @@ -21,7 +21,7 @@ void ResampleHermite::clear() { void ResampleHermite::sample() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -3); diff --git a/libsnes/bsnes/nall/dsp/resample/linear.hpp b/libsnes/bsnes/nall/dsp/resample/linear.hpp index 3c2dc9e6e8..f65575034a 100644 --- a/libsnes/bsnes/nall/dsp/resample/linear.hpp +++ b/libsnes/bsnes/nall/dsp/resample/linear.hpp @@ -21,7 +21,7 @@ void ResampleLinear::clear() { void ResampleLinear::sample() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -1); diff --git a/libsnes/bsnes/nall/dsp/resample/nearest.hpp b/libsnes/bsnes/nall/dsp/resample/nearest.hpp index 14b401ebdb..cd4098f2de 100644 --- a/libsnes/bsnes/nall/dsp/resample/nearest.hpp +++ b/libsnes/bsnes/nall/dsp/resample/nearest.hpp @@ -21,7 +21,7 @@ void ResampleNearest::clear() { void ResampleNearest::sample() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -1);