Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions cxx/fbjni/detail/CoreClasses-inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,11 @@ inline void registerNatives(const char* name, std::initializer_list<JNINativeMet
findClassLocal(name)->registerNatives(methods);
}

inline auto JClass::getSimpleName() -> local_ref<JString> {
static auto meth = javaClassStatic()->getMethod<JString::javaobject()>("getSimpleName");
return meth(self());
}


// jstring /////////////////////////////////////////////////////////////////////////////////////////

Expand Down
4 changes: 4 additions & 0 deletions cxx/fbjni/detail/CoreClasses.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ namespace jni {

class JClass;
class JObject;
class JString;

namespace detail {

Expand Down Expand Up @@ -329,6 +330,8 @@ class JClass : public JavaClass<JClass, JObject, jclass> {
template<typename F>
JNonvirtualMethod<F> getNonvirtualMethod(const char* name, const char* descriptor) const;

local_ref<JString> getSimpleName();

private:
jclass self() const noexcept;
};
Expand Down Expand Up @@ -604,6 +607,7 @@ class JThrowable : public JavaClass<JThrowable, JObject, jthrowable> {

local_ref<JThrowable> initCause(alias_ref<JThrowable> cause);
local_ref<JStackTrace> getStackTrace();
local_ref<JString> getMessage();
void setStackTrace(alias_ref<JArrayClass<JStackTraceElement::javaobject>>);
};

Expand Down
5 changes: 5 additions & 0 deletions cxx/fbjni/detail/Exceptions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,11 @@ void JThrowable::setStackTrace(alias_ref<JStackTrace> stack) {
return meth(self(), stack);
}

auto JThrowable::getMessage() -> local_ref<JString> {
static auto meth = javaClassStatic()->getMethod<JString::javaobject()>("getMessage");
return meth(self());
}

auto JStackTraceElement::create(
const std::string& declaringClass, const std::string& methodName, const std::string& file, int line)
-> local_ref<javaobject> {
Expand Down