Как уже говорили другие, увеличение размера m_table является решением. Тем не менее, вам нужно быть осторожным в кастинге, чтобы оставить его без подписи.
Просто делаю:
m_table[ i ] = (int)result;
... например, перенесет знаковый бит результата. Таким образом, если подписанный короткий результат равен -1, тогда m_table [i] будет иметь значение -1, когда вы действительно хотите 0xffff.
Исправьте это с помощью:
m_table[ i ] = result & 0xffff;
Это должно дать вам эквивалент оригинальной подписанной короткой позиции беззнакового короткого приведения ... сохранение его в int только для поддержания беззнаковой сущности.