HomePhabricator

revlog: made C Capsule an array of function pointers

Authored by gracinet.

Description

revlog: made C Capsule an array of function pointers

Although it's perfectly valid to put a function pointer in
a capsule, as we've been doing since the start of rust/hg-cpython,
an array of function pointers has several advantages:

  • it can hold several functions. That's our main motivation here. We plan to expose index_length() and index_node(), which will be needed for a Rust implementation of nodemap.
  • it could also have data
  • (probably minor in the case of Mercurial) proper support for architectures for which data and code pointers don't have the same size.

Differential Revision: https://phab.mercurial-scm.org/D7543