Include errno name in error messages, if the errno is known.
This commit is contained in:
@@ -21,14 +21,15 @@
|
||||
#include "generic.h"
|
||||
|
||||
void mark_failed_with_message(JNIEnv *env, const char* message, jobject result) {
|
||||
mark_failed_with_code(env, message, 0, result);
|
||||
mark_failed_with_code(env, message, 0, NULL, result);
|
||||
}
|
||||
|
||||
void mark_failed_with_code(JNIEnv *env, const char* message, int error_code, jobject result) {
|
||||
void mark_failed_with_code(JNIEnv *env, const char* message, int error_code, const char* error_code_message, jobject result) {
|
||||
jclass destClass = env->GetObjectClass(result);
|
||||
jmethodID method = env->GetMethodID(destClass, "failed", "(Ljava/lang/String;I)V");
|
||||
jmethodID method = env->GetMethodID(destClass, "failed", "(Ljava/lang/String;ILjava/lang/String;)V");
|
||||
jstring message_str = env->NewStringUTF(message);
|
||||
env->CallVoidMethod(result, method, message_str, error_code);
|
||||
jstring error_code_str = error_code_message == NULL ? NULL : env->NewStringUTF(error_code_message);
|
||||
env->CallVoidMethod(result, method, message_str, error_code, error_code_str);
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
|
||||
@@ -29,7 +29,14 @@
|
||||
#include <string.h>
|
||||
|
||||
void mark_failed_with_errno(JNIEnv *env, const char* message, jobject result) {
|
||||
mark_failed_with_code(env, message, errno, result);
|
||||
const char * errno_message = NULL;
|
||||
switch(errno) {
|
||||
case ENOENT:
|
||||
errno_message = "ENOENT";
|
||||
break;
|
||||
}
|
||||
|
||||
mark_failed_with_code(env, message, errno, errno_message, result);
|
||||
}
|
||||
|
||||
char* java_to_char(JNIEnv *env, jstring string, jobject result) {
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
* Marks the given result as failed, using the current value of GetLastError()
|
||||
*/
|
||||
void mark_failed_with_errno(JNIEnv *env, const char* message, jobject result) {
|
||||
mark_failed_with_code(env, message, GetLastError(), result);
|
||||
mark_failed_with_code(env, message, GetLastError(), NULL, result);
|
||||
}
|
||||
|
||||
jstring wchar_to_java(JNIEnv* env, const wchar_t* chars, size_t len, jobject result) {
|
||||
|
||||
Reference in New Issue
Block a user