From d666d5b0f638a1ba06f8f8662cb5e5011659389f Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Wed, 30 Aug 2017 10:20:02 -0700 Subject: [PATCH] Fix ownership of objects returned by VintfObject::Get* VintfObject::Get* returns a pointer that clients can own. Test: builds Bug: 65166415 Change-Id: Ia3d3f5c00172dec462eb5e8ceeb7b0ba98bc6cfb --- core/jni/android_os_VintfObject.cpp | 8 ++++---- core/jni/android_os_VintfRuntimeInfo.cpp | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/jni/android_os_VintfObject.cpp b/core/jni/android_os_VintfObject.cpp index 7ec4b8ea0799c..5ef2a9e6465c0 100644 --- a/core/jni/android_os_VintfObject.cpp +++ b/core/jni/android_os_VintfObject.cpp @@ -56,7 +56,7 @@ static inline jobjectArray toJavaStringArray(JNIEnv* env, const V& v) { } template -static void tryAddSchema(const T* object, const XmlConverter& converter, +static void tryAddSchema(const std::shared_ptr& object, const XmlConverter& converter, const std::string& description, std::vector* cStrings) { if (object == nullptr) { @@ -66,7 +66,7 @@ static void tryAddSchema(const T* object, const XmlConverter& converter, } } -static void tryAddHalNamesAndVersions(const HalManifest *manifest, +static void tryAddHalNamesAndVersions(const std::shared_ptr& manifest, const std::string& description, std::set *output) { if (manifest == nullptr) { @@ -119,7 +119,7 @@ static jobjectArray android_os_VintfObject_getHalNamesAndVersions(JNIEnv* env, j } static jstring android_os_VintfObject_getSepolicyVersion(JNIEnv* env, jclass) { - const HalManifest *manifest = VintfObject::GetDeviceHalManifest(); + std::shared_ptr manifest = VintfObject::GetDeviceHalManifest(); if (manifest == nullptr || manifest->type() != SchemaType::DEVICE) { LOG(WARNING) << __FUNCTION__ << "Cannot get device manifest"; return nullptr; @@ -129,7 +129,7 @@ static jstring android_os_VintfObject_getSepolicyVersion(JNIEnv* env, jclass) { } static jobject android_os_VintfObject_getVndkSnapshots(JNIEnv* env, jclass) { - const HalManifest *manifest = VintfObject::GetFrameworkHalManifest(); + std::shared_ptr manifest = VintfObject::GetFrameworkHalManifest(); if (manifest == nullptr || manifest->type() != SchemaType::FRAMEWORK) { LOG(WARNING) << __FUNCTION__ << "Cannot get framework manifest"; return nullptr; diff --git a/core/jni/android_os_VintfRuntimeInfo.cpp b/core/jni/android_os_VintfRuntimeInfo.cpp index 19220cf05adbb..315eac1b94140 100644 --- a/core/jni/android_os_VintfRuntimeInfo.cpp +++ b/core/jni/android_os_VintfRuntimeInfo.cpp @@ -32,7 +32,7 @@ using vintf::VintfObject; #define MAP_STRING_METHOD(javaMethod, cppString) \ static jstring android_os_VintfRuntimeInfo_##javaMethod(JNIEnv* env, jclass clazz) \ { \ - const RuntimeInfo *info = VintfObject::GetRuntimeInfo(); \ + std::shared_ptr info = VintfObject::GetRuntimeInfo(); \ if (info == nullptr) return nullptr; \ return env->NewStringUTF((cppString).c_str()); \ } \ @@ -50,7 +50,7 @@ MAP_STRING_METHOD(getBootVbmetaAvbVersion, vintf::to_string(info->bootVbmetaAvbV static jlong android_os_VintfRuntimeInfo_getKernelSepolicyVersion(JNIEnv *env, jclass clazz) { - const RuntimeInfo *info = VintfObject::GetRuntimeInfo(); + std::shared_ptr info = VintfObject::GetRuntimeInfo(); if (info == nullptr) return 0; return static_cast(info->kernelSepolicyVersion()); }