• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ossia / score / 32543594105
38%

Build:
DEFAULT BRANCH: master
Ran 22 Aug 2026 03:27PM UTC
Jobs 1
Files 3022
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Aug 2026 01:29AM UTC coverage: 20.797% (+0.02%) from 20.773%
32543594105

push

github

jcelerier
plugins: stop the CLAP and LV2 cache keys returning a dangling builder

score aborts at startup with std::bad_alloc whenever the CLAP plug-in
cache is non-empty:

  qTerminate
  QStringBuilder<QStringBuilder<QString, char[2]>, QString>::convertTo<QString>()
  Media::deduplicate<Clap::PluginInfo, ...>
  Clap::ApplicationPlugin::initialize()
  score::GUIApplicationInterface::loadPluginData

The cache key was

  [](const PluginInfo& i) { return i.path + "|" + i.id; }

We compile with QT_USE_QSTRINGBUILDER (ScoreTargetSetup.cmake:76), so
operator+ builds a lazy expression template rather than a QString. With
a deduced return type the lambda hands back
QStringBuilder<QStringBuilder<QString, char[2]>, QString>, and the outer
node holds a *reference* to the inner one -- a temporary that dies at
the end of the return statement. convertTo<QString>() then reads a
garbage length out of freed memory and asks for an allocation that
throws.

LV2 has the same key shape. VST and VST3 return a plain QString member
and were never affected.

Reproduced and fixed against a real cache of 16 CLAP entries: before,
every run of ossia-score and of the AJA test harness aborted in
loadPluginData; after, both start and enumerate normally. The whole AJA
validation campaign had to run under SCORE_DISABLE_AUDIOPLUGINS=1 to get
past it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014rZgzE8JjWvHDtaVUhxpLE

3 of 4 new or added lines in 2 files covered. (75.0%)

6 existing lines in 1 file now uncovered.

44511 of 214028 relevant lines covered (20.8%)

5792.41 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
60.46
-0.15% src/plugins/score-plugin-lv2/LV2/ApplicationPlugin.cpp

Coverage Regressions

Lines Coverage ∆ File
6
53.58
-1.59% src/plugins/score-plugin-media/Media/Sound/WaveformComputer.cpp
Jobs
ID Job ID Ran Files Coverage
1 32543594105.1 22 Aug 2026 03:27PM UTC 3022
20.8
GitHub Action Run
Source Files on build 32543594105
  • Tree
  • List 3022
  • Changed 6
  • Source Changed 3
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32543594105
  • bc2529e9 on github
  • Prev Build on master (#32387263948)
  • Next Build on master (#32609939012)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc