summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/jni/android_os_MemoryFile.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/core/jni/android_os_MemoryFile.cpp b/core/jni/android_os_MemoryFile.cpp
index 88a3738..27b29bc 100644
--- a/core/jni/android_os_MemoryFile.cpp
+++ b/core/jni/android_os_MemoryFile.cpp
@@ -47,15 +47,16 @@ static jlong android_os_MemoryFile_mmap(JNIEnv* env, jobject clazz, jobject file
jint length, jint prot)
{
int fd = jniGetFDFromFileDescriptor(env, fileDescriptor);
- jlong result = (jlong)mmap(NULL, length, prot, MAP_SHARED, fd, 0);
- if (!result)
+ void* result = mmap(NULL, length, prot, MAP_SHARED, fd, 0);
+ if (result == MAP_FAILED) {
jniThrowException(env, "java/io/IOException", "mmap failed");
- return result;
+ }
+ return reinterpret_cast<jlong>(result);
}
static void android_os_MemoryFile_munmap(JNIEnv* env, jobject clazz, jlong addr, jint length)
{
- int result = munmap((void *)addr, length);
+ int result = munmap(reinterpret_cast<void *>(addr), length);
if (result < 0)
jniThrowException(env, "java/io/IOException", "munmap failed");
}