Merge "DO NOT MERGE - Merge Android 10 into master"
diff --git a/arm-wt-22k/lib_src/eas_wtsynth.c b/arm-wt-22k/lib_src/eas_wtsynth.c
index ecb6837..987170b 100644
--- a/arm-wt-22k/lib_src/eas_wtsynth.c
+++ b/arm-wt-22k/lib_src/eas_wtsynth.c
@@ -576,6 +576,9 @@
         temp += (pVoice->note + pSynth->globalTranspose) * 100;
     intFrame.frame.phaseIncrement = WT_UpdatePhaseInc(pWTVoice, pArt, pChannel, temp);
     temp = pWTVoice->loopEnd - pWTVoice->loopStart;
+#ifdef _16_BIT_SAMPLES
+    temp >>= 1;
+#endif
     if (temp != 0) {
         temp = temp << NUM_PHASE_FRAC_BITS;
         if (intFrame.frame.phaseIncrement > temp) {
diff --git a/arm-wt-22k/lib_src/wt_22khz.c b/arm-wt-22k/lib_src/wt_22khz.c
index 33c11e1..5091f74 100644
--- a/arm-wt-22k/lib_src/wt_22khz.c
+++ b/arm-wt-22k/lib_src/wt_22khz.c
@@ -14697,7 +14697,8 @@
     0x00033c53, 0x00033c69, 0x00033c7e, 0x00033c93, 0x00033ca8, 0x00033cbd
 };
 #else //_16_BIT_SAMPLES
-const EAS_SAMPLE eas_samples[] =
+/* NOTE: this array should have size of at least eas_sampleOffsets[last_element] + eas_sampleLengths[last_element] */
+const EAS_SAMPLE eas_samples[0x00033cbd + 20] =
 {
     0, 0, -768, -1024, -1536, -2048, -2560, -3072, -3072, -2816, -2048, -768, 768, 1792, 2560, 3584,
     4096, 4096, 3840, 3072, 2304, 1024, -1024, -3072, -4608, -5376, -5376, -4864, -4608, -3840, -2560, -768,