mirror of https://github.com/python/cpython
b1b915c796
Remove an unused early-out test from the critical path for dict and set lookups. When the strings already have matching lengths, kinds, and hashes, there is no additional information gained by checking the first characters (the probability of a mismatch is already known to be less than 1 in 2**64). |
||
---|---|---|
.. | ||
README.txt | ||
asciilib.h | ||
codecs.h | ||
count.h | ||
ctype.h | ||
eq.h | ||
fastsearch.h | ||
find.h | ||
find_max_char.h | ||
localeutil.h | ||
partition.h | ||
split.h | ||
stringdefs.h | ||
transmogrify.h | ||
ucs1lib.h | ||
ucs2lib.h | ||
ucs4lib.h | ||
undef.h | ||
unicode_format.h | ||
unicodedefs.h |
README.txt
bits shared by the stringobject and unicodeobject implementations (and possibly other modules, in a not too distant future). the stuff in here is included into relevant places; see the individual source files for details. -------------------------------------------------------------------- the following defines used by the different modules: STRINGLIB_CHAR the type used to hold a character (char or Py_UNICODE) STRINGLIB_EMPTY a PyObject representing the empty string, only to be used if STRINGLIB_MUTABLE is 0 Py_ssize_t STRINGLIB_LEN(PyObject*) returns the length of the given string object (which must be of the right type) PyObject* STRINGLIB_NEW(STRINGLIB_CHAR*, Py_ssize_t) creates a new string object STRINGLIB_CHAR* STRINGLIB_STR(PyObject*) returns the pointer to the character data for the given string object (which must be of the right type) int STRINGLIB_CHECK_EXACT(PyObject *) returns true if the object is an instance of our type, not a subclass STRINGLIB_MUTABLE must be 0 or 1 to tell the cpp macros in stringlib code if the object being operated on is mutable or not