diff options
| -rw-r--r-- | header_only_include/nativehelper/scoped_bytes.h | 82 | ||||
| -rw-r--r-- | include/nativehelper/ScopedBytes.h | 21 | ||||
| -rw-r--r-- | tests/Android.bp | 1 | ||||
| -rw-r--r-- | tests/scoped_bytes_test.cpp | 31 |
4 files changed, 0 insertions, 135 deletions
diff --git a/header_only_include/nativehelper/scoped_bytes.h b/header_only_include/nativehelper/scoped_bytes.h deleted file mode 100644 index f58efa4..0000000 --- a/header_only_include/nativehelper/scoped_bytes.h +++ /dev/null @@ -1,82 +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. - */ - -#pragma once - -#include <jni.h> - -#include "nativehelper_utils.h" - -/** - * ScopedBytesRO and ScopedBytesRW attempt to paper over the differences between byte[]s and - * ByteBuffers. This in turn helps paper over the differences between non-direct ByteBuffers backed - * by byte[]s, direct ByteBuffers backed by bytes[]s, and direct ByteBuffers not backed by byte[]s. - * (On Android, this last group only contains MappedByteBuffers.) - */ -template<bool readOnly> -class ScopedBytes { -public: - ScopedBytes(JNIEnv* env, jobject object) - : mEnv(env), mObject(object), mByteArray(nullptr), mPtr(nullptr) - { - if (mObject == nullptr) { - jniThrowNullPointerException(mEnv); - } else { - jclass byteArrayClass = env->FindClass("[B"); - if (mEnv->IsInstanceOf(mObject, byteArrayClass)) { - mByteArray = reinterpret_cast<jbyteArray>(mObject); - mPtr = mEnv->GetByteArrayElements(mByteArray, nullptr); - } else { - mPtr = reinterpret_cast<jbyte*>(mEnv->GetDirectBufferAddress(mObject)); - } - mEnv->DeleteLocalRef(byteArrayClass); - } - } - - ~ScopedBytes() { - if (mByteArray != nullptr) { - mEnv->ReleaseByteArrayElements(mByteArray, mPtr, readOnly ? JNI_ABORT : 0); - } - } - -private: - JNIEnv* const mEnv; - const jobject mObject; - jbyteArray mByteArray; - -protected: - jbyte* mPtr; - -private: - DISALLOW_COPY_AND_ASSIGN(ScopedBytes); -}; - -class ScopedBytesRO : public ScopedBytes<true> { -public: - ScopedBytesRO(JNIEnv* env, jobject object) : ScopedBytes<true>(env, object) {} - const jbyte* get() const { - return mPtr; - } -}; - -class ScopedBytesRW : public ScopedBytes<false> { -public: - ScopedBytesRW(JNIEnv* env, jobject object) : ScopedBytes<false>(env, object) {} - jbyte* get() { - return mPtr; - } -}; - diff --git a/include/nativehelper/ScopedBytes.h b/include/nativehelper/ScopedBytes.h deleted file mode 100644 index 7c369b1..0000000 --- a/include/nativehelper/ScopedBytes.h +++ /dev/null @@ -1,21 +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. - */ - -#pragma once - -#include "JNIHelp.h" -#include <nativehelper/scoped_bytes.h> - diff --git a/tests/Android.bp b/tests/Android.bp index ecf4c4a..9ac1260 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -5,7 +5,6 @@ cc_test { test_suites: ["device-tests"], host_supported: true, srcs: [ - "scoped_bytes_test.cpp", "scoped_local_frame_test.cpp", "scoped_local_ref_test.cpp", "scoped_primitive_array_test.cpp", diff --git a/tests/scoped_bytes_test.cpp b/tests/scoped_bytes_test.cpp deleted file mode 100644 index 17f0a5c..0000000 --- a/tests/scoped_bytes_test.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2020 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. - */ - -#include "nativehelper/scoped_bytes.h" - -// This is a test that scoped headers work independently. - -void TestCompilationScopedBytesRO(JNIEnv* env) { - jobject o = nullptr; - ScopedBytesRO sb(env, o); - sb.get(); -} - -void TestCompilationScopedBytesRW(JNIEnv* env) { - jobject o = nullptr; - ScopedBytesRW sb(env, o); - sb.get(); -} |
