diff options
author | Brian Carlstrom <bdc@google.com> | 2013-05-10 22:46:57 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-05-10 22:46:58 +0000 |
commit | a0e2b56a9b69559f01b1e759429aaab036c68a93 (patch) | |
tree | fe3643dde4cad970a9828f4ac8e04de12a1b179e /include/ScopedUtfChars.h | |
parent | 0fbcc27768d69281b4bced043fa25c9addb9f9b4 (diff) | |
parent | 7785a7b343822198e043339a976c7f3564fa43fb (diff) | |
download | libcore-a0e2b56a9b69559f01b1e759429aaab036c68a93.zip libcore-a0e2b56a9b69559f01b1e759429aaab036c68a93.tar.gz libcore-a0e2b56a9b69559f01b1e759429aaab036c68a93.tar.bz2 |
Merge "Move more utility classes from libcore to libnativehelper (part 2)"
Diffstat (limited to 'include/ScopedUtfChars.h')
-rw-r--r-- | include/ScopedUtfChars.h | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/include/ScopedUtfChars.h b/include/ScopedUtfChars.h deleted file mode 100644 index 7761450..0000000 --- a/include/ScopedUtfChars.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef SCOPED_UTF_CHARS_H_included -#define SCOPED_UTF_CHARS_H_included - -#include "JNIHelp.h" -#include <string.h> - -// A smart pointer that provides read-only access to a Java string's UTF chars. -// Unlike GetStringUTFChars, we throw NullPointerException rather than abort if -// passed a null jstring, and c_str will return NULL. -// This makes the correct idiom very simple: -// -// ScopedUtfChars name(env, java_name); -// if (name.c_str() == NULL) { -// return NULL; -// } -class ScopedUtfChars { - public: - ScopedUtfChars(JNIEnv* env, jstring s) : env_(env), string_(s) { - if (s == NULL) { - utf_chars_ = NULL; - jniThrowNullPointerException(env, NULL); - } else { - utf_chars_ = env->GetStringUTFChars(s, NULL); - } - } - - ~ScopedUtfChars() { - if (utf_chars_) { - env_->ReleaseStringUTFChars(string_, utf_chars_); - } - } - - const char* c_str() const { - return utf_chars_; - } - - size_t size() const { - return strlen(utf_chars_); - } - - const char& operator[](size_t n) const { - return utf_chars_[n]; - } - - private: - JNIEnv* env_; - jstring string_; - const char* utf_chars_; - - // Disallow copy and assignment. - ScopedUtfChars(const ScopedUtfChars&); - void operator=(const ScopedUtfChars&); -}; - -#endif // SCOPED_UTF_CHARS_H_included |