Checkpoint

This commit is contained in:
Robin E. R. Davies
2025-08-01 18:24:54 -04:00
parent af5b1542b1
commit aa13301b84
16 changed files with 415 additions and 388 deletions
+2 -1
View File
@@ -114,7 +114,8 @@
{
"name": "LD_LIBRARY_PATH",
"value": "/usr/local/lib/aarch64-linux-gnu"
}
},
],
"externalConsole": false,
"MIMode": "gdb",
+1 -1
View File
@@ -168,7 +168,7 @@
"cSpell.ignoreWords": [
"nammodel"
],
"cSpell.enabled": true,
"cSpell.enabled": false,
// Disable all automatic completion suggestions - only show when Ctrl+Space is pressed
"editor.quickSuggestions": {
Binary file not shown.
+17 -14
View File
@@ -427,6 +427,7 @@ namespace pipedal
std::string discover_alsa_using_apps()
{
return ""; // xxx fix me.
}
@@ -1119,6 +1120,7 @@ namespace pipedal
int err;
if ((err = snd_pcm_start(captureHandle)) < 0)
{
Lv2Log::error(SS("Unable to restart ALSA capture: " << snd_strerror(err)));
throw PiPedalStateException("Unable to restart ALSA capture.");
}
@@ -1286,7 +1288,7 @@ namespace pipedal
{
message =
SS("Device " << alsa_device_name << " in use. The following applications are using your soundcard: " << apps
<< ". Stop them as neccesary before trying to pipedald.");
<< ". Stop them as neccesary before trying to start pipedald.");
}
else
{
@@ -1411,14 +1413,11 @@ namespace pipedal
{
throw PiPedalStateException(SS("Audio playback failed. " << snd_strerror(err)));
}
std::this_thread::sleep_for(std::chrono::milliseconds(100));
std::this_thread::sleep_for(std::chrono::milliseconds(10));
continue;
}
if (avail == 0)
break;
if (avail > this->bufferSize)
avail = this->bufferSize;
ssize_t err = WriteBuffer(playbackHandle, rawPlaybackBuffer.data(), avail);
if (err < 0)
{
@@ -1429,6 +1428,8 @@ namespace pipedal
}
void recover_from_output_underrun(snd_pcm_t *capture_handle, snd_pcm_t *playback_handle, int err)
{
Lv2Log::error("XXX: Output underrun");
validate_capture_handle();
try {
@@ -1437,12 +1438,15 @@ namespace pipedal
err = snd_pcm_prepare(playback_handle);
if (err < 0)
{
Lv2Log::error(SS("Can't recover from ALSA output underrun. (" << snd_strerror(err) << ")"));
throw PiPedalStateException(SS("Can't recover from ALSA output underrun. (" << snd_strerror(err) << ")"));
}
snd_pcm_drain(capture_handle);
FillOutputBuffer();
}
else
{
Lv2Log::error(SS("Can't recover from ALSA output underrun. (" << snd_strerror(err) << ")"));
throw PiPedalStateException(SS("Can't recover from ALSA output error. (" << snd_strerror(err) << ")"));
}
} catch (const std::exception &e) {
@@ -1454,6 +1458,7 @@ namespace pipedal
}
void recover_from_input_underrun(snd_pcm_t *capture_handle, snd_pcm_t *playback_handle, int err)
{
Lv2Log::error("XXX: Input underring");
validate_capture_handle();
try {
@@ -1463,12 +1468,7 @@ namespace pipedal
// Unlink the streams before recovery
snd_pcm_unlink(capture_handle);
err = snd_pcm_drop(capture_handle);
if (err < 0)
{
throw PiPedalStateException(SS("Can't recover from ALSA underrun. (" << snd_strerror(err) << ")"));
}
err = snd_pcm_drop(playback_handle);
err = snd_pcm_drain(capture_handle);
if (err < 0)
{
throw PiPedalStateException(SS("Can't recover from ALSA underrun. (" << snd_strerror(err) << ")"));
@@ -1484,8 +1484,6 @@ namespace pipedal
throw std::runtime_error(SS("Cannot prepare capture stream: " << snd_strerror(err)));
}
// Fill the playback buffer with silence
FillOutputBuffer();
// Resynchronize the streams
if ((err = snd_pcm_link(capture_handle, playback_handle)) < 0)
@@ -1494,10 +1492,12 @@ namespace pipedal
}
// Start the streams
FillOutputBuffer();
if ((err = snd_pcm_start(capture_handle)) < 0)
{
throw std::runtime_error(SS("Cannot restart capture stream: " << snd_strerror(err)));
}
validate_capture_handle();
}
else if (err == ESTRPIPE)
@@ -1507,7 +1507,7 @@ namespace pipedal
while ((err = snd_pcm_resume(capture_handle)) == -EAGAIN)
{
sleep(1);
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
if (err < 0)
{
@@ -1640,6 +1640,8 @@ namespace pipedal
void AudioThread()
{
SetThreadName("alsaDriver");
try
{
SetThreadPriority(SchedulerPriority::RealtimeAudio);
@@ -1725,6 +1727,7 @@ namespace pipedal
if (err < 0)
{
this->driverHost->OnUnderrun();
recover_from_output_underrun(captureHandle, playbackHandle, err);
}
cpuUse.AddSample(ProfileCategory::Write);
+7
View File
@@ -870,6 +870,13 @@ Lv2PluginInfo::Lv2PluginInfo(PluginHost *lv2Host, LilvWorld *pWorld, const LilvP
const LilvPluginClass *pClass = lilv_plugin_get_class(pPlugin);
this->plugin_class_ = nodeAsString(lilv_plugin_class_get_uri(pClass));
if (this->plugin_class_ == "") // carla does this.
{
// set to plain Plugin.
this->plugin_class_ = "http://lv2plug.in/ns/lv2core#Plugin";
}
AutoLilvNodes required_features = lilv_plugin_get_required_features(pPlugin);
this->required_features_ = nodeAsStringArray(required_features);
+8 -2
View File
@@ -163,8 +163,9 @@ void Worker::WaitForAllResponses()
std::this_thread::sleep_for(std::chrono::milliseconds(50));
std::chrono::milliseconds waitDuration = std::chrono::duration_cast<std::chrono::milliseconds>(Clock::now()-startTime);
if (waitDuration.count() > 1500) {
Lv2Log::error("Timed out waiting for a Worker task to complete.");
// better to leak than to terminate the application.
Lv2Log::error("Timed out waiting for a Worker task to complete.");
break;
}
}
}
@@ -327,7 +328,12 @@ LV2_Worker_Status HostWorkerThread::ScheduleWorkNoLock(Worker *worker, size_t si
void Worker::RunBackgroundTask(size_t size, uint8_t *data)
{
workerInterface->work(lilvInstance->lv2_handle, worker_respond_fn, (LV2_Handle)this, size, data);
try {
workerInterface->work(lilvInstance->lv2_handle, worker_respond_fn, (LV2_Handle)this, size, data);
} catch (const std::exception &e)
{
Lv2Log::error(SS("Unhandled exception on LV2 Worker thread: " << e.what()));
}
{
std::lock_guard lock { this->outstandingRequestMutex};
--this->outstandingRequests;
+25
View File
@@ -106,6 +106,27 @@ static bool isJackServiceRunning()
// }
#endif
#define ENABLE_SEGV_DEBUG 0
#if ENABLE_SEGV_DEBUG
void debug_segvHandler(int sig)
{
// Print out all the frames to stderr
const char *message = "Error: SEGV signal received.\n";
auto _ = write(STDERR_FILENO, message, strlen(message));
_exit(EXIT_FAILURE);
}
static void EnableDebugSevHandler()
{
signal(SIGSEGV, debug_segvHandler);
signal(SIGILL, debug_segvHandler);
signal(SIGKILL, debug_segvHandler);
}
#endif
static bool TryGetLogLevel(const std::string &strLogLevel, LogLevel *result)
{
if (strLogLevel == "debug")
@@ -331,9 +352,13 @@ int main(int argc, char *argv[])
while (sigtimedwait(&sigSet, NULL, &timeout) > 0) {
// Consume any pending signals
}
#if ENABLE_SEGV_DEBUG
EnableDebugSevHandler();
#endif
PiPedalModel model;
model.SetNetworkChangedListener(
[&server]() mutable
{
+1 -6
View File
@@ -1,10 +1,5 @@
Crash-proofing: do not reload pedalboard if the previous run crashed before normal shutdown.
MOD ir uses some scheme to limit the minimum buffer size, which is not implemented in Pipedal.
wa
Vu Meters, move rendering to background images, in order to reduce layout overhead.
Carla Project icons.
check reload after change of LV2 plugins.
Exactly one underrun per seek in Toob Player
+279 -339
View File
@@ -1,339 +1,279 @@
==587874== Memcheck, a memory error detector
==587874== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==587874== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==587874== Command: ./build/src/pipedald /etc/pipedal/config ./vite/dist -port 0.0.0.0:8080 -log-level debug
==587874== Parent PID: 587873
==587874==
==587874==
==587874== HEAP SUMMARY:
==587874== in use at exit: 96,771 bytes in 635 blocks
==587874== total heap usage: 1,049,648 allocs, 1,049,013 frees, 168,645,673 bytes allocated
==587874==
==587874== 22 bytes in 1 blocks are definitely lost in loss record 11 of 117
==587874== at 0x48850C8: malloc (vg_replace_malloc.c:381)
==587874== by 0x61CC32F: ???
==587874== by 0x61AFFC3: ???
==587874== by 0x61B01DB: ???
==587874== by 0x61AF9D7: ???
==587874== by 0x61B0267: ???
==587874== by 0x61B0677: ???
==587874== by 0x61B0C1B: ???
==587874== by 0x61B0C47: ???
==587874== by 0x5F043DB: ???
==587874== by 0x5F04613: ???
==587874== by 0x6036B87: ???
==587874==
==587874== 32 bytes in 1 blocks are definitely lost in loss record 19 of 117
==587874== at 0x4886B58: operator new[](unsigned long) (vg_replace_malloc.c:640)
==587874== by 0x13E98F13: toob::WavReader::ReadData() (WavReader.cpp:399)
==587874== by 0x13E9900F: toob::WavReader::Read(toob::AudioData&) (WavReader.cpp:415)
==587874== by 0x13E99097: toob::WavReader::Load(std::filesystem::__cxx11::path const&) (WavReader.cpp:431)
==587874== by 0x13E7E5BF: toob::ToobConvolutionReverbBase::LoadWorker::LoadFile(std::filesystem::__cxx11::path const&, float) (ToobConvolutionReverb.cpp:824)
==587874== by 0x13E7EA9F: toob::ToobConvolutionReverbBase::LoadWorker::OnWork() (ToobConvolutionReverb.cpp:884)
==587874== by 0x13DC564B: lv2c::lv2_plugin::Lv2Plugin::WorkerAction::Work(LV2_Worker_Status (*)(void*, unsigned int, void const*), void*) (Lv2Plugin.cpp:372)
==587874== by 0x13DC6DBB: lv2c::lv2_plugin::Lv2Plugin::OnWork(LV2_Worker_Status (*)(void*, unsigned int, void const*), void*, unsigned int, void const*) (Lv2Plugin.hpp:323)
==587874== by 0x13DC47B7: lv2c::lv2_plugin::Lv2Plugin::work(void*, LV2_Worker_Status (*)(void*, unsigned int, void const*), void*, unsigned int, void const*) (Lv2Plugin.cpp:85)
==587874== by 0x3AB21F: pipedal::Worker::RunBackgroundTask(unsigned long, unsigned char*) (Worker.cpp:330)
==587874== by 0x3AAC8F: pipedal::HostWorkerThread::ThreadProc() (Worker.cpp:236)
==587874== by 0x3AAE83: pipedal::HostWorkerThread::StartThread()::{lambda()#1}::operator()() const (Worker.cpp:259)
==587874==
==587874== 43 bytes in 1 blocks are definitely lost in loss record 30 of 117
==587874== at 0x488A1C4: realloc (vg_replace_malloc.c:1437)
==587874== by 0x5902A2B: serd_chunk_sink (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x5902A87: serd_chunk_sink_finish (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x58FDA67: serd_file_uri_parse (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x3D4E7B: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:209)
==587874== by 0x4747B7: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1048)
==587874== by 0x49FC8B: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==587874== by 0x49CA5F: void std::allocator_traits<std::allocator<void> >::construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>&, pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (alloc_traits.h:635)
==587874== by 0x499297: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==587874== by 0x49190B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==587874== by 0x48B37F: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==587874== by 0x485247: std::shared_ptr<pipedal::Lv2PluginInfo>::shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:464)
==587874==
==587874== 48 bytes in 2 blocks are definitely lost in loss record 42 of 117
==587874== at 0x48850C8: malloc (vg_replace_malloc.c:381)
==587874== by 0x4B67D9B: lilv_node_duplicate (in /usr/lib/aarch64-linux-gnu/liblilv-0.so.0.24.14)
==587874== by 0x4B707C7: lilv_world_get (in /usr/lib/aarch64-linux-gnu/liblilv-0.so.0.24.14)
==587874== by 0x3D5083: pipedal::ModGuiPort::ModGuiPort(pipedal::PluginHost*, LilvNodeImpl const*) (ModGui.cpp:230)
==587874== by 0x3D4877: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:170)
==587874== by 0x3D4F5F: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==587874== by 0x4747B7: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1048)
==587874== by 0x49FC8B: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==587874== by 0x49CA5F: void std::allocator_traits<std::allocator<void> >::construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>&, pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (alloc_traits.h:635)
==587874== by 0x499297: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==587874== by 0x49190B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==587874== by 0x48B37F: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==587874==
==587874== 48 bytes in 2 blocks are definitely lost in loss record 43 of 117
==587874== at 0x48850C8: malloc (vg_replace_malloc.c:381)
==587874== by 0x4B67D9B: lilv_node_duplicate (in /usr/lib/aarch64-linux-gnu/liblilv-0.so.0.24.14)
==587874== by 0x4B707C7: lilv_world_get (in /usr/lib/aarch64-linux-gnu/liblilv-0.so.0.24.14)
==587874== by 0x3D50B3: pipedal::ModGuiPort::ModGuiPort(pipedal::PluginHost*, LilvNodeImpl const*) (ModGui.cpp:231)
==587874== by 0x3D4877: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:170)
==587874== by 0x3D4F5F: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==587874== by 0x4747B7: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1048)
==587874== by 0x49FC8B: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==587874== by 0x49CA5F: void std::allocator_traits<std::allocator<void> >::construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>&, pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (alloc_traits.h:635)
==587874== by 0x499297: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==587874== by 0x49190B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==587874== by 0x48B37F: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==587874==
==587874== 48 bytes in 2 blocks are definitely lost in loss record 44 of 117
==587874== at 0x48850C8: malloc (vg_replace_malloc.c:381)
==587874== by 0x4B67D9B: lilv_node_duplicate (in /usr/lib/aarch64-linux-gnu/liblilv-0.so.0.24.14)
==587874== by 0x4B707C7: lilv_world_get (in /usr/lib/aarch64-linux-gnu/liblilv-0.so.0.24.14)
==587874== by 0x3D50EB: pipedal::ModGuiPort::ModGuiPort(pipedal::PluginHost*, LilvNodeImpl const*) (ModGui.cpp:232)
==587874== by 0x3D4877: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:170)
==587874== by 0x3D4F5F: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==587874== by 0x4747B7: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1048)
==587874== by 0x49FC8B: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==587874== by 0x49CA5F: void std::allocator_traits<std::allocator<void> >::construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>&, pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (alloc_traits.h:635)
==587874== by 0x499297: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==587874== by 0x49190B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==587874== by 0x48B37F: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==587874==
==587874== 51 bytes in 1 blocks are definitely lost in loss record 45 of 117
==587874== at 0x488A1C4: realloc (vg_replace_malloc.c:1437)
==587874== by 0x5902A2B: serd_chunk_sink (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x5902A87: serd_chunk_sink_finish (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x58FDA67: serd_file_uri_parse (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x3D4527: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:128)
==587874== by 0x3D4F5F: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==587874== by 0x4747B7: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1048)
==587874== by 0x49FC8B: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==587874== by 0x49CA5F: void std::allocator_traits<std::allocator<void> >::construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>&, pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (alloc_traits.h:635)
==587874== by 0x499297: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==587874== by 0x49190B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==587874== by 0x48B37F: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==587874==
==587874== 56 bytes in 1 blocks are definitely lost in loss record 51 of 117
==587874== at 0x48850C8: malloc (vg_replace_malloc.c:381)
==587874== by 0x6223FC7: ???
==587874== by 0x6222503: ???
==587874== by 0x6223197: ???
==587874== by 0x6223343: ???
==587874== by 0x6223AB7: ???
==587874== by 0x5F04453: ???
==587874== by 0x5F04613: ???
==587874== by 0x6036B87: ???
==587874== by 0x5EED7B7: ???
==587874== by 0x5EEE143: ???
==587874== by 0x60367A7: ???
==587874==
==587874== 57 bytes in 1 blocks are definitely lost in loss record 52 of 117
==587874== at 0x488A1C4: realloc (vg_replace_malloc.c:1437)
==587874== by 0x5902A2B: serd_chunk_sink (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x5902A87: serd_chunk_sink_finish (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x58FDA67: serd_file_uri_parse (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x3D42B7: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:99)
==587874== by 0x3D4F5F: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==587874== by 0x4747B7: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1048)
==587874== by 0x49FC8B: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==587874== by 0x49CA5F: void std::allocator_traits<std::allocator<void> >::construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>&, pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (alloc_traits.h:635)
==587874== by 0x499297: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==587874== by 0x49190B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==587874== by 0x48B37F: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==587874==
==587874== 61 bytes in 1 blocks are definitely lost in loss record 54 of 117
==587874== at 0x488A1C4: realloc (vg_replace_malloc.c:1437)
==587874== by 0x5902A2B: serd_chunk_sink (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x5902A87: serd_chunk_sink_finish (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x58FDA67: serd_file_uri_parse (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x3D44BF: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:124)
==587874== by 0x3D4F5F: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==587874== by 0x4747B7: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1048)
==587874== by 0x49FC8B: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==587874== by 0x49CA5F: void std::allocator_traits<std::allocator<void> >::construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>&, pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (alloc_traits.h:635)
==587874== by 0x499297: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==587874== by 0x49190B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==587874== by 0x48B37F: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==587874==
==587874== 62 bytes in 1 blocks are definitely lost in loss record 55 of 117
==587874== at 0x488A1C4: realloc (vg_replace_malloc.c:1437)
==587874== by 0x5902A2B: serd_chunk_sink (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x5902A87: serd_chunk_sink_finish (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x58FDA67: serd_file_uri_parse (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x3D43EF: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:114)
==587874== by 0x3D4F5F: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==587874== by 0x4747B7: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1048)
==587874== by 0x49FC8B: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==587874== by 0x49CA5F: void std::allocator_traits<std::allocator<void> >::construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>&, pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (alloc_traits.h:635)
==587874== by 0x499297: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==587874== by 0x49190B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==587874== by 0x48B37F: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==587874==
==587874== 62 bytes in 1 blocks are definitely lost in loss record 56 of 117
==587874== at 0x488A1C4: realloc (vg_replace_malloc.c:1437)
==587874== by 0x5902A2B: serd_chunk_sink (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x5902A87: serd_chunk_sink_finish (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x58FDA67: serd_file_uri_parse (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16)
==587874== by 0x3D4457: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:119)
==587874== by 0x3D4F5F: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==587874== by 0x4747B7: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1048)
==587874== by 0x49FC8B: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==587874== by 0x49CA5F: void std::allocator_traits<std::allocator<void> >::construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>&, pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (alloc_traits.h:635)
==587874== by 0x499297: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==587874== by 0x49190B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==587874== by 0x48B37F: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==587874==
==587874== 88 bytes in 1 blocks are definitely lost in loss record 62 of 117
==587874== at 0x48850C8: malloc (vg_replace_malloc.c:381)
==587874== by 0x624EF8B: ???
==587874== by 0x61BD1E7: ???
==587874== by 0x61BD3AF: ???
==587874== by 0x61BD46B: ???
==587874== by 0x5F0C0E7: ???
==587874== by 0x5EFA637: ???
==587874== by 0x5F043AB: ???
==587874== by 0x5F04613: ???
==587874== by 0x6036B87: ???
==587874== by 0x5EED7B7: ???
==587874== by 0x5EEE143: ???
==587874==
==587874== 176 bytes in 2 blocks are definitely lost in loss record 71 of 117
==587874== at 0x4885828: operator new(unsigned long) (vg_replace_malloc.c:422)
==587874== by 0x27E247: void PiPedalSocketHandler::Request<bool, NotifyAtomOutputBody>(char const*, NotifyAtomOutputBody const&, std::function<void (bool const&)>, std::function<void (std::exception const&)>) (PiPedalSocket.cpp:895)
==587874== by 0x270453: PiPedalSocketHandler::OnNotifyPatchProperty(long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (PiPedalSocket.cpp:2196)
==587874== by 0x2EEB07: pipedal::PiPedalModel::MonitorPatchProperty(long, long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (PiPedalModel.cpp:2380)
==587874== by 0x26BC57: PiPedalSocketHandler::handleMessage(int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pipedal::json_reader*) (PiPedalSocket.cpp:1161)
==587874== by 0x26EE67: PiPedalSocketHandler::onReceive(std::basic_string_view<char, std::char_traits<char> > const&) (PiPedalSocket.cpp:1855)
==587874== by 0x1F56CB: pipedal::WebServerImpl::WebSocketSession::on_message(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >) (WebServer.cpp:857)
==587874== by 0x225A2F: void std::__invoke_impl<void, void (pipedal::WebServerImpl::WebSocketSession::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), pipedal::WebServerImpl::WebSocketSession*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> > >(std::__invoke_memfun_deref, void (pipedal::WebServerImpl::WebSocketSession::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), pipedal::WebServerImpl::WebSocketSession*&, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&) (invoke.h:74)
==587874== by 0x220083: std::__invoke_result<void (pipedal::WebServerImpl::WebSocketSession::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), pipedal::WebServerImpl::WebSocketSession*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> > >::type std::__invoke<void (pipedal::WebServerImpl::WebSocketSession::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), pipedal::WebServerImpl::WebSocketSession*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> > >(void (pipedal::WebServerImpl::WebSocketSession::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), pipedal::WebServerImpl::WebSocketSession*&, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&) (invoke.h:96)
==587874== by 0x21ABD7: void std::_Bind<void (pipedal::WebServerImpl::WebSocketSession::*(pipedal::WebServerImpl::WebSocketSession*, std::_Placeholder<1>, std::_Placeholder<2>))(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >)>::__call<void, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&, 0ul, 1ul, 2ul>(std::tuple<std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (functional:484)
==587874== by 0x21496F: void std::_Bind<void (pipedal::WebServerImpl::WebSocketSession::*(pipedal::WebServerImpl::WebSocketSession*, std::_Placeholder<1>, std::_Placeholder<2>))(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >)>::operator()<std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, void>(std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&) (functional:567)
==587874== by 0x20E6F3: void std::__invoke_impl<void, std::_Bind<void (pipedal::WebServerImpl::WebSocketSession::*(pipedal::WebServerImpl::WebSocketSession*, std::_Placeholder<1>, std::_Placeholder<2>))(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >)>&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> > >(std::__invoke_other, std::_Bind<void (pipedal::WebServerImpl::WebSocketSession::*(pipedal::WebServerImpl::WebSocketSession*, std::_Placeholder<1>, std::_Placeholder<2>))(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >)>&, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&) (invoke.h:61)
==587874==
==587874== 176 bytes in 2 blocks are definitely lost in loss record 72 of 117
==587874== at 0x4885828: operator new(unsigned long) (vg_replace_malloc.c:422)
==587874== by 0x27D5AF: void PiPedalSocketHandler::Request<bool, pipedal::VuUpdate>(char const*, pipedal::VuUpdate const&, std::function<void (bool const&)>, std::function<void (std::exception const&)>) (PiPedalSocket.cpp:895)
==587874== by 0x26F85F: PiPedalSocketHandler::OnVuMeterUpdate(std::vector<pipedal::VuUpdate, std::allocator<pipedal::VuUpdate> > const&) (PiPedalSocket.cpp:2020)
==587874== by 0x2EB9CF: pipedal::PiPedalModel::OnNotifyVusSubscription(std::vector<pipedal::VuUpdate, std::allocator<pipedal::VuUpdate> > const&) (PiPedalModel.cpp:1633)
==587874== by 0x35F833: AudioHostImpl::ThreadProc() (AudioHost.cpp:1465)
==587874== by 0x360063: AudioHostImpl::StartReaderThread()::{lambda()#1}::operator()() const (AudioHost.cpp:1645)
==587874== by 0x3748D7: void std::__invoke_impl<void, AudioHostImpl::StartReaderThread()::{lambda()#1}>(std::__invoke_other, AudioHostImpl::StartReaderThread()::{lambda()#1}&&) (invoke.h:61)
==587874== by 0x3747EB: std::__invoke_result<AudioHostImpl::StartReaderThread()::{lambda()#1}>::type std::__invoke<AudioHostImpl::StartReaderThread()::{lambda()#1}>(AudioHostImpl::StartReaderThread()::{lambda()#1}&&) (invoke.h:96)
==587874== by 0x3746EB: void std::thread::_Invoker<std::tuple<AudioHostImpl::StartReaderThread()::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (std_thread.h:252)
==587874== by 0x37465B: std::thread::_Invoker<std::tuple<AudioHostImpl::StartReaderThread()::{lambda()#1}> >::operator()() (std_thread.h:259)
==587874== by 0x374167: std::thread::_State_impl<std::thread::_Invoker<std::tuple<AudioHostImpl::StartReaderThread()::{lambda()#1}> > >::_M_run() (std_thread.h:210)
==587874== by 0x4CBE9DB: ??? (in /usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30)
==587874==
==587874== 1,760 bytes in 20 blocks are definitely lost in loss record 98 of 117
==587874== at 0x4885828: operator new(unsigned long) (vg_replace_malloc.c:422)
==587874== by 0x27746F: void PiPedalSocketHandler::Request<bool, MonitorResultBody>(char const*, MonitorResultBody const&, std::function<void (bool const&)>, std::function<void (std::exception const&)>) (PiPedalSocket.cpp:895)
==587874== by 0x26A42F: PiPedalSocketHandler::SendMonitorPortMessage_Inner(std::shared_ptr<PiPedalSocketHandler::PortMonitorSubscription>&, float) (PiPedalSocket.cpp:996)
==587874== by 0x26A16F: PiPedalSocketHandler::SendMonitorPortMessage(std::shared_ptr<PiPedalSocketHandler::PortMonitorSubscription>&, float) (PiPedalSocket.cpp:986)
==587874== by 0x26A4C3: PiPedalSocketHandler::MonitorPort(int, MonitorPortBody&)::{lambda(long, float)#1}::operator()(long, float) const (PiPedalSocket.cpp:1047)
==587874== by 0x2B3FBF: void std::__invoke_impl<void, PiPedalSocketHandler::MonitorPort(int, MonitorPortBody&)::{lambda(long, float)#1}&, long, float>(std::__invoke_other, PiPedalSocketHandler::MonitorPort(int, MonitorPortBody&)::{lambda(long, float)#1}&, long&&, float&&) (invoke.h:61)
==587874== by 0x29D0B7: std::enable_if<is_invocable_r_v<void, PiPedalSocketHandler::MonitorPort(int, MonitorPortBody&)::{lambda(long, float)#1}&, long, float>, void>::type std::__invoke_r<void, PiPedalSocketHandler::MonitorPort(int, MonitorPortBody&)::{lambda(long, float)#1}&, long, float>(PiPedalSocketHandler::MonitorPort(int, MonitorPortBody&)::{lambda(long, float)#1}&, long&&, float&&) (invoke.h:111)
==587874== by 0x28AC7B: std::_Function_handler<void (long, float), PiPedalSocketHandler::MonitorPort(int, MonitorPortBody&)::{lambda(long, float)#1}>::_M_invoke(std::_Any_data const&, long&&, float&&) (std_function.h:290)
==587874== by 0x2FC283: std::function<void (long, float)>::operator()(long, float) const (std_function.h:591)
==587874== by 0x2EBEF3: pipedal::PiPedalModel::OnNotifyMonitorPort(pipedal::MonitorPortUpdate const&) (PiPedalModel.cpp:1702)
==587874== by 0x35F7CB: AudioHostImpl::ThreadProc() (AudioHost.cpp:1454)
==587874== by 0x360063: AudioHostImpl::StartReaderThread()::{lambda()#1}::operator()() const (AudioHost.cpp:1645)
==587874==
==587874== 3,352 (80 direct, 3,272 indirect) bytes in 1 blocks are definitely lost in loss record 103 of 117
==587874== at 0x48850C8: malloc (vg_replace_malloc.c:381)
==587874== by 0x6225507: ???
==587874== by 0x61AFFEB: ???
==587874== by 0x61B01DB: ???
==587874== by 0x61AF9D7: ???
==587874== by 0x61B0267: ???
==587874== by 0x61B0677: ???
==587874== by 0x61B0C1B: ???
==587874== by 0x61B0C47: ???
==587874== by 0x5F043DB: ???
==587874== by 0x5F04613: ???
==587874== by 0x6036B87: ???
==587874==
==587874== 3,709 (80 direct, 3,629 indirect) bytes in 1 blocks are definitely lost in loss record 104 of 117
==587874== at 0x48850C8: malloc (vg_replace_malloc.c:381)
==587874== by 0x6225507: ???
==587874== by 0x625268B: ???
==587874== by 0x603751B: ???
==587874== by 0x623C53B: ???
==587874== by 0x6036AA7: ???
==587874== by 0x6036C17: ???
==587874== by 0x5EED7B7: ???
==587874== by 0x5EEE143: ???
==587874== by 0x60367A7: ???
==587874== by 0x1B6C97: CollatorImpl::CollatorImpl(std::shared_ptr<LocaleImpl>, char const*) (Locale.cpp:385)
==587874== by 0x1B712F: LocaleImpl::GetCollator() (Locale.cpp:444)
==587874==
==587874== 3,950 (56 direct, 3,894 indirect) bytes in 1 blocks are definitely lost in loss record 106 of 117
==587874== at 0x48850C8: malloc (vg_replace_malloc.c:381)
==587874== by 0x624EF8B: ???
==587874== by 0x623BE7B: ???
==587874== by 0x60360BF: ???
==587874== by 0x6036C0B: ???
==587874== by 0x5EED7B7: ???
==587874== by 0x5EEE143: ???
==587874== by 0x60367A7: ???
==587874== by 0x1B6C97: CollatorImpl::CollatorImpl(std::shared_ptr<LocaleImpl>, char const*) (Locale.cpp:385)
==587874== by 0x1B712F: LocaleImpl::GetCollator() (Locale.cpp:444)
==587874== by 0x156C67: main (main.cpp:303)
==587874==
==587874== 4,264 bytes in 1 blocks are definitely lost in loss record 113 of 117
==587874== at 0x48850C8: malloc (vg_replace_malloc.c:381)
==587874== by 0x624EFDF: ???
==587874== by 0x61B063F: ???
==587874== by 0x61B0C1B: ???
==587874== by 0x61B0C47: ???
==587874== by 0x5F043DB: ???
==587874== by 0x5F04613: ???
==587874== by 0x6036B87: ???
==587874== by 0x5EED7B7: ???
==587874== by 0x5EEE143: ???
==587874== by 0x60367A7: ???
==587874== by 0x1B6C97: CollatorImpl::CollatorImpl(std::shared_ptr<LocaleImpl>, char const*) (Locale.cpp:385)
==587874==
==587874== 5,804 (256 direct, 5,548 indirect) bytes in 1 blocks are definitely lost in loss record 114 of 117
==587874== at 0x48850C8: malloc (vg_replace_malloc.c:381)
==587874== by 0x624EF8B: ???
==587874== by 0x5F043CF: ???
==587874== by 0x5F04613: ???
==587874== by 0x6036B87: ???
==587874== by 0x5EED7B7: ???
==587874== by 0x5EEE143: ???
==587874== by 0x60367A7: ???
==587874== by 0x1B6C97: CollatorImpl::CollatorImpl(std::shared_ptr<LocaleImpl>, char const*) (Locale.cpp:385)
==587874== by 0x1B712F: LocaleImpl::GetCollator() (Locale.cpp:444)
==587874== by 0x156C67: main (main.cpp:303)
==587874==
==587874== 6,080 bytes in 190 blocks are definitely lost in loss record 115 of 117
==587874== at 0x4885828: operator new(unsigned long) (vg_replace_malloc.c:422)
==587874== by 0x361553: AudioHostImpl::MakeRealtimeSubscription(pipedal::MonitorPortSubscription const&) (AudioHost.cpp:1962)
==587874== by 0x36173B: AudioHostImpl::SetMonitorPortSubscriptions(std::vector<pipedal::MonitorPortSubscription, std::allocator<pipedal::MonitorPortSubscription> > const&) (AudioHost.cpp:1985)
==587874== by 0x2EBC5B: pipedal::PiPedalModel::UpdateRealtimeMonitorPortSubscriptions() (PiPedalModel.cpp:1663)
==587874== by 0x2EBE0B: pipedal::PiPedalModel::UnmonitorPort(long) (PiPedalModel.cpp:1686)
==587874== by 0x2692C3: PiPedalSocketHandler::FinalCleanup() (PiPedalSocket.cpp:671)
==587874== by 0x26943F: PiPedalSocketHandler::Close() (PiPedalSocket.cpp:692)
==587874== by 0x2E556B: pipedal::PiPedalModel::Close() (PiPedalModel.cpp:155)
==587874== by 0x156ED7: main (main.cpp:418)
==587874==
==587874== 6,720 bytes in 210 blocks are definitely lost in loss record 116 of 117
==587874== at 0x4885828: operator new(unsigned long) (vg_replace_malloc.c:422)
==587874== by 0x361553: AudioHostImpl::MakeRealtimeSubscription(pipedal::MonitorPortSubscription const&) (AudioHost.cpp:1962)
==587874== by 0x36173B: AudioHostImpl::SetMonitorPortSubscriptions(std::vector<pipedal::MonitorPortSubscription, std::allocator<pipedal::MonitorPortSubscription> > const&) (AudioHost.cpp:1985)
==587874== by 0x2EBC5B: pipedal::PiPedalModel::UpdateRealtimeMonitorPortSubscriptions() (PiPedalModel.cpp:1663)
==587874== by 0x2EBD23: pipedal::PiPedalModel::MonitorPort(long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, float, std::function<void (long, float)>) (PiPedalModel.cpp:1673)
==587874== by 0x26A58F: PiPedalSocketHandler::MonitorPort(int, MonitorPortBody&) (PiPedalSocket.cpp:1037)
==587874== by 0x26D6DF: PiPedalSocketHandler::handleMessage(int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pipedal::json_reader*) (PiPedalSocket.cpp:1598)
==587874== by 0x26EE67: PiPedalSocketHandler::onReceive(std::basic_string_view<char, std::char_traits<char> > const&) (PiPedalSocket.cpp:1855)
==587874== by 0x1F56CB: pipedal::WebServerImpl::WebSocketSession::on_message(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >) (WebServer.cpp:857)
==587874== by 0x225A2F: void std::__invoke_impl<void, void (pipedal::WebServerImpl::WebSocketSession::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), pipedal::WebServerImpl::WebSocketSession*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> > >(std::__invoke_memfun_deref, void (pipedal::WebServerImpl::WebSocketSession::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), pipedal::WebServerImpl::WebSocketSession*&, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&) (invoke.h:74)
==587874== by 0x220083: std::__invoke_result<void (pipedal::WebServerImpl::WebSocketSession::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), pipedal::WebServerImpl::WebSocketSession*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> > >::type std::__invoke<void (pipedal::WebServerImpl::WebSocketSession::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), pipedal::WebServerImpl::WebSocketSession*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> > >(void (pipedal::WebServerImpl::WebSocketSession::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), pipedal::WebServerImpl::WebSocketSession*&, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&) (invoke.h:96)
==587874== by 0x21ABD7: void std::_Bind<void (pipedal::WebServerImpl::WebSocketSession::*(pipedal::WebServerImpl::WebSocketSession*, std::_Placeholder<1>, std::_Placeholder<2>))(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >)>::__call<void, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&, 0ul, 1ul, 2ul>(std::tuple<std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (functional:484)
==587874==
==587874== LEAK SUMMARY:
==587874== definitely lost: 20,326 bytes in 445 blocks
==587874== indirectly lost: 16,343 bytes in 30 blocks
==587874== possibly lost: 0 bytes in 0 blocks
==587874== still reachable: 60,102 bytes in 160 blocks
==587874== suppressed: 0 bytes in 0 blocks
==587874== Reachable blocks (those to which a pointer was found) are not shown.
==587874== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==587874==
==587874== For lists of detected and suppressed errors, rerun with: -s
==587874== ERROR SUMMARY: 23 errors from 23 contexts (suppressed: 0 from 0)
==82092== Memcheck, a memory error detector
==82092== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==82092== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==82092== Command: ./build/src/pipedald /etc/pipedal/config ./vite/dist -port 0.0.0.0:8080 -log-level debug
==82092== Parent PID: 82091
==82092==
==82092== Syscall param ioctl(generic) points to uninitialised byte(s)
==82092== at 0x4FB3DED: ioctl (ioctl.c:36)
==82092== by 0x48C24D0: ??? (in /usr/lib/x86_64-linux-gnu/libasound.so.2.0.0)
==82092== by 0x41452E: pipedal::AlsaDriverImpl::AlsaCloseAudio() (AlsaDriver.cpp:397)
==82092== by 0x41468F: pipedal::AlsaDriverImpl::AlsaCleanup() (AlsaDriver.cpp:425)
==82092== by 0x41CC5E: pipedal::AlsaDriverImpl::Close() (AlsaDriver.cpp:1912)
==82092== by 0x39F689: AudioHostImpl::Close() (AudioHost.cpp:580)
==82092== by 0x314747: pipedal::PiPedalModel::Close() (PiPedalModel.cpp:165)
==82092== by 0x159B37: main (main.cpp:425)
==82092== Address 0x1ffeffe5cc is on thread 1's stack
==82092==
==82092==
==82092== HEAP SUMMARY:
==82092== in use at exit: 35,347 bytes in 368 blocks
==82092== total heap usage: 9,183,128 allocs, 9,182,760 frees, 834,061,294 bytes allocated
==82092==
==82092== 22 bytes in 1 blocks are definitely lost in loss record 7 of 74
==82092== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x6101FAB: ???
==82092== by 0x60DC924: ???
==82092== by 0x60E5CE6: ???
==82092== by 0x60E623C: ???
==82092== by 0x60D97E1: ???
==82092== by 0x60DAAFF: ???
==82092== by 0x60E59EB: ???
==82092== by 0x60E5A23: ???
==82092== by 0x5E45BA7: ???
==82092== by 0x5E45E24: ???
==82092== by 0x5F764D2: ???
==82092==
==82092== 56 bytes in 1 blocks are definitely lost in loss record 23 of 74
==82092== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x61607FD: ???
==82092== by 0x61B8A4F: ???
==82092== by 0x615B267: ???
==82092== by 0x61B8BA5: ???
==82092== by 0x6165373: ???
==82092== by 0x5E45C6B: ???
==82092== by 0x5E45E24: ???
==82092== by 0x5F764D2: ???
==82092== by 0x5E2F318: ???
==82092== by 0x5E2F586: ???
==82092== by 0x5F7C099: ???
==82092==
==82092== 88 bytes in 1 blocks are definitely lost in loss record 28 of 74
==82092== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x618ABDC: ???
==82092== by 0x60F2640: ???
==82092== by 0x60F49D2: ???
==82092== by 0x60F4B1C: ???
==82092== by 0x5E405AB: ???
==82092== by 0x5E3C43F: ???
==82092== by 0x5E45B79: ???
==82092== by 0x5E45E24: ???
==82092== by 0x5F764D2: ???
==82092== by 0x5E2F318: ???
==82092== by 0x5E2F586: ???
==82092==
==82092== 115 bytes in 2 blocks are definitely lost in loss record 29 of 74
==82092== at 0x484DB80: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x58A9CCF: serd_chunk_sink (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9D33: serd_chunk_sink_finish (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9E7F: serd_file_uri_parse (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x425EF8: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:109)
==82092== by 0x42710E: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==82092== by 0x4DB519: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1049)
==82092== by 0x50BAE4: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==82092== by 0x505132: construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, const LilvPluginImpl*&> (alloc_traits.h:661)
==82092== by 0x505132: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==82092== by 0x4FD722: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==82092== by 0x4F5DDF: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==82092== by 0x4EF816: std::shared_ptr<pipedal::Lv2PluginInfo>::shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:464)
==82092==
==82092== 292 bytes in 8 blocks are definitely lost in loss record 50 of 74
==82092== at 0x484DB80: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x58A9CCF: serd_chunk_sink (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9D33: serd_chunk_sink_finish (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9E7F: serd_file_uri_parse (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x426FD9: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:209)
==82092== by 0x4DB519: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1049)
==82092== by 0x50BAE4: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==82092== by 0x505132: construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, const LilvPluginImpl*&> (alloc_traits.h:661)
==82092== by 0x505132: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==82092== by 0x4FD722: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==82092== by 0x4F5DDF: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==82092== by 0x4EF816: std::shared_ptr<pipedal::Lv2PluginInfo>::shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:464)
==82092== by 0x4EADF8: std::shared_ptr<pipedal::Lv2PluginInfo> std::make_shared<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:1010)
==82092==
==82092== 439 bytes in 8 blocks are definitely lost in loss record 54 of 74
==82092== at 0x484DB80: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x58A9CCF: serd_chunk_sink (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9D33: serd_chunk_sink_finish (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9E7F: serd_file_uri_parse (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x425DBC: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:99)
==82092== by 0x42710E: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==82092== by 0x4DB519: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1049)
==82092== by 0x50BAE4: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==82092== by 0x505132: construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, const LilvPluginImpl*&> (alloc_traits.h:661)
==82092== by 0x505132: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==82092== by 0x4FD722: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==82092== by 0x4F5DDF: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==82092== by 0x4EF816: std::shared_ptr<pipedal::Lv2PluginInfo>::shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:464)
==82092==
==82092== 454 bytes in 8 blocks are definitely lost in loss record 55 of 74
==82092== at 0x484DB80: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x58A9CCF: serd_chunk_sink (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9D33: serd_chunk_sink_finish (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9E7F: serd_file_uri_parse (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x4260D8: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:124)
==82092== by 0x42710E: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==82092== by 0x4DB519: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1049)
==82092== by 0x50BAE4: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==82092== by 0x505132: construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, const LilvPluginImpl*&> (alloc_traits.h:661)
==82092== by 0x505132: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==82092== by 0x4FD722: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==82092== by 0x4F5DDF: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==82092== by 0x4EF816: std::shared_ptr<pipedal::Lv2PluginInfo>::shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:464)
==82092==
==82092== 459 bytes in 8 blocks are definitely lost in loss record 56 of 74
==82092== at 0x484DB80: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x58A9CCF: serd_chunk_sink (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9D33: serd_chunk_sink_finish (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9E7F: serd_file_uri_parse (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x426038: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:119)
==82092== by 0x42710E: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==82092== by 0x4DB519: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1049)
==82092== by 0x50BAE4: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==82092== by 0x505132: construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, const LilvPluginImpl*&> (alloc_traits.h:661)
==82092== by 0x505132: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==82092== by 0x4FD722: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==82092== by 0x4F5DDF: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==82092== by 0x4EF816: std::shared_ptr<pipedal::Lv2PluginInfo>::shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:464)
==82092==
==82092== 479 bytes in 8 blocks are definitely lost in loss record 57 of 74
==82092== at 0x484DB80: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x58A9CCF: serd_chunk_sink (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9D33: serd_chunk_sink_finish (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x58A9E7F: serd_file_uri_parse (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.32.2)
==82092== by 0x425F98: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:114)
==82092== by 0x42710E: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==82092== by 0x4DB519: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1049)
==82092== by 0x50BAE4: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==82092== by 0x505132: construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, const LilvPluginImpl*&> (alloc_traits.h:661)
==82092== by 0x505132: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==82092== by 0x4FD722: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==82092== by 0x4F5DDF: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==82092== by 0x4EF816: std::shared_ptr<pipedal::Lv2PluginInfo>::shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:464)
==82092==
==82092== 1,992 bytes in 83 blocks are definitely lost in loss record 63 of 74
==82092== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x4AA841C: lilv_node_duplicate (in /usr/lib/x86_64-linux-gnu/liblilv-0.so.0.24.22)
==82092== by 0x4AAD1D2: lilv_world_get (in /usr/lib/x86_64-linux-gnu/liblilv-0.so.0.24.22)
==82092== by 0x4272AD: pipedal::ModGuiPort::ModGuiPort(pipedal::PluginHost*, LilvNodeImpl const*) (ModGui.cpp:230)
==82092== by 0x4266A8: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:170)
==82092== by 0x42710E: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==82092== by 0x4DB519: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1049)
==82092== by 0x50BAE4: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==82092== by 0x505132: construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, const LilvPluginImpl*&> (alloc_traits.h:661)
==82092== by 0x505132: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==82092== by 0x4FD722: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==82092== by 0x4F5DDF: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==82092== by 0x4EF816: std::shared_ptr<pipedal::Lv2PluginInfo>::shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:464)
==82092==
==82092== 1,992 bytes in 83 blocks are definitely lost in loss record 64 of 74
==82092== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x4AA841C: lilv_node_duplicate (in /usr/lib/x86_64-linux-gnu/liblilv-0.so.0.24.22)
==82092== by 0x4AAD1D2: lilv_world_get (in /usr/lib/x86_64-linux-gnu/liblilv-0.so.0.24.22)
==82092== by 0x4272E7: pipedal::ModGuiPort::ModGuiPort(pipedal::PluginHost*, LilvNodeImpl const*) (ModGui.cpp:231)
==82092== by 0x4266A8: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:170)
==82092== by 0x42710E: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==82092== by 0x4DB519: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1049)
==82092== by 0x50BAE4: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==82092== by 0x505132: construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, const LilvPluginImpl*&> (alloc_traits.h:661)
==82092== by 0x505132: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==82092== by 0x4FD722: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==82092== by 0x4F5DDF: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==82092== by 0x4EF816: std::shared_ptr<pipedal::Lv2PluginInfo>::shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:464)
==82092==
==82092== 1,992 bytes in 83 blocks are definitely lost in loss record 65 of 74
==82092== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x4AA841C: lilv_node_duplicate (in /usr/lib/x86_64-linux-gnu/liblilv-0.so.0.24.22)
==82092== by 0x4AAD1D2: lilv_world_get (in /usr/lib/x86_64-linux-gnu/liblilv-0.so.0.24.22)
==82092== by 0x427337: pipedal::ModGuiPort::ModGuiPort(pipedal::PluginHost*, LilvNodeImpl const*) (ModGui.cpp:232)
==82092== by 0x4266A8: pipedal::ModGui::ModGui(pipedal::PluginHost*, LilvPluginImpl const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, LilvNodeImpl const*) (ModGui.cpp:170)
==82092== by 0x42710E: pipedal::ModGui::Create(pipedal::PluginHost*, LilvPluginImpl const*) (ModGui.cpp:221)
==82092== by 0x4DB519: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:1049)
==82092== by 0x50BAE4: void std::_Construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119)
==82092== by 0x505132: construct<pipedal::Lv2PluginInfo, pipedal::PluginHost*, LilvWorldImpl*&, const LilvPluginImpl*&> (alloc_traits.h:661)
==82092== by 0x505132: std::_Sp_counted_ptr_inplace<pipedal::Lv2PluginInfo, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::allocator<void>, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604)
==82092== by 0x4FD722: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<pipedal::Lv2PluginInfo, std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971)
==82092== by 0x4F5DDF: std::__shared_ptr<pipedal::Lv2PluginInfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712)
==82092== by 0x4EF816: std::shared_ptr<pipedal::Lv2PluginInfo>::shared_ptr<std::allocator<void>, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:464)
==82092==
==82092== 3,352 (80 direct, 3,272 indirect) bytes in 1 blocks are definitely lost in loss record 70 of 74
==82092== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x6161246: ???
==82092== by 0x60DC94F: ???
==82092== by 0x60E5CE6: ???
==82092== by 0x60E623C: ???
==82092== by 0x60D97E1: ???
==82092== by 0x60DAAFF: ???
==82092== by 0x60E59EB: ???
==82092== by 0x60E5A23: ???
==82092== by 0x5E45BA7: ???
==82092== by 0x5E45E24: ???
==82092== by 0x5F764D2: ???
==82092==
==82092== 3,709 (80 direct, 3,629 indirect) bytes in 1 blocks are definitely lost in loss record 71 of 74
==82092== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x6161246: ???
==82092== by 0x61902DE: ???
==82092== by 0x5F765D7: ???
==82092== by 0x6179366: ???
==82092== by 0x5F7BE3D: ???
==82092== by 0x5F76550: ???
==82092== by 0x5E2F318: ???
==82092== by 0x5E2F586: ???
==82092== by 0x5F7C099: ???
==82092== by 0x1C366B: CollatorImpl::CollatorImpl(std::shared_ptr<LocaleImpl>, char const*) (Locale.cpp:385)
==82092== by 0x1C3C93: LocaleImpl::GetCollator() (Locale.cpp:444)
==82092==
==82092== 3,950 (56 direct, 3,894 indirect) bytes in 1 blocks are definitely lost in loss record 72 of 74
==82092== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x618ABDC: ???
==82092== by 0x6179016: ???
==82092== by 0x5F71D5E: ???
==82092== by 0x5F76545: ???
==82092== by 0x5E2F318: ???
==82092== by 0x5E2F586: ???
==82092== by 0x5F7C099: ???
==82092== by 0x1C366B: CollatorImpl::CollatorImpl(std::shared_ptr<LocaleImpl>, char const*) (Locale.cpp:385)
==82092== by 0x1C3C93: LocaleImpl::GetCollator() (Locale.cpp:444)
==82092== by 0x1597CF: main (main.cpp:303)
==82092==
==82092== 4,264 bytes in 1 blocks are definitely lost in loss record 73 of 74
==82092== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x618ABEC: ???
==82092== by 0x60DAAD3: ???
==82092== by 0x60E59EB: ???
==82092== by 0x60E5A23: ???
==82092== by 0x5E45BA7: ???
==82092== by 0x5E45E24: ???
==82092== by 0x5F764D2: ???
==82092== by 0x5E2F318: ???
==82092== by 0x5E2F586: ???
==82092== by 0x5F7C099: ???
==82092== by 0x1C366B: CollatorImpl::CollatorImpl(std::shared_ptr<LocaleImpl>, char const*) (Locale.cpp:385)
==82092==
==82092== 5,804 (256 direct, 5,548 indirect) bytes in 1 blocks are definitely lost in loss record 74 of 74
==82092== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==82092== by 0x618ABDC: ???
==82092== by 0x5E45B9A: ???
==82092== by 0x5E45E24: ???
==82092== by 0x5F764D2: ???
==82092== by 0x5E2F318: ???
==82092== by 0x5E2F586: ???
==82092== by 0x5F7C099: ???
==82092== by 0x1C366B: CollatorImpl::CollatorImpl(std::shared_ptr<LocaleImpl>, char const*) (Locale.cpp:385)
==82092== by 0x1C3C93: LocaleImpl::GetCollator() (Locale.cpp:444)
==82092== by 0x1597CF: main (main.cpp:303)
==82092==
==82092== LEAK SUMMARY:
==82092== definitely lost: 13,116 bytes in 299 blocks
==82092== indirectly lost: 16,343 bytes in 30 blocks
==82092== possibly lost: 0 bytes in 0 blocks
==82092== still reachable: 5,888 bytes in 39 blocks
==82092== suppressed: 0 bytes in 0 blocks
==82092== Reachable blocks (those to which a pointer was found) are not shown.
==82092== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==82092==
==82092== Use --track-origins=yes to see where uninitialised values come from
==82092== For lists of detected and suppressed errors, rerun with: -s
==82092== ERROR SUMMARY: 18 errors from 18 contexts (suppressed: 0 from 0)
-10
View File
@@ -1,17 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="48px"
height="48px" viewBox="0 0 48 48" enable-background="new 0 0 48 48" xml:space="preserve">
<g id="Layer_1" display="none">
<path display="inline" d="M47,41c0,3.313-2.687,6-6,6H7c-3.313,0-6-2.687-6-6V7c0-3.313,2.687-6,6-6h34c3.313,0,6,2.687,6,6V41z"/>
<line display="inline" fill="none" stroke="#FFFFFF" stroke-width="4" stroke-miterlimit="10" x1="1" y1="25" x2="25" y2="25"/>
<circle display="inline" fill="#FFFFFF" cx="24" cy="25" r="4.667"/>
<line display="inline" fill="none" stroke="#FFFFFF" stroke-width="4" x1="34" y1="25" x2="48" y2="25"/>
<path display="inline" fill="#FFFFFF" d="M24,13c-4.43,0-8.297,2.419-10.376,6h5.103c1.41-1.241,3.253-2,5.274-2
c4.411,0,8,3.589,8,8s-3.589,8-8,8c-2.021,0-3.864-0.76-5.274-2h-5.103c2.079,3.581,5.946,6,10.376,6c6.617,0,12-5.383,12-12
C36,18.383,30.617,13,24,13z"/>
</g>
<g id="Combined">
<path d="M35.819,27C34.863,32.666,29.935,37,24,37c-4.43,0-8.298-2.419-10.376-6h5.103c1.41,1.24,3.253,2,5.274,2
c4.411,0,8-3.589,8-8s-3.589-8-8-8c-2.021,0-3.864,0.759-5.274,2h-5.103c2.079-3.581,5.947-6,10.376-6

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 900 B

+13 -2
View File
@@ -167,6 +167,7 @@ export interface FilePropertyDialogState {
moveDialogOpen: boolean;
copyDialogOpen: boolean;
initialSelection: string;
previousSelection: string;
multiSelect: boolean,
selectedFiles: string[],
//openTone3000Dialog: boolean,
@@ -241,6 +242,7 @@ export default withStyles(
moveDialogOpen: false,
copyDialogOpen: false,
initialSelection: this.props.selectedFile,
previousSelection: this.props.selectedFile,
multiSelect: false,
selectedFiles: [],
//openTone3000Dialog: false,
@@ -678,7 +680,7 @@ export default withStyles(
this.requestScroll = true;
if (!fileEntry.isDirectory) {
if (!this.isFolderArtwork(fileEntry.pathname)) {
this.props.onApply(this.props.fileProperty, fileEntry.pathname);
this.handleApply(this.props.fileProperty, fileEntry.pathname);
}
}
this.setState({
@@ -695,6 +697,15 @@ export default withStyles(
}
this.openSelectedFile();
}
handleApply(fileProperty: UiFileProperty, selectedItem: string)
{
if (this.state.previousSelection == selectedItem) {
return;
}
this.props.onApply(fileProperty, selectedItem);
this.setState({previousSelection: selectedItem});
}
handleMenuOpen(event: React.MouseEvent<HTMLElement>) {
this.setState({ menuAnchorEl: event.currentTarget });
@@ -1565,7 +1576,7 @@ export default withStyles(
<div style={{ flex: "1 1 auto" }}>&nbsp;</div>
<Button variant="dialogSecondary" onClick={() => {
this.props.onApply(this.props.fileProperty, this.state.initialSelection);
this.handleApply(this.props.fileProperty, this.state.initialSelection);
this.props.onCancel();
}} aria-label="cancel">
Cancel
+11 -6
View File
@@ -602,10 +602,12 @@ export const LoadPluginDialog =
return;
}
if (this.changedSearchString !== undefined) {
this.requestScrollTo();
this.setState({
search_string: this.changedSearchString
});
if (this.state.search_string !== this.changedSearchString) {
this.requestScrollTo();
this.setState({
search_string: this.changedSearchString
});
}
this.changedSearchString = undefined;
}
this.hSearchTimeout = undefined;
@@ -642,7 +644,10 @@ export const LoadPluginDialog =
const classes = withStyles.getClasses(this.props);
let isFavorite: boolean = this.state.favoritesList[value.uri] ?? false;
let pluginType = value.plugin_type;
if (value.uri === "http://two-play.com/plugins/toob-nam") {
pluginType = PluginType.NamPlugin;
}
return (
<div key={value.uri}
onDoubleClick={(e) => { this.onDoubleClick(e, value.uri) }}
@@ -654,7 +659,7 @@ export const LoadPluginDialog =
<SelectHoverBackground selected={value.uri === this.state.selected_uri} showHover={true} />
<div className={classes.content}>
<div className={classes.iconBorder} >
<PluginIcon pluginType={value.plugin_type} size={24} opacity={0.6} />
<PluginIcon pluginType={pluginType} size={24} opacity={0.6} />
</div>
<div className={classes.content2}>
<div className={classes.label} style={{ display: "flex", flexFlow: "row nowrap", alignItems: "center" }} >
+5 -2
View File
@@ -471,6 +471,9 @@ export enum PluginType {
None = "",
InvalidPlugin = "InvalidPlugin",
// "special"
NamPlugin = "NamPlugin",
Plugin = "Plugin",
AllpassPlugin = "AllpassPlugin",
AmplifierPlugin = "AmplifierPlugin",
@@ -510,7 +513,7 @@ export enum PluginType {
UtilityPlugin = "UtilityPlugin",
WaveshaperPlugin = "WaveshaperPlugin",
// psuedo plugin type for the Amps node of the filter dialog.
// pseudo plugin type for the Amps node of the filter dialog.
PiPedalAmpsNode = "PiPedalAmpsNode",
// pseudo plugin types for splitter.
@@ -521,7 +524,7 @@ export enum PluginType {
// psuedo plugin type for misc icons.
// pseudo plugin type for misc icons.
ErrorPlugin = "ErrorPlugin",
Terminal = "Terminal", //"img/fx_terminal.svg";
+14 -4
View File
@@ -327,8 +327,12 @@ class PedalLayout {
else {
let uiPlugin = model.getUiPlugin(pedalItem.uri);
if (uiPlugin != null) {
this.pluginType = uiPlugin.plugin_type;
this.iconUrl = SelectIconUri(uiPlugin.plugin_type);
let pluginType = uiPlugin.plugin_type;
this.pluginType = pluginType;
if (this.uri === "http://two-play.com/plugins/toob-nam") {
pluginType = PluginType.NamPlugin;
}
this.iconUrl = SelectIconUri(pluginType);
this.name = uiPlugin.label;
if (pedalItem.title !== "") {
this.name = pedalItem.title;
@@ -1109,12 +1113,18 @@ withStyles(
</div>
)
let uiPlugin = this.model.getUiPlugin(item.pedalItem?.uri ?? "");
let pluginMissing = uiPlugin == null;
let pluginMissing = uiPlugin === null;
let pluginType = item.pluginType;
if (uiPlugin && uiPlugin.uri === "http://two-play.com/plugins/toob-nam")
{
pluginType = PluginType.NamPlugin;
}
result.push(<div key={this.renderKey++} className={classes.pedalItem} style={{ left: item.bounds.x, top: item.bounds.y }} >
{this.pedalButton(
item.pedalItem?.instanceId ?? -1,
item.pluginType,
pluginType,
!item.isEmpty(),
item.pedalItem?.isEnabled ?? false,
true,
+11 -1
View File
@@ -32,6 +32,7 @@ import FxPhaserIcon from './svg/fx_phaser.svg?react';
import FxFilterIcon from './svg/fx_filter.svg?react';
import FxDelayIcon from './svg/fx_delay.svg?react';
import FxNamIcon from './svg/fx_nam.svg?react';
import FxAmplifierIcon from './svg/fx_amplifier.svg?react';
import FxChorusIcon from './svg/fx_chorus.svg?react';
import FxModulatorIcon from './svg/fx_modulator.svg?react';
@@ -97,9 +98,14 @@ export function SelectSvgIcon(plugin_type: PluginType, className: string, size:
}
let myStyle = { width: size, height: size, opacity: opacity, color: color, fill: color };
switch (plugin_type) {
case PluginType.NamPlugin:
return <FxNamIcon className={className} style={myStyle} />;
case PluginType.PhaserPlugin:
return <FxPhaserIcon className={className} style={myStyle} />;
case PluginType.FilterPlugin:
case PluginType.BandpassPlugin:
case PluginType.AllpassPlugin:
return <FxFilterIcon className={className} style={myStyle} />;
case PluginType.DelayPlugin:
return <FxDelayIcon className={className} style={myStyle} />;
@@ -175,16 +181,20 @@ export function SelectSvgIcon(plugin_type: PluginType, className: string, size:
case PluginType.Terminal:
return <FxTerminalIcon className={className} style={myStyle} />;
default:
case PluginType.Plugin:
default:
return <FxPluginIcon className={className} style={myStyle} />;
}
}
export function SelectBaseIcon(plugin_type: PluginType): string {
switch (plugin_type) {
case PluginType.NamPlugin:
return "fx_nam.svg";
case PluginType.PhaserPlugin:
return "fx_phaser.svg";
case PluginType.FilterPlugin:
case PluginType.BandpassPlugin:
case PluginType.AllpassPlugin:
return "fx_filter.svg";
case PluginType.DelayPlugin:
return "fx_delay.svg";
+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version="1.1"
x="0px"
y="0px"
width="48"
height="48"
viewBox="0 0 48 48"
enable-background="new 0 0 48 48"
xml:space="preserve"
id="svg141"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs145" />
<path
id="path138"
d="M 7,1 C 3.6870066,1 1,3.6870066 1,7 v 34 c 0,3.312994 2.6870066,6 6,6 h 34 c 3.312994,0 6,-2.688006 6,-6 V 7 C 47,3.6870066 44.312994,1 41,1 Z m 8.841797,6.515625 h 5.041015 c 0.588947,0 1.082064,0.1968374 1.480469,0.5917969 0.398405,0.3949594 0.597657,0.8848969 0.597657,1.46875 v 8.2421871 h -3.119141 l -2.078125,2.060547 h 5.197266 v 6.181641 h -4.574219 l -2.078125,-4.121094 h -4.78125 L 9.4492188,24 H 15.0625 l 2.078125,4.121094 h 5.820313 v 10.302734 c 0,0.583853 -0.199252,1.073791 -0.597657,1.46875 -0.398405,0.39496 -0.891522,0.591797 -1.480469,0.591797 h -5.041015 c -0.381083,0 -0.737289,-0.09431 -1.066406,-0.283203 -0.329117,-0.188894 -0.578734,-0.453432 -0.751953,-0.796875 L 9.96875,32.242188 h 3.013672 l 2.080078,4.121093 h 4.779297 V 34.302734 H 16.308594 L 14.230469,30.181641 H 8.8261719 L 5.8632812,25.03125 C 5.7939934,24.859528 5.7336065,24.687346 5.6816406,24.515625 5.6296747,24.343903 5.6035156,24.171721 5.6035156,24 c 0,-0.137377 0.086546,-0.481741 0.2597656,-1.03125 l 2.9628907,-5.150391 h 5.4042971 l 2.078125,-4.121093 h 3.533203 V 11.636719 H 15.0625 l -2.080078,4.121093 H 9.96875 l 4.054688,-7.1621089 c 0.173219,-0.343443 0.422836,-0.6079813 0.751953,-0.796875 0.329117,-0.1888936 0.685323,-0.2832031 1.066406,-0.2832031 z m 11.275391,0 h 5.041015 c 0.381084,0 0.737289,0.094309 1.066406,0.2832031 0.329117,0.1888937 0.578734,0.453432 0.751953,0.796875 L 38.03125,15.757812 H 35.017578 L 32.9375,11.636719 h -4.779297 v 2.060547 h 3.533203 l 2.078125,4.121093 h 5.404297 l 2.962891,5.150391 c 0.06929,0.171721 0.129675,0.343903 0.18164,0.515625 0.05197,0.171721 0.07813,0.343903 0.07813,0.515625 0,0.137377 -0.08655,0.481741 -0.259765,1.03125 l -2.962891,5.150391 h -5.404297 l -2.078125,4.121093 h -3.533203 v 2.060547 H 32.9375 l 2.080078,-4.121093 h 3.013672 l -4.054688,7.162109 c -0.173219,0.343443 -0.422836,0.607981 -0.751953,0.796875 -0.329117,0.188894 -0.685322,0.283203 -1.066406,0.283203 h -5.041015 c -0.588947,0 -1.082064,-0.196837 -1.480469,-0.591797 -0.398406,-0.394959 -0.597657,-0.884897 -0.597657,-1.46875 V 28.121094 h 5.820313 L 32.9375,24 h 5.613281 l -2.078125,-2.060547 h -4.78125 l -2.078125,4.121094 h -4.574219 v -6.181641 h 5.197266 L 28.158203,17.818359 H 25.039062 V 9.5761719 c 10e-7,-0.5838531 0.199251,-1.0737906 0.597657,-1.46875 0.398405,-0.3949595 0.891522,-0.5917969 1.480469,-0.5917969 z" />
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB