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

davidbyttow / govips / 22504308135
39%

Build:
DEFAULT BRANCH: master
Ran 27 Feb 2026 09:24PM UTC
Jobs 1
Files 22
Run time 1min
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

27 Feb 2026 09:22PM UTC coverage: 71.743% (-1.8%) from 73.576%
22504308135

push

github

web-flow
Fix memory leak, panics, and race condition (#493)

* Fix memory leak in Recomb and pre-allocate matrix slice

- Free matrixImage with defer clearImage() after creation via
  vips_image_new_from_memory, preventing a leak on every Recomb call
- Add runtime.KeepAlive(matrixValues) to prevent GC from collecting
  the backing memory while libvips reads it
- Pre-allocate matrixValues slice with known capacity (numBands*numBands)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add empty-slice validation to conversion functions

Guard against nil-pointer panics from indexing empty slices in four
internal functions: vipsBandJoin, vipsBandJoinConst, vipsComposite,
and vipsArrayJoin. Each now returns a descriptive error instead of
panicking when called with empty input.

Add tests for BandJoinConst and CompositeMulti with empty inputs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix race condition in temporaryDirectory initialization

Replace check-then-set pattern in getTemporaryDirectory() with
sync.Once to prevent concurrent goroutines from creating multiple
temporary directories (leaking all but the last).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Return error from Startup instead of panicking

Change Startup() signature to return error, replacing four panic()
calls with descriptive errors. This lets callers handle initialization
failures gracefully rather than crashing.

startupIfNeeded() retains panic behavior since it has no error
propagation path. All test files and examples updated to handle the
returned error.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Skip HEIF/AVIF tests when save compression is unavailable

Add a skipIfHeifSaveUnsupported test helper that probes HEIF save
capability at runtime by creating a 1x1 image and attempting export.
This is more reliable than checking if the operation is registered,
since heifsave can exist without the required codec (x265/AOM).

Applied to 5 tes... (continued)

19 of 30 new or added lines in 6 files covered. (63.33%)

542 existing lines in 10 files now uncovered.

2214 of 3086 relevant lines covered (71.74%)

0.77 hits per line

Jobs
ID Job ID Ran Files Coverage
1 22504308135.1 27 Feb 2026 09:24PM UTC 22
71.74
GitHub Action Run
Source Files on build 22504308135
  • Tree
  • List 22
  • Changed 10
  • Source Changed 0
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 44fa1dbb on github
  • Prev Build on master (#11623512283)
  • Next Build on master (#22505438302)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc