bpo-29634: Reduce deque repeat execution when maxlen exist and size is not 1 (#255) (#255)

diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 8615bf1..44e9e11 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -731,6 +731,10 @@
     if (seq == NULL)
         return seq;
 
+    /* Reduce the number of repetitions when maxlen would be exceeded */
+    if (deque->maxlen >= 0 && n * size > deque->maxlen)
+        n = (deque->maxlen + size - 1) / size;
+
     for (i = 0 ; i < n-1 ; i++) {
         rv = deque_extend(deque, seq);
         if (rv == NULL) {