Skip to content

capi: add HarfBuzz C++ ownership helpers for core objects - #544

Merged
behdad merged 1 commit into
mainfrom
capi/core-cplusplus
Oct 17, 2026
Merged

behdad merged 1 commit into
mainfrom
capi/core-cplusplus

Conversation

@behdad

@behdad behdad commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Add hr-hb-cplusplus.hh as a replacement for HarfBuzz's hb-cplusplus.hh, retaining the ownership helpers, traits, hash specializations, and upstream license. The helpers cover blobs, buffers, faces, fonts, font functions, maps, sets, and shape plans. Forwarding adapters preserve HarfBuzz's user-data signatures while accommodating HarfRust's const keys and mixed getter signatures.

This PR builds on main with published dependencies. Subset input and plan ownership helpers are added by #547 together with their metadata APIs. The C++ consumer checks both subset header include orders using the released subset API, plus core-only linking without subsetting enabled.

Validation: GCC and Clang C++11/C++17 consumers exercise copying, moves, unique release/swap, hashes, empty objects, and exactly-once user-data destruction. The Rust suite, formatting, Clippy, generated-header checks, and default/subset builds pass.

Merge order: #544 → #545 → #546 → #519 → #547. Only #547 waits for a Skera release.

Replaces #514; the earlier PR retains its review history.

@behdad
behdad merged commit 2c283a2 into main Oct 17, 2026
4 checks passed
@behdad
behdad deleted the capi/core-cplusplus branch October 17, 2026 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants