Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13c511b5 authored by Tomasz Wasilczyk's avatar Tomasz Wasilczyk Committed by Android (Google) Code Review
Browse files

Merge "Remove EnvWrapper template."

parents 6a411001 cc0b4794
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -14,13 +14,9 @@
 * limitations under the License.
 */

#define LOG_TAG "JavaRef"
//#define LOG_NDEBUG 0

#include "JavaRef.h"

#include <string>
#include <utils/Log.h>

namespace android {

@@ -28,8 +24,4 @@ JavaRef<jstring> make_javastr(JNIEnv *env, const std::string &str) {
    return make_javaref(env, env->NewStringUTF(str.c_str()));
}

EnvWrapper::EnvWrapper(JNIEnv *env) : mEnv(env) {
    ALOGE_IF(env == nullptr, "Environment is a nullptr");
}

} // namespace android
+0 −15
Original line number Diff line number Diff line
@@ -39,21 +39,6 @@ JavaRef<T> make_javaref(JNIEnv *env, T ref) {

JavaRef<jstring> make_javastr(JNIEnv *env, const std::string &str);

class EnvWrapper {
public:
    EnvWrapper(JNIEnv *env);

    template <typename T>
    JavaRef<T> operator() (T ref) const {
        return make_javaref(mEnv, ref);
    }

private:
    JNIEnv *mEnv;

    DISALLOW_COPY_AND_ASSIGN(EnvWrapper);
};

} // namespace android

