- Tweaked build for linux.

- Tweaked how errno is sent back to Java land.
This commit is contained in:
Adam Murdoch
2012-08-03 16:24:00 +10:00
parent d2542adf36
commit 433347491c
6 changed files with 20 additions and 7 deletions

View File

@@ -7,8 +7,8 @@
void markFailed(JNIEnv *env, jobject result) {
jclass destClass = env->GetObjectClass(result);
jfieldID errnoField = env->GetFieldID(destClass, "errno", "I");
env->SetIntField(result, errnoField, errno);
jmethodID method = env->GetMethodID(destClass, "failed", "(I)V");
env->CallVoidMethod(result, method, errno);
}
JNIEXPORT void JNICALL

View File

@@ -17,7 +17,11 @@ public class Platform {
if (!loaded) {
System.setProperty("java.library.path", new File("build/binaries").getAbsolutePath());
try {
System.load(new File("build/binaries/libnative-platform.dylib").getCanonicalPath());
File libFile = new File("build/binaries/libnative-platform.dylib");
if (!libFile.isFile()) {
libFile = new File("build/binaries/libnative-platform.so");
}
System.load(libFile.getCanonicalPath());
} catch (IOException e) {
throw new RuntimeException(e);
}

View File

@@ -3,6 +3,10 @@ package net.rubygrapefruit.platform.internal;
public class FunctionResult {
int errno;
void failed(int errno) {
this.errno = errno;
}
public boolean isFailed() {
return errno != 0;
}