java/File: add non-static GetAbsolutePath() overload

This commit is contained in:
Max Kellermann 2021-03-28 13:15:24 +02:00 committed by Max Kellermann
parent 285ba54fe5
commit a237db556a
2 changed files with 11 additions and 2 deletions

View File

@ -54,7 +54,7 @@ Java::File::ToAbsolutePath(JNIEnv *env, jobject _file) noexcept
LocalObject file(env, _file);
const jstring path = getAbsolutePath(env, file);
const jstring path = GetAbsolutePath(env, file);
if (DiscardException(env) || path == nullptr)
return nullptr;

View File

@ -31,6 +31,7 @@
#define JAVA_FILE_HXX
#include "Object.hxx"
#include "String.hxx"
#include <jni.h>
@ -51,11 +52,19 @@ public:
static void Initialise(JNIEnv *env) noexcept;
gcc_nonnull_all
static jstring getAbsolutePath(JNIEnv *env, jobject file) noexcept {
static jstring GetAbsolutePath(JNIEnv *env, jobject file) noexcept {
return (jstring)env->CallObjectMethod(file,
getAbsolutePath_method);
}
String GetAbsolutePath() const noexcept {
return {GetEnv(), GetAbsolutePath(GetEnv(), Get())};
}
String GetAbsolutePathChecked() const noexcept {
return *this ? GetAbsolutePath() : nullptr;
}
/**
* Invoke File.getAbsolutePath() and release the
* specified File reference.