#endif // _ANDROID_JAVA_REF_H
+1 −2
Original line number Diff line number Diff line
@@ -185,7 +185,6 @@ static jobject nativeOpenTuner(JNIEnv *env, jobject obj, long nativeContext, jin
    ALOGV("nativeOpenTuner()");
    AutoMutex _l(gContextMutex);
    auto& ctx = getNativeContext(nativeContext);
    EnvWrapper wrap(env);

    if (callback == nullptr) {
        ALOGE("Callback is empty");
@@ -210,7 +209,7 @@ static jobject nativeOpenTuner(JNIEnv *env, jobject obj, long nativeContext, jin
    Region region;
    BandConfig bandConfigHal = convert::BandConfigToHal(env, bandConfig, region);

    auto tuner = wrap(env->NewObject(gjni.Tuner.clazz, gjni.Tuner.cstor,
    auto tuner = make_javaref(env, env->NewObject(gjni.Tuner.clazz, gjni.Tuner.cstor,
            callback, halRev, region, withAudio));
    if (tuner == nullptr) {
        ALOGE("Unable to create new tuner object.");
+1 −2
Original line number Diff line number Diff line
@@ -258,7 +258,6 @@ static bool nativeStartBackgroundScan(JNIEnv *env, jobject obj, jlong nativeCont

static jobject nativeGetProgramList(JNIEnv *env, jobject obj, jlong nativeContext, jstring jFilter) {
    ALOGV("nativeGetProgramList()");
    EnvWrapper wrap(env);
    auto halTuner = getHalTuner11(nativeContext);
    if (halTuner == nullptr) {
        ALOGI("Program list is not supported with HAL < 1.1");
@@ -273,7 +272,7 @@ static jobject nativeGetProgramList(JNIEnv *env, jobject obj, jlong nativeContex
        halResult = result;
        if (halResult != ProgramListResult::OK) return;

        jList = wrap(env->NewObject(gjni.ArrayList.clazz, gjni.ArrayList.cstor));
        jList = make_javaref(env, env->NewObject(gjni.ArrayList.clazz, gjni.ArrayList.cstor));
        for (auto& program : programList) {
            auto jProgram = convert::ProgramInfoFromHal(env, program);
            env->CallBooleanMethod(jList.get(), gjni.ArrayList.add, jProgram.get());
+12 −16
Original line number Diff line number Diff line
@@ -156,12 +156,10 @@ bool __ThrowIfFailed(JNIEnv *env, const ProgramListResult halResult) {
}

void ThrowParcelableRuntimeException(JNIEnv *env, const std::string& msg) {
    EnvWrapper wrap(env);

    auto jMsg = wrap(env->NewStringUTF(msg.c_str()));
    auto runtimeExc = wrap(env->NewObject(gjni.RuntimeException.clazz,
    auto jMsg = make_javastr(env, msg);
    auto runtimeExc = make_javaref(env, env->NewObject(gjni.RuntimeException.clazz,
            gjni.RuntimeException.cstor, jMsg.get()));
    auto parcelableExc = wrap(env->NewObject(gjni.ParcelableException.clazz,
    auto parcelableExc = make_javaref(env, env->NewObject(gjni.ParcelableException.clazz,
            gjni.ParcelableException.cstor, runtimeExc.get()));

    auto res = env->Throw(static_cast<jthrowable>(parcelableExc.get()));
@@ -334,11 +332,10 @@ Direction DirectionToHal(bool directionDown) {

JavaRef<jobject> MetadataFromHal(JNIEnv *env, const hidl_vec<V1_0::MetaData> &metadata) {
    ALOGV("MetadataFromHal()");
    EnvWrapper wrap(env);

    if (metadata.size() == 0) return nullptr;

    auto jMetadata = wrap(env->NewObject(gjni.RadioMetadata.clazz, gjni.RadioMetadata.cstor));
    auto jMetadata = make_javaref(env, env->NewObject(
            gjni.RadioMetadata.clazz, gjni.RadioMetadata.cstor));

    for (auto& item : metadata) {
        jint key = static_cast<jint>(item.key);
@@ -351,7 +348,7 @@ JavaRef<jobject> MetadataFromHal(JNIEnv *env, const hidl_vec<V1_0::MetaData> &me
                break;
            case MetadataType::TEXT: {
                ALOGV("metadata TEXT %d", key);
                auto value = wrap(env->NewStringUTF(item.stringValue.c_str()));
                auto value = make_javastr(env, item.stringValue);
                status = env->CallIntMethod(jMetadata.get(), gjni.RadioMetadata.putStringFromNative,
                        key, value.get());
                break;
@@ -360,7 +357,7 @@ JavaRef<jobject> MetadataFromHal(JNIEnv *env, const hidl_vec<V1_0::MetaData> &me
                ALOGV("metadata RAW %d", key);
                auto len = item.rawValue.size();
                if (len == 0) break;
                auto value = wrap(env->NewByteArray(len));
                auto value = make_javaref(env, env->NewByteArray(len));
                if (value == nullptr) {
                    ALOGE("Failed to allocate byte array of len %zu", len);
                    break;
@@ -389,15 +386,14 @@ JavaRef<jobject> MetadataFromHal(JNIEnv *env, const hidl_vec<V1_0::MetaData> &me
static JavaRef<jobject> ProgramInfoFromHal(JNIEnv *env, const V1_0::ProgramInfo &info10,
        const V1_1::ProgramInfo *info11) {
    ALOGV("ProgramInfoFromHal()");
    EnvWrapper wrap(env);

    auto jMetadata = MetadataFromHal(env, info10.metadata);
    auto jVendorExtension = info11 ?
            wrap(env->NewStringUTF(info11->vendorExension.c_str())) : nullptr;
    auto jVendorExtension = info11 ? make_javastr(env, info11->vendorExension) : nullptr;

    return wrap(env->NewObject(gjni.ProgramInfo.clazz, gjni.ProgramInfo.cstor, info10.channel,
            info10.subChannel, info10.tuned, info10.stereo, info10.digital, info10.signalStrength,
            jMetadata.get(), info11 ? info11->flags : 0, jVendorExtension.get()));
    return make_javaref(env, env->NewObject(gjni.ProgramInfo.clazz, gjni.ProgramInfo.cstor,
            info10.channel, info10.subChannel, info10.tuned, info10.stereo, info10.digital,
            info10.signalStrength, jMetadata.get(), info11 ? info11->flags : 0,
            jVendorExtension.get()));
}

JavaRef<jobject> ProgramInfoFromHal(JNIEnv *env, const V1_0::ProgramInfo &info) {