Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
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::getCanonicalName() -> local_ref<JString> {
static auto meth = javaClassStatic()->getMethod<JString::javaobject()>("getCanonicalName");
return meth(self());
}


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

Expand Down
5 changes: 5 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,9 @@ class JClass : public JavaClass<JClass, JObject, jclass> {
template<typename F>
JNonvirtualMethod<F> getNonvirtualMethod(const char* name, const char* descriptor) const;

/// Get the canonical name of the class
local_ref<JString> getCanonicalName();

private:
jclass self() const noexcept;
};
Expand Down Expand Up @@ -604,6 +608,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