# HG changeset patch # User Manuel Jacob # Date 2024-08-05 19:08:36 # Node ID ecc3a893979d65a0a541238e68e2fec94f3223d3 # Parent 99632adff7957bf77ccbf161ef091f98c9d87cb9 cffi: pass C type and attribute names as str instead of bytes diff --git a/mercurial/cffi/bdiff.py b/mercurial/cffi/bdiff.py --- a/mercurial/cffi/bdiff.py +++ b/mercurial/cffi/bdiff.py @@ -21,11 +21,11 @@ lib = _bdiff.lib def blocks(sa: bytes, sb: bytes) -> List[Tuple[int, int, int, int]]: - a = ffi.new(b"struct bdiff_line**") - b = ffi.new(b"struct bdiff_line**") - ac = ffi.new(b"char[]", str(sa)) - bc = ffi.new(b"char[]", str(sb)) - l = ffi.new(b"struct bdiff_hunk*") + a = ffi.new("struct bdiff_line**") + b = ffi.new("struct bdiff_line**") + ac = ffi.new("char[]", str(sa)) + bc = ffi.new("char[]", str(sb)) + l = ffi.new("struct bdiff_hunk*") try: an = lib.bdiff_splitlines(ac, len(sa), a) bn = lib.bdiff_splitlines(bc, len(sb), b) @@ -49,11 +49,11 @@ def blocks(sa: bytes, sb: bytes) -> List def bdiff(sa: bytes, sb: bytes) -> bytes: - a = ffi.new(b"struct bdiff_line**") - b = ffi.new(b"struct bdiff_line**") - ac = ffi.new(b"char[]", str(sa)) - bc = ffi.new(b"char[]", str(sb)) - l = ffi.new(b"struct bdiff_hunk*") + a = ffi.new("struct bdiff_line**") + b = ffi.new("struct bdiff_line**") + ac = ffi.new("char[]", str(sa)) + bc = ffi.new("char[]", str(sb)) + l = ffi.new("struct bdiff_hunk*") try: an = lib.bdiff_splitlines(ac, len(sa), a) bn = lib.bdiff_splitlines(bc, len(sb), b) diff --git a/mercurial/cffi/mpatch.py b/mercurial/cffi/mpatch.py --- a/mercurial/cffi/mpatch.py +++ b/mercurial/cffi/mpatch.py @@ -19,8 +19,8 @@ lib = _mpatch.lib @ffi.def_extern() def cffi_get_next_item(arg, pos): all, bins = ffi.from_handle(arg) - container = ffi.new(b"struct mpatch_flist*[1]") - to_pass = ffi.new(b"char[]", str(bins[pos])) + container = ffi.new("struct mpatch_flist*[1]") + to_pass = ffi.new("char[]", str(bins[pos])) all.append(to_pass) r = lib.mpatch_decode(to_pass, len(to_pass) - 1, container) if r < 0: @@ -41,7 +41,7 @@ def patches(text: bytes, bins: List[byte if outlen < 0: lib.mpatch_lfree(patch) raise mpatchError(b"inconsistency detected") - buf = ffi.new(b"char[]", outlen) + buf = ffi.new("char[]", outlen) if lib.mpatch_apply(buf, text, len(text), patch) < 0: lib.mpatch_lfree(patch) raise mpatchError(b"error applying patches") diff --git a/mercurial/cffi/osutil.py b/mercurial/cffi/osutil.py --- a/mercurial/cffi/osutil.py +++ b/mercurial/cffi/osutil.py @@ -39,8 +39,8 @@ if pycompat.isdarwin: self.st_mtime = st_mtime self.st_size = st_size - tv_sec_ofs = ffi.offsetof(b"struct timespec", b"tv_sec") - buf = ffi.new(b"char[]", listdir_batch_size) + tv_sec_ofs = ffi.offsetof("struct timespec", "tv_sec") + buf = ffi.new("char[]", listdir_batch_size) def listdirinternal(dfd, req, stat, skip): ret = [] @@ -50,16 +50,16 @@ if pycompat.isdarwin: break if r == -1: raise OSError(ffi.errno, os.strerror(ffi.errno)) - cur = ffi.cast(b"val_attrs_t*", buf) + cur = ffi.cast("val_attrs_t*", buf) for i in range(r): lgt = cur.length - assert lgt == ffi.cast(b'uint32_t*', cur)[0] + assert lgt == ffi.cast('uint32_t*', cur)[0] ofs = cur.name_info.attr_dataoffset str_lgt = cur.name_info.attr_length - base_ofs = ffi.offsetof(b'val_attrs_t', b'name_info') + base_ofs = ffi.offsetof('val_attrs_t', 'name_info') name = bytes( ffi.buffer( - ffi.cast(b"char*", cur) + base_ofs + ofs, str_lgt - 1 + ffi.cast("char*", cur) + base_ofs + ofs, str_lgt - 1 ) ) tp = attrkinds[cur.obj_type] @@ -84,12 +84,12 @@ if pycompat.isdarwin: else: ret.append((name, tp)) cur = ffi.cast( - b"val_attrs_t*", int(ffi.cast(b"intptr_t", cur)) + lgt + "val_attrs_t*", int(ffi.cast("intptr_t", cur)) + lgt ) return ret def listdir(path, stat=False, skip=None): - req = ffi.new(b"struct attrlist*") + req = ffi.new("struct attrlist*") req.bitmapcount = lib.ATTR_BIT_MAP_COUNT req.commonattr = ( lib.ATTR_CMN_RETURNED_ATTRS