Mercurial > hg
view setup_bdiff_cffi.py @ 30148:04f2b980df3c
perf: omit copying from ui.ferr to ui.fout for Mercurial earlier than 1.9
Before this patch, referring ui.ferr prevents perf.py from measuring
performance with Mercurial earlier than 1.9 (or 4e1ccd4c2b6d), because
ui.ferr isn't available in such Mercurial, even though there are some
code paths for Mercurial earlier than 1.9 in perf.py.
For example, setting "_prereadsize" attribute in perfindex() and
perfnodelookup() is effective only with hg earlier than 1.8 (or
61c9bc3da402).
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sun, 09 Oct 2016 01:03:19 +0900 |
parents | a8933d992a71 |
children |
line wrap: on
line source
from __future__ import absolute_import import cffi import os ffi = cffi.FFI() ffi.set_source("_bdiff_cffi", open(os.path.join(os.path.join(os.path.dirname(__file__), 'mercurial'), 'bdiff.c')).read(), include_dirs=['mercurial']) ffi.cdef(""" struct bdiff_line { int hash, n, e; ssize_t len; const char *l; }; struct bdiff_hunk; struct bdiff_hunk { int a1, a2, b1, b2; struct bdiff_hunk *next; }; int bdiff_splitlines(const char *a, ssize_t len, struct bdiff_line **lr); int bdiff_diff(struct bdiff_line *a, int an, struct bdiff_line *b, int bn, struct bdiff_hunk *base); void bdiff_freehunks(struct bdiff_hunk *l); void free(void*); """) if __name__ == '__main__': ffi.compile()