diff options
| author | android-build-prod (mdb) <android-build-team-robot@google.com> | 2020-09-24 00:01:37 +0000 |
|---|---|---|
| committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-09-24 00:01:37 +0000 |
| commit | ef9b4fec89644f323ae7c785cac092cf7c51262b (patch) | |
| tree | f707a3c5499ffbfc0254f7e238f8eb5b09c12170 | |
| parent | 18b104885d320cd033837c892566d533fbedc451 (diff) | |
| parent | d6f20fa0d339241c4b058bc039aab4fabc16f434 (diff) | |
| download | platform_libnativehelper-simpleperf-release.tar.gz platform_libnativehelper-simpleperf-release.tar.bz2 platform_libnativehelper-simpleperf-release.zip | |
Merge "Snap for 6859336 from 67ebae821c782461d69beb1d9d27d9ca6979d27a to simpleperf-release" into simpleperf-releasesimpleperf-release
| -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(); -} |
