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 <[email protected]>
+
+- 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;


Reply via email to