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

KarpelesLab / goro / 25827566004 / 1
13%
master: 13%

Build:
DEFAULT BRANCH: master
Ran 13 May 2026 09:32PM UTC
Files 398
Run time 12s
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

13 May 2026 09:30PM UTC coverage: 12.112% (+0.01%) from 12.098%
25827566004.1

push

github

MagicalTux
vm: invoke __destruct on catch-variable rebind (bug53511)

When a try/catch binds the exception to a variable that previously
held an object, PHP fires that object's destructor immediately as
the last reference drops. The VM's slot-only path skipped this because
it doesn't go through ctx.OffsetSet's IncRef/DecRef bookkeeping.

Now dispatchTryHandler captures the previous slot value, calls DecRef
on it after binding the new exception, and:
- on a clean DecRef, falls through to the catch body normally
- on a destructor that throws, jumps past every catch clause (using
  the new TryHandler.AfterCatch field) so the retry-dispatch doesn't
  match the same try again, and propagates the destructor's throw

The catch keyword's loc is also stashed on the CatchClause so the
destructor's stack trace attributes the call to the catch line, not
the throw line — PHP's expected behaviour.

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

14037 of 115893 relevant lines covered (12.11%)

2456.58 hits per line

Source Files on job 25827566004.1
  • Tree
  • List 398
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 25827566004
  • f69b8e4e on github
  • Prev Job for on master (#25827054165.1)
  • Next Job for on master (#25827715594.1)
  • Delete
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