commit libopenmpt for openSUSE:Factory
Hello community, here is the log from the commit of package libopenmpt for openSUSE:Factory checked in at 2019-06-01 09:42:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libopenmpt (Old) and /work/SRC/openSUSE:Factory/.libopenmpt.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "libopenmpt" Sat Jun 1 09:42:37 2019 rev:19 rq:705645 version:0.4.5 Changes: -------- --- /work/SRC/openSUSE:Factory/libopenmpt/libopenmpt.changes 2019-04-10 23:10:03.507896384 +0200 +++ /work/SRC/openSUSE:Factory/.libopenmpt.new.5148/libopenmpt.changes 2019-06-01 09:42:41.811463637 +0200 @@ -1,0 +2,10 @@ +Mon May 27 10:30:08 UTC 2019 - Martin Herkt <9+suse@cirno.systems> + +- Update to version 0.4.5: + * [Sec] Possible crash during playback due out-of-bounds read in + XM and MT2 files + * Breaking out of a sustain loop through Note-Off sometimes + didn’t continue in the regular sample loop + * Seeking did not stop notes playing with XM Key Off (Kxx) effect + +------------------------------------------------------------------- Old: ---- libopenmpt-0.4.4+release.autotools.tar.gz New: ---- libopenmpt-0.4.5+release.autotools.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libopenmpt.spec ++++++ --- /var/tmp/diff_new_pack.P61bXa/_old 2019-06-01 09:42:42.627463359 +0200 +++ /var/tmp/diff_new_pack.P61bXa/_new 2019-06-01 09:42:42.631463357 +0200 @@ -21,7 +21,7 @@ %define libopenmpt_modplug libopenmpt_modplug1 %bcond_without mpg123 Name: libopenmpt -Version: 0.4.4 +Version: 0.4.5 Release: 0 Summary: C++ and C library to decode tracker music files License: BSD-3-Clause ++++++ libopenmpt-0.4.4+release.autotools.tar.gz -> libopenmpt-0.4.5+release.autotools.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/common/CompilerDetect.h new/libopenmpt-0.4.5+release.autotools/common/CompilerDetect.h --- old/libopenmpt-0.4.4+release.autotools/common/CompilerDetect.h 2018-11-16 09:31:43.000000000 +0100 +++ new/libopenmpt-0.4.5+release.autotools/common/CompilerDetect.h 2019-05-23 14:31:48.000000000 +0200 @@ -58,7 +58,11 @@ #elif defined(_MSC_VER) #define MPT_COMPILER_MSVC 1 -#if (_MSC_VER >= 1916) +#if (_MSC_VER >= 1921) +#define MPT_COMPILER_MSVC_VERSION MPT_COMPILER_MAKE_VERSION2(2019,1) +#elif (_MSC_VER >= 1920) +#define MPT_COMPILER_MSVC_VERSION MPT_COMPILER_MAKE_VERSION2(2019,0) +#elif (_MSC_VER >= 1916) #define MPT_COMPILER_MSVC_VERSION MPT_COMPILER_MAKE_VERSION2(2017,9) #elif (_MSC_VER >= 1915) #define MPT_COMPILER_MSVC_VERSION MPT_COMPILER_MAKE_VERSION2(2017,8) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/common/mptAlloc.cpp new/libopenmpt-0.4.5+release.autotools/common/mptAlloc.cpp --- old/libopenmpt-0.4.4+release.autotools/common/mptAlloc.cpp 2019-02-02 22:11:45.000000000 +0100 +++ new/libopenmpt-0.4.5+release.autotools/common/mptAlloc.cpp 2019-04-24 08:58:50.000000000 +0200 @@ -56,7 +56,7 @@ aligned_raw_memory aligned_alloc_impl(std::size_t size, std::size_t count, std::size_t alignment) { - #if MPT_CXX_AT_LEAST(17) && (!MPT_COMPILER_MSVC && !MPT_GCC_BEFORE(8,1,0) && !MPT_CLANG_BEFORE(5,0,0)) && !(MPT_COMPILER_CLANG && defined(__GLIBCXX__)) && !(MPT_COMPILER_CLANG && MPT_OS_MACOSX_OR_IOS) && !MPT_OS_EMSCRIPTEN + #if MPT_CXX_AT_LEAST(17) && (!MPT_COMPILER_MSVC && !MPT_GCC_BEFORE(8,1,0) && !MPT_CLANG_BEFORE(5,0,0)) && !(MPT_COMPILER_GCC && defined(__GLIBCXX__) && (defined(__MINGW32__) || defined(__MINGW64__))) && !(MPT_COMPILER_CLANG && defined(__GLIBCXX__)) && !(MPT_COMPILER_CLANG && MPT_OS_MACOSX_OR_IOS) && !MPT_OS_EMSCRIPTEN std::size_t space = count * size; void* mem = std::aligned_alloc(alignment, space); if(!mem) @@ -103,7 +103,7 @@ void aligned_free(aligned_raw_memory raw) { - #if MPT_CXX_AT_LEAST(17) && (!MPT_COMPILER_MSVC && !MPT_GCC_BEFORE(8,1,0) && !MPT_CLANG_BEFORE(5,0,0)) && !(MPT_COMPILER_CLANG && defined(__GLIBCXX__)) && !(MPT_COMPILER_CLANG && MPT_OS_MACOSX_OR_IOS) && !MPT_OS_EMSCRIPTEN + #if MPT_CXX_AT_LEAST(17) && (!MPT_COMPILER_MSVC && !MPT_GCC_BEFORE(8,1,0) && !MPT_CLANG_BEFORE(5,0,0)) && !(MPT_COMPILER_GCC && defined(__GLIBCXX__) && (defined(__MINGW32__) || defined(__MINGW64__))) && !(MPT_COMPILER_CLANG && defined(__GLIBCXX__)) && !(MPT_COMPILER_CLANG && MPT_OS_MACOSX_OR_IOS) && !MPT_OS_EMSCRIPTEN std::free(raw.mem); #elif MPT_COMPILER_MSVC _aligned_free(raw.mem); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/common/versionNumber.h new/libopenmpt-0.4.5+release.autotools/common/versionNumber.h --- old/libopenmpt-0.4.4+release.autotools/common/versionNumber.h 2019-04-07 14:34:32.000000000 +0200 +++ new/libopenmpt-0.4.5+release.autotools/common/versionNumber.h 2019-05-26 21:24:15.000000000 +0200 @@ -20,7 +20,7 @@ //Version definitions. The only thing that needs to be changed when changing version number. #define VER_MAJORMAJOR 1 #define VER_MAJOR 28 -#define VER_MINOR 04 +#define VER_MINOR 05 #define VER_MINORMINOR 00 //Numerical value of the version. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/configure new/libopenmpt-0.4.5+release.autotools/configure --- old/libopenmpt-0.4.4+release.autotools/configure 2019-04-07 15:30:39.000000000 +0200 +++ new/libopenmpt-0.4.5+release.autotools/configure 2019-05-27 08:50:02.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libopenmpt 0.4.4+release.autotools. +# Generated by GNU Autoconf 2.69 for libopenmpt 0.4.5+release.autotools. # # Report bugs to <https://bugs.openmpt.org/>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='libopenmpt' PACKAGE_TARNAME='libopenmpt' -PACKAGE_VERSION='0.4.4+release.autotools' -PACKAGE_STRING='libopenmpt 0.4.4+release.autotools' +PACKAGE_VERSION='0.4.5+release.autotools' +PACKAGE_STRING='libopenmpt 0.4.5+release.autotools' PACKAGE_BUGREPORT='https://bugs.openmpt.org/' PACKAGE_URL='https://lib.openmpt.org/' @@ -1485,7 +1485,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libopenmpt 0.4.4+release.autotools to adapt to many kinds of systems. +\`configure' configures libopenmpt 0.4.5+release.autotools to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1556,7 +1556,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libopenmpt 0.4.4+release.autotools:";; + short | recursive ) echo "Configuration of libopenmpt 0.4.5+release.autotools:";; esac cat <<\_ACEOF @@ -1756,7 +1756,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libopenmpt configure 0.4.4+release.autotools +libopenmpt configure 0.4.5+release.autotools generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2246,7 +2246,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libopenmpt $as_me 0.4.4+release.autotools, which was +It was created by libopenmpt $as_me 0.4.5+release.autotools, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3117,7 +3117,7 @@ # Define the identity of the package. PACKAGE='libopenmpt' - VERSION='0.4.4+release.autotools' + VERSION='0.4.5+release.autotools' cat >>confdefs.h <<_ACEOF @@ -17281,13 +17281,13 @@ -$as_echo "#define MPT_SVNURL \"https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.4.4\"" >>confdefs.h +$as_echo "#define MPT_SVNURL \"https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.4.5\"" >>confdefs.h -$as_echo "#define MPT_SVNVERSION \"11531\"" >>confdefs.h +$as_echo "#define MPT_SVNVERSION \"11626\"" >>confdefs.h -$as_echo "#define MPT_SVNDATE \"2019-04-07T13:13:38.985151Z\"" >>confdefs.h +$as_echo "#define MPT_SVNDATE \"2019-05-27T06:47:50.022790Z\"" >>confdefs.h $as_echo "#define MPT_PACKAGE true" >>confdefs.h @@ -23527,7 +23527,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libopenmpt $as_me 0.4.4+release.autotools, which was +This file was extended by libopenmpt $as_me 0.4.5+release.autotools, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -23594,7 +23594,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libopenmpt config.status 0.4.4+release.autotools +libopenmpt config.status 0.4.5+release.autotools configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/configure.ac new/libopenmpt-0.4.5+release.autotools/configure.ac --- old/libopenmpt-0.4.4+release.autotools/configure.ac 2019-04-07 15:30:29.000000000 +0200 +++ new/libopenmpt-0.4.5+release.autotools/configure.ac 2019-05-27 08:49:52.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([libopenmpt], [0.4.4+release.autotools], [https://bugs.openmpt.org/], [libopenmpt], [https://lib.openmpt.org/]) +AC_INIT([libopenmpt], [0.4.5+release.autotools], [https://bugs.openmpt.org/], [libopenmpt], [https://lib.openmpt.org/]) AC_PREREQ([2.68]) AC_CONFIG_MACRO_DIR([m4]) @@ -27,9 +27,9 @@ AC_SUBST([LIBOPENMPT_LTVER_REVISION]) AC_SUBST([LIBOPENMPT_LTVER_AGE]) -AC_DEFINE([MPT_SVNURL], ["https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.4.4"], [svn version]) -AC_DEFINE([MPT_SVNVERSION], ["11531"], [svn version]) -AC_DEFINE([MPT_SVNDATE], ["2019-04-07T13:13:38.985151Z"], [svn date]) +AC_DEFINE([MPT_SVNURL], ["https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.4.5"], [svn version]) +AC_DEFINE([MPT_SVNVERSION], ["11626"], [svn version]) +AC_DEFINE([MPT_SVNDATE], ["2019-05-27T06:47:50.022790Z"], [svn date]) AC_DEFINE([MPT_PACKAGE], [true], [is package]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/libopenmpt/dox/changelog.md new/libopenmpt-0.4.5+release.autotools/libopenmpt/dox/changelog.md --- old/libopenmpt-0.4.4+release.autotools/libopenmpt/dox/changelog.md 2019-04-07 15:13:36.000000000 +0200 +++ new/libopenmpt-0.4.5+release.autotools/libopenmpt/dox/changelog.md 2019-05-27 08:47:45.000000000 +0200 @@ -5,6 +5,15 @@ For fully detailed change log, please see the source repository directly. This is just a high-level summary. +### libopenmpt 0.4.5 (2019-05-27) + + * [**Sec**] Possible crash during playback due out-of-bounds read in XM and + MT2 files (r11608). + + * Breaking out of a sustain loop through Note-Off sometimes didn't continue in + the regular sample loop. + * Seeking did not stop notes playing with XM Key Off (Kxx) effect. + ### libopenmpt 0.4.4 (2019-04-07) * [**Bug**] Channel VU meters were swapped. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/libopenmpt/libopenmpt_version.h new/libopenmpt-0.4.5+release.autotools/libopenmpt/libopenmpt_version.h --- old/libopenmpt-0.4.4+release.autotools/libopenmpt/libopenmpt_version.h 2019-04-07 15:13:36.000000000 +0200 +++ new/libopenmpt-0.4.5+release.autotools/libopenmpt/libopenmpt_version.h 2019-05-27 08:47:45.000000000 +0200 @@ -19,7 +19,7 @@ /*! \brief libopenmpt minor version number */ #define OPENMPT_API_VERSION_MINOR 4 /*! \brief libopenmpt patch version number */ -#define OPENMPT_API_VERSION_PATCH 4 +#define OPENMPT_API_VERSION_PATCH 5 /*! \brief libopenmpt pre-release tag */ #define OPENMPT_API_VERSION_PREREL "" /*! \brief libopenmpt pre-release flag */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/libopenmpt/libopenmpt_version.mk new/libopenmpt-0.4.5+release.autotools/libopenmpt/libopenmpt_version.mk --- old/libopenmpt-0.4.4+release.autotools/libopenmpt/libopenmpt_version.mk 2019-04-07 15:13:36.000000000 +0200 +++ new/libopenmpt-0.4.5+release.autotools/libopenmpt/libopenmpt_version.mk 2019-05-27 08:47:45.000000000 +0200 @@ -1,8 +1,8 @@ LIBOPENMPT_VERSION_MAJOR=0 LIBOPENMPT_VERSION_MINOR=4 -LIBOPENMPT_VERSION_PATCH=4 +LIBOPENMPT_VERSION_PATCH=5 LIBOPENMPT_VERSION_PREREL= LIBOPENMPT_LTVER_CURRENT=1 -LIBOPENMPT_LTVER_REVISION=4 +LIBOPENMPT_LTVER_REVISION=5 LIBOPENMPT_LTVER_AGE=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/man/openmpt123.1 new/libopenmpt-0.4.5+release.autotools/man/openmpt123.1 --- old/libopenmpt-0.4.4+release.autotools/man/openmpt123.1 2019-04-07 15:30:29.000000000 +0200 +++ new/libopenmpt-0.4.5+release.autotools/man/openmpt123.1 2019-05-27 08:49:51.000000000 +0200 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH OPENMPT123 "1" "April 2019" "openmpt123 v0.4.4" "User Commands" +.TH OPENMPT123 "1" "May 2019" "openmpt123 v0.4.5" "User Commands" .SH NAME openmpt123 - command line module music player based on libopenmpt .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/soundbase/SampleFormat.h new/libopenmpt-0.4.5+release.autotools/soundbase/SampleFormat.h --- old/libopenmpt-0.4.4+release.autotools/soundbase/SampleFormat.h 2018-07-16 14:07:14.000000000 +0200 +++ new/libopenmpt-0.4.5+release.autotools/soundbase/SampleFormat.h 2019-04-16 10:01:42.000000000 +0200 @@ -29,11 +29,11 @@ }; template<typename Tsample> struct SampleFormatTraits; -template<> struct SampleFormatTraits<uint8> { static MPT_CONSTEXPR11_VAR SampleFormatEnum sampleFormat = SampleFormatUnsigned8; }; -template<> struct SampleFormatTraits<int16> { static MPT_CONSTEXPR11_VAR SampleFormatEnum sampleFormat = SampleFormatInt16; }; -template<> struct SampleFormatTraits<int24> { static MPT_CONSTEXPR11_VAR SampleFormatEnum sampleFormat = SampleFormatInt24; }; -template<> struct SampleFormatTraits<int32> { static MPT_CONSTEXPR11_VAR SampleFormatEnum sampleFormat = SampleFormatInt32; }; -template<> struct SampleFormatTraits<float> { static MPT_CONSTEXPR11_VAR SampleFormatEnum sampleFormat = SampleFormatFloat32; }; +template<> struct SampleFormatTraits<uint8> { static MPT_CONSTEXPR11_FUN SampleFormatEnum sampleFormat() { return SampleFormatUnsigned8; } }; +template<> struct SampleFormatTraits<int16> { static MPT_CONSTEXPR11_FUN SampleFormatEnum sampleFormat() { return SampleFormatInt16; } }; +template<> struct SampleFormatTraits<int24> { static MPT_CONSTEXPR11_FUN SampleFormatEnum sampleFormat() { return SampleFormatInt24; } }; +template<> struct SampleFormatTraits<int32> { static MPT_CONSTEXPR11_FUN SampleFormatEnum sampleFormat() { return SampleFormatInt32; } }; +template<> struct SampleFormatTraits<float> { static MPT_CONSTEXPR11_FUN SampleFormatEnum sampleFormat() { return SampleFormatFloat32; } }; template<SampleFormatEnum sampleFormat> struct SampleFormatToType; template<> struct SampleFormatToType<SampleFormatUnsigned8> { typedef uint8 type; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/soundlib/AudioReadTarget.h new/libopenmpt-0.4.5+release.autotools/soundlib/AudioReadTarget.h --- old/libopenmpt-0.4.4+release.autotools/soundlib/AudioReadTarget.h 2018-09-15 15:07:34.000000000 +0200 +++ new/libopenmpt-0.4.5+release.autotools/soundlib/AudioReadTarget.h 2019-04-16 10:01:42.000000000 +0200 @@ -40,7 +40,7 @@ , outputBuffer(buffer) , outputBuffers(buffers) { - MPT_ASSERT(SampleFormat(SampleFormatTraits<Tsample>::sampleFormat).IsValid()); + MPT_ASSERT(SampleFormat(SampleFormatTraits<Tsample>::sampleFormat()).IsValid()); } std::size_t GetRenderedCount() const { return countRendered; } public: @@ -48,7 +48,7 @@ { // Convert to output sample format and optionally perform dithering and clipping if needed - const SampleFormat sampleFormat = SampleFormatTraits<Tsample>::sampleFormat; + const SampleFormat sampleFormat = SampleFormatTraits<Tsample>::sampleFormat(); if(sampleFormat.IsInt()) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/soundlib/ModChannel.h new/libopenmpt-0.4.5+release.autotools/soundlib/ModChannel.h --- old/libopenmpt-0.4.4+release.autotools/soundlib/ModChannel.h 2019-03-08 21:52:17.000000000 +0100 +++ new/libopenmpt-0.4.5+release.autotools/soundlib/ModChannel.h 2019-05-24 22:38:19.000000000 +0200 @@ -28,8 +28,8 @@ struct EnvInfo { FlagSet<EnvelopeFlags> flags; - uint32 nEnvPosition; - int32 nEnvValueAtReleaseJump; + uint32 nEnvPosition = 0; + int32 nEnvValueAtReleaseJump = NOT_YET_RELEASED; void Reset() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/soundlib/ModSequence.cpp new/libopenmpt-0.4.5+release.autotools/soundlib/ModSequence.cpp --- old/libopenmpt-0.4.4+release.autotools/soundlib/ModSequence.cpp 2018-05-23 09:33:52.000000000 +0200 +++ new/libopenmpt-0.4.5+release.autotools/soundlib/ModSequence.cpp 2019-04-07 17:31:28.000000000 +0200 @@ -342,27 +342,31 @@ Reporting::Confirm("The order list contains separator items.\nThe new format supports multiple sequences, do you want to convert those separate tracks into multiple song sequences?", "Order list conversion", false, true) == cnfYes) { - ORDERINDEX length = m_Sequences[0].GetLengthTailTrimmed(); + ORDERINDEX length = m_Sequences[0].GetLength(); for(ORDERINDEX ord = 0; ord < length; ord++) { // End of subsong? if(!m_Sequences[0].IsValidPat(ord) && m_Sequences[0][ord] != GetIgnoreIndex()) { - // remove all separator patterns between current and next subsong first - while(ord < length && !m_sndFile.Patterns.IsValidIndex(m_Sequences[0][ord])) + // Remove all separator patterns between current and next subsong first + while(ord < length && !m_sndFile.Patterns.IsValidPat(m_Sequences[0][ord])) { m_Sequences[0][ord] = GetInvalidPatIndex(); ord++; modified = true; } - if(ord >= length) break; - ORDERINDEX startOrd = ord; - modified = true; + if(ord >= length) + break; + + const SEQUENCEINDEX newSeq = AddSequence(false); + if(newSeq == SEQUENCEINDEX_INVALID) + break; - SEQUENCEINDEX newSeq = AddSequence(false); + const ORDERINDEX startOrd = ord; m_Sequences[newSeq].reserve(length - startOrd); + modified = true; - // now, move all following orders to the new sequence + // Now, move all following orders to the new sequence while(ord < length && m_Sequences[0][ord] != GetInvalidPatIndex()) { PATTERNINDEX copyPat = m_Sequences[0][ord]; @@ -370,7 +374,7 @@ m_Sequences[0][ord] = GetInvalidPatIndex(); ord++; - // is this a valid pattern? adjust pattern jump commands, if necessary. + // Is this a valid pattern? adjust pattern jump commands, if necessary. if(m_sndFile.Patterns.IsValidPat(copyPat)) { for(auto &m : m_sndFile.Patterns[copyPat]) @@ -382,6 +386,7 @@ } } } + ord--; } } SetSequence(0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/soundlib/Snd_fx.cpp new/libopenmpt-0.4.5+release.autotools/soundlib/Snd_fx.cpp --- old/libopenmpt-0.4.4+release.autotools/soundlib/Snd_fx.cpp 2019-02-28 21:53:19.000000000 +0100 +++ new/libopenmpt-0.4.5+release.autotools/soundlib/Snd_fx.cpp 2019-05-24 23:22:03.000000000 +0200 @@ -1025,7 +1025,8 @@ if(m.note == NOTE_KEYOFF || m.note == NOTE_NOTECUT || (m.note == NOTE_FADE && GetNumInstruments()) || ((m.command == CMD_MODCMDEX || m.command == CMD_S3MCMDEX) && (m.param & 0xF0) == 0xC0 && paramLo < numTicks) - || (m.command == CMD_DELAYCUT && paramLo != 0 && startTick + paramLo < numTicks)) + || (m.command == CMD_DELAYCUT && paramLo != 0 && startTick + paramLo < numTicks) + || m.command == CMD_KEYOFF) { stopNote = true; } @@ -5586,7 +5587,7 @@ if(chn.position.GetUInt() > chn.nLength) { // Test case: SusAfterLoop.it - chn.position.Set(chn.position.GetInt() - chn.nLength + chn.nLoopStart); + chn.position.Set(chn.nLoopStart + ((chn.position.GetInt() - chn.nLoopStart) % (chn.nLoopEnd - chn.nLoopStart))); } } else { @@ -5665,7 +5666,7 @@ // ProTracker sets the tempo after the first tick. // Note: The case of one tick per row is handled in ProcessRow() instead. // Test case: TempoChange.mod -#if MPT_MSVC_AT_LEAST(2017,8) +#if MPT_MSVC_AT_LEAST(2017,8) && MPT_MSVC_BEFORE(2019,0) // Work-around MSVC getting confused about deduced const input type in noexcept operator inside noexcept condition. m_PlayState.m_nMusicTempo.SetRaw(std::min(param.GetRaw(), specs.GetTempoMax().GetRaw())); #else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libopenmpt-0.4.4+release.autotools/soundlib/Sndmix.cpp new/libopenmpt-0.4.5+release.autotools/soundlib/Sndmix.cpp --- old/libopenmpt-0.4.4+release.autotools/soundlib/Sndmix.cpp 2019-03-27 15:25:18.000000000 +0100 +++ new/libopenmpt-0.4.5+release.autotools/soundlib/Sndmix.cpp 2019-05-24 22:38:19.000000000 +0200 @@ -1036,7 +1036,8 @@ // if we are in the release portion of the envelope, // rescale envelope factor so that it is proportional to the release point // and release envelope beginning. - if(chn.VolEnv.nEnvValueAtReleaseJump != NOT_YET_RELEASED) + if(pIns->VolEnv.nReleaseNode != ENV_RELEASE_NODE_UNSET + && chn.VolEnv.nEnvValueAtReleaseJump != NOT_YET_RELEASED) { int envValueAtReleaseJump = chn.VolEnv.nEnvValueAtReleaseJump; int envValueAtReleaseNode = pIns->VolEnv[pIns->VolEnv.nReleaseNode].value * 4;
participants (1)
-
root