aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sfx/mixer
diff options
context:
space:
mode:
authorMax Horn2009-02-21 18:13:03 +0000
committerMax Horn2009-02-21 18:13:03 +0000
commit11b2ddfc5450fda4638dd264f576e48d17d85b12 (patch)
treeedf4320f66fcd88a1a751ac83c4e6a94334296c1 /engines/sci/sfx/mixer
parent3cd9706c63330403e8d9ef3071697909bbb1f652 (diff)
downloadscummvm-rg350-11b2ddfc5450fda4638dd264f576e48d17d85b12.tar.gz
scummvm-rg350-11b2ddfc5450fda4638dd264f576e48d17d85b12.tar.bz2
scummvm-rg350-11b2ddfc5450fda4638dd264f576e48d17d85b12.zip
SCI: Simplified gcd (and fixed crash when a = 0, not that it would be relevant ;)
svn-id: r38715
Diffstat (limited to 'engines/sci/sfx/mixer')
-rw-r--r--engines/sci/sfx/mixer/soft.cpp20
1 files changed, 7 insertions, 13 deletions
diff --git a/engines/sci/sfx/mixer/soft.cpp b/engines/sci/sfx/mixer/soft.cpp
index bf76268356..6e70be6eea 100644
--- a/engines/sci/sfx/mixer/soft.cpp
+++ b/engines/sci/sfx/mixer/soft.cpp
@@ -92,19 +92,13 @@ static int mix_init(sfx_pcm_mixer_t *self, sfx_pcm_device_t *device) {
return SFX_OK;
}
-static inline unsigned int gcd(unsigned int a, unsigned int b) {
- if (a == b)
- return a;
-
- if (a < b) {
- unsigned int c = b % a;
-
- if (!c)
- return a;
-
- return gcd(c, a);
- } else
- return gcd(b, a);
+static inline uint gcd(uint a, uint b) {
+ while (a) {
+ uint c = b % a;
+ b = a;
+ a = c;
+ }
+ return b;
}
static sfx_pcm_urat_t urat(unsigned int nom, unsigned int denom) {