#3560: cleanup C memoryview API
diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c
index b36c3a7..c108363 100644
--- a/Objects/memoryobject.c
+++ b/Objects/memoryobject.c
@@ -29,7 +29,7 @@
 Create a new memoryview object which references the given object.");
 
 PyObject *
-PyMemoryView_FromMemory(Py_buffer *info)
+PyMemoryView_FromBuffer(Py_buffer *info)
 {
 	PyMemoryViewObject *mview;
 
@@ -231,7 +231,7 @@
         mem = PyObject_New(PyMemoryViewObject, &PyMemoryView_Type);
         if (mem == NULL) return NULL;
 
-        view = &PyMemoryView(mem);
+        view = &mem->view;
         flags = PyBUF_FULL_RO;
         switch(buffertype) {
         case PyBUF_WRITE:
@@ -534,7 +534,7 @@
 			/* XXX:  This needs to be fixed so it
 			         actually returns a sub-view
 			*/
-			return PyMemoryView_FromMemory(&newview);
+			return PyMemoryView_FromBuffer(&newview);
 		}
 	}
 
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 5de265d..c85a063 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1200,7 +1200,7 @@
     buffer = NULL;
     if (PyBuffer_FillInfo(&info, NULL, (void *)s, size, 1, PyBUF_SIMPLE) < 0)
         goto onError;
-    buffer = PyMemoryView_FromMemory(&info);
+    buffer = PyMemoryView_FromBuffer(&info);
     if (buffer == NULL)
         goto onError;
     unicode = PyCodec_Decode(buffer, encoding, errors);