Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(185)

Unified Diff: base/android/scoped_java_ref.cc

Issue 225283008: base: Add ScopedJavaLocalFrame class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/android/scoped_java_ref.cc
diff --git a/base/android/scoped_java_ref.cc b/base/android/scoped_java_ref.cc
index 21b466e958423f52b6e5f5657a51056e0a146fbc..a84d3471f77246794d28b7b8c650d317ca62a181 100644
--- a/base/android/scoped_java_ref.cc
+++ b/base/android/scoped_java_ref.cc
@@ -9,6 +9,11 @@
namespace base {
namespace android {
+namespace {
+
+const int kDefaultLocalFrameCapacity = 512;
+
+} // namespace
JavaRef<jobject>::JavaRef() : obj_(NULL) {}
@@ -69,5 +74,16 @@ jobject JavaRef<jobject>::ReleaseInternal() {
return obj;
}
+ScopedJavaLocalFrame::ScopedJavaLocalFrame(JNIEnv* env) : env_(env) {
+ env_->PushLocalFrame(kDefaultLocalFrameCapacity);
+}
+
+ScopedJavaLocalFrame::ScopedJavaLocalFrame(JNIEnv* env, int capacity)
+ : env_(env) {
+ env_->PushLocalFrame(capacity);
no sievers 2014/04/04 20:32:11 Might want to DCHECK() that this returns 0, esp. i
reveman 2014/04/04 21:07:08 Done.
+}
+
+ScopedJavaLocalFrame::~ScopedJavaLocalFrame() { env_->PopLocalFrame(NULL); }
+
} // namespace android
} // namespace base

Powered by Google App Engine
This is Rietveld 408576698