2018-11-29 11:35:34 -08:00
|
|
|
/**
|
2018-09-11 15:27:47 -07:00
|
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
2016-08-31 16:15:15 +01:00
|
|
|
*
|
2018-11-29 11:35:34 -08:00
|
|
|
* This source code is licensed under the MIT license found in the LICENSE
|
|
|
|
* file in the root directory of this source tree.
|
2016-08-31 16:15:15 +01:00
|
|
|
*/
|
|
|
|
#include <fb/fbjni/References.h>
|
|
|
|
|
|
|
|
namespace facebook {
|
|
|
|
namespace jni {
|
|
|
|
|
|
|
|
JniLocalScope::JniLocalScope(JNIEnv* env, jint capacity)
|
|
|
|
: env_(env) {
|
|
|
|
hasFrame_ = false;
|
|
|
|
auto pushResult = env->PushLocalFrame(capacity);
|
|
|
|
FACEBOOK_JNI_THROW_EXCEPTION_IF(pushResult < 0);
|
|
|
|
hasFrame_ = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
JniLocalScope::~JniLocalScope() {
|
|
|
|
if (hasFrame_) {
|
|
|
|
env_->PopLocalFrame(nullptr);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace internal {
|
|
|
|
|
|
|
|
// Default implementation always returns true.
|
|
|
|
// Platform-specific sources can override this.
|
|
|
|
bool doesGetObjectRefTypeWork() __attribute__ ((weak));
|
|
|
|
bool doesGetObjectRefTypeWork() {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|