Skip to content

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.

Merge request reports