#include "include/jni/scoped_java_ref.h"
#include "footstone/logging.h"
#include "include/jni/jni_env.h"
namespace flexui {
inline namespace framework {
inline namespace jni {
JavaRef::JavaRef(JNIEnv* j_env, jobject j_obj) : obj_(nullptr) {
if (!j_env) {
j_env = JNIEnvironment::GetInstance()->AttachCurrentThread();
} else {
FOOTSTONE_DCHECK(j_env == JNIEnvironment::GetInstance()->AttachCurrentThread());
}
if (j_obj) {
obj_ = j_env->NewGlobalRef(j_obj);
}
}
JavaRef::~JavaRef() {
if (obj_) {
JNIEnvironment::GetInstance()->AttachCurrentThread()->DeleteGlobalRef(obj_);
}
}
}
}
}