bpo-27867: Expand the PySlice_GetIndicesEx macro. (#1023) (#1046)

(cherry picked from commit b879fe8)
diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c
index 2bac266..12be12b 100644
--- a/Objects/memoryobject.c
+++ b/Objects/memoryobject.c
@@ -584,10 +584,11 @@
     else if (PySlice_Check(key)) {
         Py_ssize_t start, stop, step, slicelength;
 
-        if (PySlice_GetIndicesEx((PySliceObject*)key, get_shape0(view),
-                                 &start, &stop, &step, &slicelength) < 0) {
+        if (_PySlice_Unpack((PySliceObject *)key, &start, &stop, &step) < 0) {
             return NULL;
         }
+        slicelength = _PySlice_AdjustIndices(get_shape0(view), &start, &stop,
+                                            step);
     
         if (step == 1 && view->ndim == 1) {
             Py_buffer newview;
@@ -662,10 +663,10 @@
     else if (PySlice_Check(key)) {
         Py_ssize_t stop, step;
 
-        if (PySlice_GetIndicesEx((PySliceObject*)key, get_shape0(view),
-                         &start, &stop, &step, &len) < 0) {
+        if (_PySlice_Unpack((PySliceObject *)key, &start, &stop, &step) < 0) {
             return -1;
         }
+        len = _PySlice_AdjustIndices(get_shape0(view), &start, &stop, step);
         if (step != 1) {
             PyErr_SetNone(PyExc_NotImplementedError);
             return -1;