Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libresidfp for openSUSE:Factory 
checked in at 2026-10-03 20:13:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libresidfp (Old)
 and      /work/SRC/openSUSE:Factory/.libresidfp.new.1631729 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libresidfp"

Sat Oct  3 20:13:38 2026 rev:9 rq:1382185 version:1.2.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/libresidfp/libresidfp.changes    2026-08-30 
19:08:51.398376504 +0200
+++ /work/SRC/openSUSE:Factory/.libresidfp.new.1631729/libresidfp.changes       
2026-10-03 20:15:36.387807880 +0200
@@ -1,0 +2,6 @@
+Fri Oct  2 20:38:51 UTC 2026 - Илья Индиго <[email protected]>
+
+- Updated to 1.2.3
+  * https://github.com/libsidplayfp/libresidfp/releases/tag/v1.2.3
+
+-------------------------------------------------------------------

Old:
----
  libresidfp-1.2.2.tar.gz

New:
----
  libresidfp-1.2.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libresidfp.spec ++++++
--- /var/tmp/diff_new_pack.FTQcP7/_old  2026-10-03 20:15:37.115838321 +0200
+++ /var/tmp/diff_new_pack.FTQcP7/_new  2026-10-03 20:15:37.117838405 +0200
@@ -17,7 +17,7 @@
 
 %define sover 0
 Name:           libresidfp
-Version:        1.2.2
+Version:        1.2.3
 Release:        0
 Summary:        Cycle exact SID emulation
 License:        GPL-2.0-or-later

