Fix mlw_module

Fixedx size calculation in mlw_reorder_encode.
Fixed build warnings.

Signed-off-by: Fredrik Svedberg <fredrik.svedberg@arm.com>
Change-Id: Iac9408b9972a29b5a3403ba11f80dc4eaaa35453
diff --git a/ethosu/mlw_codec/mlw_codecmodule.c b/ethosu/mlw_codec/mlw_codecmodule.c
index 1e13dd2..75ea8e9 100644
--- a/ethosu/mlw_codec/mlw_codecmodule.c
+++ b/ethosu/mlw_codec/mlw_codecmodule.c
@@ -40,7 +40,7 @@
  *  decomp_w,
  *  verbose=0)
  *
- * output: bytearray
+ * output: (bytearray, int)
  */
 
 static PyObject *
@@ -79,7 +79,7 @@
         &verbose))
         return NULL;
 
-    PyArrayObject* input_ndarray_object = PyArray_FROM_OTF(
+    PyArrayObject* input_ndarray_object = (PyArrayObject*)PyArray_FROM_OTF(
         input_object,
         NPY_INT64,
         NPY_ARRAY_ALIGNED);
@@ -111,7 +111,7 @@
         return NULL;
     }
     uint8_t* output_buffer = NULL;
-    int padded_length;
+    int64_t padded_length;
 
     int output_length = mlw_reorder_encode(
         ifm_ublock_depth,
@@ -132,11 +132,6 @@
         &padded_length,
         verbose);
 
-    if (output_buffer == NULL)
-    {
-        return PyErr_NoMemory();
-    }
-
     PyObject *output_byte_array = PyByteArray_FromStringAndSize((char*)output_buffer, output_length);
     PyObject *padded_length_obj = Py_BuildValue("i", padded_length);
 
@@ -144,6 +139,8 @@
     mlw_free_outbuf(output_buffer);
 
     PyObject* ret = PyTuple_Pack(2, output_byte_array, padded_length_obj);
+
+    Py_DECREF(input_ndarray_object);
     Py_DECREF(output_byte_array);
     Py_DECREF(padded_length_obj);
     return ret;