summaryrefslogtreecommitdiff
path: root/Modules/_sre.c
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2016-11-22 15:30:38 +0100
committerVictor Stinner <victor.stinner@gmail.com>2016-11-22 15:30:38 +0100
commit4d83386bceca38593641c1921fb175a541fb88c2 (patch)
tree79bd1f4d84125fb2e088792b9423c291565b1635 /Modules/_sre.c
parent2970b7895c51700cc335e59e7b4a141cc9b35a75 (diff)
downloadcpython-4d83386bceca38593641c1921fb175a541fb88c2.tar.gz
Issue #28727: Optimize pattern_richcompare() for a==a
A pattern is equal to itself.
Diffstat (limited to 'Modules/_sre.c')
-rw-r--r--Modules/_sre.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Modules/_sre.c b/Modules/_sre.c
index 1b7741696d..979e61fb53 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -2683,6 +2683,12 @@ pattern_richcompare(PyObject *lefto, PyObject *righto, int op)
if (Py_TYPE(lefto) != &Pattern_Type || Py_TYPE(righto) != &Pattern_Type) {
Py_RETURN_NOTIMPLEMENTED;
}
+
+ if (lefto == righto) {
+ /* a pattern is equal to itself */
+ return PyBool_FromLong(op == Py_EQ);
+ }
+
left = (PatternObject *)lefto;
right = (PatternObject *)righto;