Nativehelper: Export header-only version of helpers
Export a version of the nativehelper helpers that doesn't have
a dependency on the libnativehelper library. Instead, provide an
inline function for null throw.
Test: m
Change-Id: Idfab8809873d54db824c8bc089f003265fe5a9b9
diff --git a/include/nativehelper/ScopedStringChars.h b/include/nativehelper/ScopedStringChars.h
index 688291d..59c405c 100644
--- a/include/nativehelper/ScopedStringChars.h
+++ b/include/nativehelper/ScopedStringChars.h
@@ -18,55 +18,6 @@
#define SCOPED_STRING_CHARS_H_included
#include "JNIHelp.h"
-
-// A smart pointer that provides access to a jchar* given a JNI jstring.
-// Unlike GetStringChars, we throw NullPointerException rather than abort if
-// passed a null jstring, and get will return NULL.
-// This makes the correct idiom very simple:
-//
-// ScopedStringChars name(env, java_name);
-// if (name.get() == NULL) {
-// return NULL;
-// }
-class ScopedStringChars {
- public:
- ScopedStringChars(JNIEnv* env, jstring s) : env_(env), string_(s), size_(0) {
- if (s == NULL) {
- chars_ = NULL;
- jniThrowNullPointerException(env, NULL);
- } else {
- chars_ = env->GetStringChars(string_, NULL);
- if (chars_ != NULL) {
- size_ = env->GetStringLength(string_);
- }
- }
- }
-
- ~ScopedStringChars() {
- if (chars_ != NULL) {
- env_->ReleaseStringChars(string_, chars_);
- }
- }
-
- const jchar* get() const {
- return chars_;
- }
-
- size_t size() const {
- return size_;
- }
-
- const jchar& operator[](size_t n) const {
- return chars_[n];
- }
-
- private:
- JNIEnv* const env_;
- const jstring string_;
- const jchar* chars_;
- size_t size_;
-
- DISALLOW_COPY_AND_ASSIGN(ScopedStringChars);
-};
+#include <nativehelper/scoped_string_chars.h>
#endif // SCOPED_STRING_CHARS_H_included