view rust/hg-cpython/Cargo.toml @ 43394:d359dfc15aca stable

fsmonitor: handle unicode keys in tuples In Python 3, keys in the bset tuple are typically str, not bytes. PyBytes_AsString() would return NULL. But we weren't checking the return value and this would lead to a segfault. This commit makes the code type and Python version aware. The Python version specific code is to allow us to utilize a modern API for converting str -> char* without having to allocate an extra PyObject. FWIW I wanted to assume that keys were always str. However, there appear to be some bytes keys in some cases. I haven't debugged this further. Differential Revision: https://phab.mercurial-scm.org/D7210
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 02 Nov 2019 14:17:48 -0700
parents 8d432d3a2d7c
children 25ed4d8e707f
line wrap: on
line source

[package]
name = "hg-cpython"
version = "0.1.0"
authors = ["Georges Racinet <gracinet@anybox.fr>"]
edition = "2018"

[lib]
name='rusthg'
crate-type = ["cdylib"]

[features]
default = ["python27"]

# Features to build an extension module:
python27 = ["cpython/python27-sys", "cpython/extension-module-2-7"]
python3 = ["cpython/python3-sys", "cpython/extension-module"]

# Enable one of these features to build a test executable linked to libpython:
# e.g. cargo test --no-default-features --features python27-bin
python27-bin = ["cpython/python27-sys"]
python3-bin = ["cpython/python3-sys"]

[dependencies]
hg-core = { path = "../hg-core" }
libc = '*'

[dependencies.cpython]
version = "0.3"
default-features = false