##// END OF EJS Templates
revlog: remove side effect from failed nt_init()...
revlog: remove side effect from failed nt_init() If nt_init() successfully allocates memory for the node tree but then runs out of memory while trying to insert nullid into it, it will leave the node tree pointer set on the index object. That means that future node tree operations will think that the tree is properly initialized. It seems very unlikely to make a difference in practice (if nt_init() runs out of memory, not much else will probably work), but since I spotted it, I figured I might as well fix it. Differential Revision: https://phab.mercurial-scm.org/D4028

File last commit:

r36075:81199632 default
r38857:d814bbd2 default
Show More
charencode.h
61 lines | 2.1 KiB | text/x-c | CLexer
Yuya Nishihara
cext: factor out header for charencode.c...
r33753 /*
charencode.h - miscellaneous character encoding
This software may be used and distributed according to the terms of
the GNU General Public License, incorporated herein by reference.
*/
#ifndef _HG_CHARENCODE_H_
#define _HG_CHARENCODE_H_
#include <Python.h>
#include "compat.h"
/* This should be kept in sync with normcasespecs in encoding.py. */
enum normcase_spec {
NORMCASE_LOWER = -1,
NORMCASE_UPPER = 1,
NORMCASE_OTHER = 0
};
Yuya Nishihara
cext: modernize charencode.c to use Py_ssize_t
r33754 PyObject *unhexlify(const char *str, Py_ssize_t len);
Yuya Nishihara
encoding: add function to test if a str consists of ASCII characters...
r33927 PyObject *isasciistr(PyObject *self, PyObject *args);
Yuya Nishihara
cext: factor out header for charencode.c...
r33753 PyObject *asciilower(PyObject *self, PyObject *args);
PyObject *asciiupper(PyObject *self, PyObject *args);
PyObject *make_file_foldmap(PyObject *self, PyObject *args);
Yuya Nishihara
encoding: add fast path of jsonescape() (issue5533)...
r33926 PyObject *jsonescapeu8fast(PyObject *self, PyObject *args);
Yuya Nishihara
cext: factor out header for charencode.c...
r33753
Augie Fackler
charencode: adjust clang-format enable/disable comments...
r36075 /* clang-format off */
Yuya Nishihara
cext: factor out header for charencode.c...
r33753 static const int8_t hextable[256] = {
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, /* 0-9 */
-1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* A-F */
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* a-f */
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
};
Augie Fackler
charencode: adjust clang-format enable/disable comments...
r36075 /* clang-format on */
Yuya Nishihara
cext: factor out header for charencode.c...
r33753
static inline int hexdigit(const char *p, Py_ssize_t off)
{
int8_t val = hextable[(unsigned char)p[off]];
if (val >= 0) {
return val;
}
PyErr_SetString(PyExc_ValueError, "input contains non-hex character");
return 0;
}
#endif /* _HG_CHARENCODE_H_ */