Issue #7080: locale.strxfrm() raises a MemoryError on 64-bit non-Windows
platforms, and assorted locale fixes by Derk Drukker.
diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
index 8bcdb10..d90a49d 100644
--- a/Modules/_localemodule.c
+++ b/Modules/_localemodule.c
@@ -9,6 +9,7 @@
 
 ******************************************************************/
 
+#define PY_SSIZE_T_CLEAN
 #include "Python.h"
 
 #include <stdio.h>
@@ -315,7 +316,7 @@
     result = PyUnicode_FromWideChar(buf, n2);
  exit:
     if (buf) PyMem_Free(buf);
-#ifdef HAVE_USABLE_WCHAR_T
+#ifndef HAVE_USABLE_WCHAR_T
     PyMem_Free(s);
 #endif
     return result;