summaryrefslogtreecommitdiff
path: root/Objects/stringlib
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/stringlib')
-rw-r--r--Objects/stringlib/join.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/Objects/stringlib/join.h b/Objects/stringlib/join.h
index 21753cb504..d1d6e532c5 100644
--- a/Objects/stringlib/join.h
+++ b/Objects/stringlib/join.h
@@ -94,6 +94,16 @@ STRINGLIB(bytes_join)(PyObject *sep, PyObject *iterable)
/* Catenate everything. */
p = STRINGLIB_STR(res);
+ if (!seplen) {
+ /* fast path */
+ for (i = 0; i < nbufs; i++) {
+ Py_ssize_t n = buffers[i].len;
+ char *q = buffers[i].buf;
+ Py_MEMCPY(p, q, n);
+ p += n;
+ }
+ goto done;
+ }
for (i = 0; i < nbufs; i++) {
Py_ssize_t n;
char *q;