++++++ libresidfp-1.2.2.tar.gz -> libresidfp-1.2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/NEWS.md new/libresidfp-1.2.3/NEWS.md
--- old/libresidfp-1.2.2/NEWS.md        2026-08-30 16:44:57.000000000 +0200
+++ new/libresidfp-1.2.3/NEWS.md        2026-10-02 20:14:11.000000000 +0200
@@ -1,3 +1,10 @@
+1.2.3 2026-10-02
+* Fixed sanitizer warning (#47)
+* Adjusted 6581 combined waveforms (#54) (#55)
+* Other minor fixes and improvements
+
+
+
 1.2.2 2026-08-30
 * Correctly restore filter status
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/README.md 
new/libresidfp-1.2.3/README.md
--- old/libresidfp-1.2.2/README.md      2026-08-30 16:44:57.000000000 +0200
+++ new/libresidfp-1.2.3/README.md      2026-10-02 20:14:11.000000000 +0200
@@ -77,11 +77,11 @@
 In addition to the standard build options the following are available:
 
 * `--enable-debug[=no/yes]`:
-compile for debugging with inlining disabled and warnings
+compile for debugging with inlining disabled, asserts and warnings
 (disabled by default)
 
 * `--enable-branch-hints`:
-enable branch hints so the compiler can produce more optimized code
+disable branch hints optimizations
 (enabled by default)
 
 * `--with-simd=<runtime/mmx/sse2/sse4/avx2/avx512f/none>`:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/configure 
new/libresidfp-1.2.3/configure
--- old/libresidfp-1.2.2/configure      2026-08-30 16:45:01.000000000 +0200
+++ new/libresidfp-1.2.3/configure      2026-10-02 20:14:15.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libresidfp 1.2.2.
+# Generated by GNU Autoconf 2.71 for libresidfp 1.2.3.
 #
 #
 # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -618,8 +618,8 @@
 # Identity of this package.
 PACKAGE_NAME='libresidfp'
 PACKAGE_TARNAME='libresidfp'
-PACKAGE_VERSION='1.2.2'
-PACKAGE_STRING='libresidfp 1.2.2'
+PACKAGE_VERSION='1.2.3'
+PACKAGE_STRING='libresidfp 1.2.3'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL='https://github.com/libsidplayfp/libresidfp/'
 
@@ -1397,7 +1397,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 libresidfp 1.2.2 to adapt to many kinds of systems.
+\`configure' configures libresidfp 1.2.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1468,7 +1468,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libresidfp 1.2.2:";;
+     short | recursive ) echo "Configuration of libresidfp 1.2.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1591,7 +1591,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libresidfp configure 1.2.2
+libresidfp configure 1.2.3
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2260,7 +2260,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libresidfp $as_me 1.2.2, which was
+It was created by libresidfp $as_me 1.2.3, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3748,7 +3748,7 @@
 
 # Define the identity of the package.
  PACKAGE='libresidfp'
- VERSION='1.2.2'
+ VERSION='1.2.3'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -3896,7 +3896,7 @@
 
 LIB_MAJOR=1
 LIB_MINOR=2
-LIB_LEVEL=2
+LIB_LEVEL=3
 
 
 
@@ -22399,7 +22399,7 @@
 # If any interfaces have been removed or changed since the last public 
release, then set age to 0.
 
 LIBRESIDFPCUR=2
-LIBRESIDFPREV=2
+LIBRESIDFPREV=3
 LIBRESIDFPAGE=2
 LIBRESIDFPVERSION=$LIBRESIDFPCUR:$LIBRESIDFPREV:$LIBRESIDFPAGE
 
@@ -23831,7 +23831,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libresidfp $as_me 1.2.2, which was
+This file was extended by libresidfp $as_me 1.2.3, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -23891,7 +23891,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-libresidfp config.status 1.2.2
+libresidfp config.status 1.2.3
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/configure.ac 
new/libresidfp-1.2.3/configure.ac
--- old/libresidfp-1.2.2/configure.ac   2026-08-30 16:44:57.000000000 +0200
+++ new/libresidfp-1.2.3/configure.ac   2026-10-02 20:14:11.000000000 +0200
@@ -1,6 +1,6 @@
 m4_define([lib_major], [1])
 m4_define([lib_minor], [2])
-m4_define([lib_level], [2])
+m4_define([lib_level], [3])
 m4_define([lib_version], [lib_major.lib_minor.lib_level])
 
 AC_PREREQ([2.62])
@@ -94,7 +94,7 @@
 # If any interfaces have been removed or changed since the last public 
release, then set age to 0.
 
 LIBRESIDFPCUR=2
-LIBRESIDFPREV=2
+LIBRESIDFPREV=3
 LIBRESIDFPAGE=2
 LIBRESIDFPVERSION=$LIBRESIDFPCUR:$LIBRESIDFPREV:$LIBRESIDFPAGE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/src/ExternalFilter.h 
new/libresidfp-1.2.3/src/ExternalFilter.h
--- old/libresidfp-1.2.2/src/ExternalFilter.h   2026-08-30 16:44:57.000000000 
+0200
+++ new/libresidfp-1.2.3/src/ExternalFilter.h   2026-10-02 20:14:11.000000000 
+0200
@@ -149,7 +149,12 @@
 RESIDFP_INLINE
 int32_t ExternalFilter::clock(int32_t input)
 {
+#if __cplusplus >= 202002L
     const int32_t Vi = input << 11;
+#else
+    // Left shift of negative values is undefined
+    const int32_t Vi = input * (1 << 11);
+#endif
     const int32_t dVlp = (w0lp_1_s7 * (Vi - Vlp)) >> 7;
     const int32_t dVhp = (w0hp_1_s17 * (Vlp - Vhp)) >> 17;
     Vlp += dVlp;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/src/WaveformCalculator.cpp 
new/libresidfp-1.2.3/src/WaveformCalculator.cpp
--- old/libresidfp-1.2.2/src/WaveformCalculator.cpp     2026-08-30 
16:44:57.000000000 +0200
+++ new/libresidfp-1.2.3/src/WaveformCalculator.cpp     2026-10-02 
20:14:11.000000000 +0200
@@ -1,7 +1,7 @@
 /*
  * This file is part of libsidplayfp, a SID player engine.
  *
- * Copyright 2011-2023 Leandro Nini <[email protected]>
+ * Copyright 2011-2026 Leandro Nini <[email protected]>
  * Copyright 2007-2010 Antti Lankila
  *
  * This program is free software; you can redistribute it and/or modify
@@ -63,7 +63,7 @@
     return std::pow(distance, -i);
 }
 
-MAYBE_UNUSED static float linearDistance(float distance, int i)
+static float linearDistance(float distance, int i)
 {
     return 1.f / (1.f + i * distance);
 }
@@ -81,6 +81,8 @@
  *
  * The score here reported is the acoustic error
  * calculated XORing the estimated and the sampled values.
+ * For the combinations including saw on 6581 only
+ * the first half of the wave is considered.
  * In parentheses the number of mispredicted bits.
  *
  * [1] https://github.com/libsidplayfp/combined-waveforms
@@ -89,25 +91,25 @@
 const CombinedWaveformConfig configAverage[2][5] =
 {
     { /* 6581 R3 0486S sampled by Trurl */
-        // TS  error  3555 (324/32768) [RMS: 73.98]
-        { exponentialDistance,  0.877322257f, 1.11349654f, 0.f, 2.14537621f, 
9.08618164f },
-        // PT  error  4590 (124/32768) [RMS: 68.90]
+        // TS  error   406  (764/32768) [RMS: -13.55]
+        { exponentialDistance,  0.79111582f, 1.06053483f, 0.f, 1.97922957f, 
2.67848182f },
+        // PT  error  4590  (124/32768) [RMS: -11.40dB]
         { linearDistance, 0.941692829f, 1.f, 1.80072665f, 0.033124879f, 
0.232303441f },
-        // PS  error 19352 (763/32768) [RMS: 96.91]
-        { linearDistance, 1.66494179f, 1.03760982f, 5.62705326f, 0.291590303f, 
0.283631504f },
-        // PTS error  5068 ( 94/32768) [RMS: 41.69]
-        { linearDistance, 1.09762526f, 0.975265801f, 1.52196741f, 
0.151528224f, 0.841949463f },
+        // PS  error   211 (1030/32768) [RMS: -10.31]
+        { linearDistance, 1.09394681f, 1.42332006f, 3.44251633f, 
0.0797301158f, 0.102444135f },
+        // PTS error    57  (278/32768) [RMS: -18.51]
+        { linearDistance, 1.53609717f, 0.0391017497f, 1.67601228f, 
1.44580793f, 1.42448807f },
         // NP  guessed
         { exponentialDistance, 0.96f, 1.f, 2.5f, 1.1f, 1.2f },
     },
     { /* 8580 R5 1088 sampled by reFX-Mike */
-        // TS  error 10660 (353/32768) [RMS: 58.34]
+        // TS  error 10660 (353/32768) [RMS: -12.85dB]
         { exponentialDistance, 0.853578329f, 1.09615636f, 0.f, 1.8819375f, 
6.80794907f },
-        // PT  error 10635 (289/32768) [RMS: 108.81]
+        // PT  error 10635 (289/32768) [RMS: -7.43dB]
         { exponentialDistance, 0.929835618f, 1.f, 1.12836814f, 1.10453653f, 
1.48065746f },
-        // PS  error 12255 (554/32768) [RMS: 102.27]
+        // PS  error 12255 (554/32768) [RMS: -7.97dB]
         { quadraticDistance, 0.911938608f, 0.996440411f, 1.2278074f, 
0.000117214302f, 0.18948476f },
-        // PTS error  6913 (127/32768) [RMS: 55.80]
+        // PTS error  6913 (127/32768) [RMS: -13.23dB]
         { exponentialDistance, 0.938004673f, 1.04827631f, 1.21178246f, 
0.915959001f, 1.42698038f },
         // NP  guessed
         { exponentialDistance, 0.95f, 1.f, 1.15f, 1.f, 1.45f },
@@ -117,25 +119,25 @@
 const CombinedWaveformConfig configWeak[2][5] =
 {
     { /* 6581 R2 4383 sampled by ltx128 */
-        // TS  error 1474 (198/32768) [RMS: 62.81]
-        { exponentialDistance, 0.892563999f, 1.11905622f, 0.f, 2.21876144f, 
9.63837719f },
-        // PT  error  612 (102/32768) [RMS: 43.71]
+        // TS  error  169 (843/32768) [RMS: -14.61]
+        { exponentialDistance, 0.946056068f, 26.9527836f, 0.f, 6.38644743f, 
3.61852479f },
+        // PT  error  612  (102/32768) [RMS: -15.35dB]
         { linearDistance, 1.01262534f, 1.f, 2.46070528f, 0.0537485816f, 
0.0986242667f },
-        // PS  error 8135 (575/32768) [RMS: 75.10]
-        { linearDistance, 2.14896345f, 1.0216713f, 10.5400085f, 0.244498149f, 
0.126134038f },
-        // PTS error 2489 (60/32768) [RMS: 24.41]
-        { linearDistance, 1.22330308f, 0.933797896f, 2.83245254f, 
0.0615176819f, 0.323831677f },
+        // PS  error    5 (1535/32768) [RMS: -15.71]
+        { linearDistance, 0.760607481f, 0.0588437207f, 0.407531887f, 
0.0994859114f, 0.000200334835f },
+        // PTS error    0  (138/32768) [RMS: -25.46]
+        { linearDistance, 1.10582423f, 0.578988612f, 1.94850934f, 
0.0783150643f, 0.300926387f },
         // NP  guessed
         { exponentialDistance, 0.96f, 1.f, 2.5f, 1.1f, 1.2f },
     },
     { /* 8580 R5 4887 sampled by reFX-Mike */
-        // TS  error  741 (76/32768) [RMS: 53.74]
+        // TS  error  741 (76/32768) [RMS: -13.56dB]
         { exponentialDistance, 0.812351167f, 1.1727736f, 0.f, 1.87459648f, 
2.31578159f },
-        // PT  error 7199 (192/32768) [RMS: 88.43]
+        // PT  error 7199 (192/32768) [RMS: -9.23]
         { exponentialDistance, 0.917997837f, 1.f, 1.01248944f, 1.05761552f, 
1.37529826f },
-        // PS  error 9856 (332/32768) [RMS: 86.29]
-        { quadraticDistance, 0.968754232f, 1.00669801f, 1.29909098f, 
0.00962483883f, 0.146850556f },
-        // PTS error 4809 (60/32768) [RMS: 45.37]
+        // PS  error 9849 (333/32768) [RMS: -9.45]
+        { quadraticDistance, 0.969898582f, 1.00785899f, 1.30233467f, 
0.00962228701f, 0.146903187f },
+        // PTS error 4809 (60/32768) [RMS: -15.03dB]
         { exponentialDistance, 0.941834152f, 1.06401193f, 0.991132736f, 
0.995310068f, 1.41105855f },
         // NP  guessed
         { exponentialDistance, 0.95f, 1.f, 1.15f, 1.f, 1.45f },
@@ -145,25 +147,25 @@
 const CombinedWaveformConfig configStrong[2][5] =
 {
     { /* 6581 R2 0384 sampled by Trurl */
-        // TS  error 20337 (1579/32768) [RMS: 88.57]
-        { exponentialDistance, 0.000637792516f, 1.56725872f, 0.f, 
0.00036806846f, 1.51800942f },
-        // PT  error  5190 (238/32768) [RMS: 83.54]
+        // TS  error   754 (2056/32768) [RMS: -18.87]
+        { exponentialDistance, 0.714277208f, 0.00729158986f, 0.f, 2.12244034f, 
1.66707671f },
+        // PT  error  5190  (238/32768) [RMS: -9.73dB]
         { linearDistance, 0.924780309f, 1.f, 1.96809769f, 0.0888123438f, 
0.234606609f },
-        // PS  error 31015 (2181/32768) [RMS: 114.99]
-        { linearDistance, 1.2328074f, 0.73079139f, 3.9719491f, 0.00156516861f, 
0.314677745f },
-        // PTS error  9874 (201/32768) [RMS: 52.30]
-        { linearDistance, 1.08558261f, 0.857638359f, 1.52781796f, 
0.152927235f, 1.02657032f },
+        // PS  error   860 (1288/32768) [RMS: -8.28]
+        { linearDistance, 1.02248156f, 1.36571658f, 3.66920304f, 
0.00203792308f, 0.0826661736f },
+        // PTS error    60  (411/32768) [RMS: -17.97]
+        { linearDistance, 0.891591191f, 1.88450027f, 1.33901846f, 
0.134212971f, 0.293466389f },
         // NP  guessed
         { exponentialDistance, 0.96f, 1.f, 2.5f, 1.1f, 1.2f },
     },
     { /* 8580 R5 1489 sampled by reFX-Mike */
-        // TS  error  4837 (388/32768) [RMS: 76.07]
+        // TS  error  4837 (388/32768) [RMS: -10.54dB]
         { exponentialDistance, 0.89762634f, 56.7594185f, 0.f, 7.68995237f, 
12.0754194f },
-        // PT  error  9266 (508/32768) [RMS: 127.83]
-        { exponentialDistance,  0.87147671f, 1.f, 1.44887495f, 1.05899632f, 
1.43786001f },
-        // PS  error 13168 (718/32768) [RMS: 123.35]
-        { quadraticDistance, 0.89255774f, 1.2253896f, 1.75615835f, 
0.0245045591f, 0.12982437f },
-        // PTS error  6702 (300/32768) [RMS: 71.01]
+        // PT  error  9242 (504/32768) [RMS: -6.03]
+        { exponentialDistance,  0.871706188f, 1.f, 1.44852948f, 1.05926013f, 
1.43830109f },
+        // PS  error 13146 (713/32768) [RMS: -6.34]
+        { quadraticDistance, 0.892224431f, 1.22416508f, 1.74952936f, 
0.0251259189f, 0.13089405f },
+        // PTS error  6702 (300/32768) [RMS: -11.14dB]
         { linearDistance, 0.91124934f, 0.963609755f, 0.909965038f, 
1.07445884f, 1.82399702f },
         // NP  guessed
         { exponentialDistance, 0.95f, 1.f, 1.15f, 1.f, 1.45f },
@@ -171,7 +173,7 @@
 };
 
 /// Calculate triangle waveform
-static unsigned int triXor(unsigned int val)
+inline unsigned int triXor(unsigned int val)
 {
     return (((val & 0x800) == 0) ? val : (val ^ 0xfff)) << 1;
 }
@@ -182,15 +184,15 @@
  * @param distancetable
  * @param pulsestrength
  * @param threshold
- * @param accumulator the high bits of the accumulator value
+ * @param wave the waveform bits
  */
-int16_t calculatePulldown(float distancetable[], float topbit, float 
pulsestrength, float threshold, unsigned int accumulator)
+int16_t calculatePulldown(float distancetable[], float topbit, float 
pulsestrength, float threshold, unsigned int wave)
 {
     float bit[12];
 
     for (unsigned int i = 0; i < 12; i++)
     {
-        bit[i] = (accumulator & (1u << i)) != 0 ? 1.f : 0.f;
+        bit[i] = (wave & (1u << i)) != 0 ? 1.f : 0.f;
     }
 
     bit[11] *= topbit;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/src/WaveformGenerator.h 
new/libresidfp-1.2.3/src/WaveformGenerator.h
--- old/libresidfp-1.2.2/src/WaveformGenerator.h        2026-08-30 
16:44:57.000000000 +0200
+++ new/libresidfp-1.2.3/src/WaveformGenerator.h        2026-10-02 
20:14:11.000000000 +0200
@@ -393,7 +393,7 @@
         // Triangle/Sawtooth output is delayed half cycle on 8580.
         // This will appear as a one cycle delay on OSC3 as it is latched
         // in the first phase of the clock.
-        if ((waveform & 3) && !is6581)
+        if (!is6581 && (waveform & 3))
         {
             osc3 = tri_saw_pipeline & (no_pulse | pulse_output) & 
no_noise_or_noise_output;
             if (pulldown != nullptr)
@@ -409,6 +409,7 @@
         // when the sawtooth is selected
         if (is6581 && (waveform & 0x2) && ((waveform_output & 0x800) == 0))
         {
+            // On some chips it doesn't happen with P+S
             msb_rising = false;
             accumulator &= 0x7fffff;
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/src/resample/PassThrough.h 
new/libresidfp-1.2.3/src/resample/PassThrough.h
--- old/libresidfp-1.2.2/src/resample/PassThrough.h     2026-08-30 
16:44:57.000000000 +0200
+++ new/libresidfp-1.2.3/src/resample/PassThrough.h     2026-10-02 
20:14:11.000000000 +0200
@@ -35,20 +35,17 @@
 
 private:
     /// Last sample
-    int outputValue;
+    int32_t outputValue = 0;
 
 public:
-    PassThrough() :
-        outputValue(0) {}
-
-    bool input(int sample) override
+    bool input(int32_t sample) override
     {
         outputValue = sample;
 
         return true;
     }
 
-    int output() const override { return outputValue; }
+    int32_t output() const override { return outputValue; }
 
     void reset() override
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/src/resample/Resampler.h 
new/libresidfp-1.2.3/src/resample/Resampler.h
--- old/libresidfp-1.2.2/src/resample/Resampler.h       2026-08-30 
16:44:57.000000000 +0200
+++ new/libresidfp-1.2.3/src/resample/Resampler.h       2026-10-02 
20:14:11.000000000 +0200
@@ -38,7 +38,7 @@
 protected:
     virtual int32_t output() const = 0;
 
-    Resampler() {}
+    Resampler() = default;
 
 public:
     virtual ~Resampler() = default;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/src/resample/SincResampler.cpp 
new/libresidfp-1.2.3/src/resample/SincResampler.cpp
--- old/libresidfp-1.2.2/src/resample/SincResampler.cpp 2026-08-30 
16:44:57.000000000 +0200
+++ new/libresidfp-1.2.3/src/resample/SincResampler.cpp 2026-10-02 
20:14:11.000000000 +0200
@@ -309,7 +309,7 @@
     sample[sampleIndex] = sample[sampleIndex + RINGSIZE] = input;
     sampleIndex = (sampleIndex + 1) & (RINGSIZE - 1);
 
-    if (sampleOffset < 1024)
+    if (unlikely(sampleOffset < 1024))
     {
         outputValue = fir(sampleOffset);
         ready = true;
@@ -325,6 +325,7 @@
 {
     std::fill(std::begin(sample), std::end(sample), 0);
     sampleOffset = 0;
+    outputValue = 0;
 }
 
 } // namespace reSIDfp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/src/resample/SincResampler.h 
new/libresidfp-1.2.3/src/resample/SincResampler.h
--- old/libresidfp-1.2.2/src/resample/SincResampler.h   2026-08-30 
16:44:57.000000000 +0200
+++ new/libresidfp-1.2.3/src/resample/SincResampler.h   2026-10-02 
20:14:11.000000000 +0200
@@ -78,7 +78,7 @@
 
     int32_t outputValue = 0;
 
-    int32_t sample[RINGSIZE * 2];
+    int32_t sample[RINGSIZE * 2] = {0};
 
 private:
     int32_t fir(int subcycle);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libresidfp-1.2.2/src/resample/ZeroOrderResampler.h 
new/libresidfp-1.2.3/src/resample/ZeroOrderResampler.h
--- old/libresidfp-1.2.2/src/resample/ZeroOrderResampler.h      2026-08-30 
16:44:57.000000000 +0200
+++ new/libresidfp-1.2.3/src/resample/ZeroOrderResampler.h      2026-10-02 
20:14:11.000000000 +0200
@@ -40,28 +40,26 @@
 
 private:
     /// Last sample
-    int32_t cachedSample;
+    int32_t cachedSample = 0;
 
     /// Number of cycles per sample
     const int cyclesPerSample;
 
-    int sampleOffset;
+    int sampleOffset = 0;
 
     /// Calculated sample
-    int32_t outputValue;
+    int32_t outputValue = 0;
 
 public:
     ZeroOrderResampler(double clockFrequency, double samplingFrequency) :
-        cachedSample(0),
-        cyclesPerSample(static_cast<int>(clockFrequency / samplingFrequency * 
1024.)),
-        sampleOffset(0),
-        outputValue(0) {}
+        cyclesPerSample(static_cast<int>(clockFrequency / samplingFrequency * 
1024.))
+    {}
 
     bool input(int sample) override
     {
         bool ready = false;
 
-        if (sampleOffset < 1024)
+        if (unlikely(sampleOffset < 1024))
         {
             outputValue = cachedSample + (sampleOffset * (sample - 
cachedSample) >> 10);
             ready = true;
@@ -81,6 +79,7 @@
     {
         sampleOffset = 0;
         cachedSample = 0;
+        outputValue = 0;
     }
 };
 

Reply via email to