Patchwork D7878: sha1dc: use proper string functions on Python 2/3

login
register
mail settings
Submitter phabricator
Date Jan. 15, 2020, 1:54 a.m.
Message ID <differential-rev-PHID-DREV-uedofqclrmewqxkavzqr-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/44351/
State Superseded
Headers show

Comments

phabricator - Jan. 15, 2020, 1:54 a.m.
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  PyString_FromStringAndSize doesn't exist on Python 3: we need
  to use PyUnicode_FromStringAndSize.
  
  The extension now compiles without warnings on Python 2 and 3.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D7878

AFFECTED FILES
  mercurial/thirdparty/sha1dc/cext.c

CHANGE DETAILS




To: indygreg, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/mercurial/thirdparty/sha1dc/cext.c b/mercurial/thirdparty/sha1dc/cext.c
--- a/mercurial/thirdparty/sha1dc/cext.c
+++ b/mercurial/thirdparty/sha1dc/cext.c
@@ -95,7 +95,7 @@ 
 		hexhash[i * 2] = hexdigit[hash[i] >> 4];
 		hexhash[i * 2 + 1] = hexdigit[hash[i] & 15];
 	}
-	return PyString_FromStringAndSize(hexhash, 40);
+	return PY23(PyString_FromStringAndSize, PyUnicode_FromStringAndSize)(hexhash, 40);
 }
 
 static PyTypeObject sha1ctxType;