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

ptondereau / ext-php-rs / 24394807717 / 1
66%
master: 66%

Build:
Build:
LAST BUILD BRANCH: fix/string-prop-getter-zend-string-leak
DEFAULT BRANCH: master
Ran 14 Apr 2026 10:50AM UTC
Files 95
Run time 3s
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

14 Apr 2026 10:47AM UTC coverage: 66.276% (+0.01%) from 66.265%
24394807717.1

push

github

ptondereau
feat: use static function pointers for class properties instead of heap allocations

Previously, each PHP class property required boxing closures (Box<dyn Fn>)
and building a HashMap at runtime. This happened once per class but was
unnecessary since all property metadata is known at compile time.

Now the macros generate plain function pointers and static arrays that
live entirely in read-only memory. Property lookup uses a simple linear
scan over two small slices (field props, then getter/setter props),
which is faster than hashing for the typical class size (< 20 properties).

This removes the Property enum, Prop trait, and PropertyInfo struct,
replacing them with a single PropertyDescriptor<T> that holds:
- fn(&T, &mut Zval) -> PhpResult for getters
- fn(&mut T, &Zval) -> PhpResult for setters
- visibility flags, type info, docs

Also adds callgrind-based property read/write benchmarks.

Closes #70

8417 of 12700 relevant lines covered (66.28%)

33.43 hits per line

Source Files on job 24394807717.1
  • Tree
  • List 95
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 24394807717
  • 3611e360 on github
  • Prev Job for on feat/static-property-descriptors (#24394367537.1)
  • Next Job for on feat/static-property-descriptors (#24394866837.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