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

Commit 3d726d16 authored by Martijn Coenen's avatar Martijn Coenen
Browse files

Add HwParcel::releaseParcel()

To be able to free native Parcel objects as soon
as a transaction is done.

Test: hidl_test_java
Bug: 36088202
Change-Id: I50b3eb7e9fe06958c64575923730d3467e73b9a5
parent c337e32b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -219,6 +219,7 @@ public class HwParcel {
    public native final void writeStatus(int status);
    public native final void verifySuccess();
    public native final void releaseTemporaryStorage();
    public native final void release();

    public native final void send();

+9 −0
Original line number Diff line number Diff line
@@ -404,6 +404,11 @@ static void JHwParcel_native_verifySuccess(JNIEnv *env, jobject thiz) {
    signalExceptionForError(env, err);
}

static void JHwParcel_native_release(
        JNIEnv *env, jobject thiz) {
    JHwParcel::GetNativeContext(env, thiz)->setParcel(NULL, false /* assumeOwnership */);
}

static void JHwParcel_native_releaseTemporaryStorage(
        JNIEnv *env, jobject thiz) {
    JHwParcel::GetNativeContext(env, thiz)->getStorage()->release(env);
@@ -955,6 +960,10 @@ static JNINativeMethod gMethods[] = {

    { "writeBuffer", "(L" PACKAGE_PATH "/HwBlob;)V",
        (void *)JHwParcel_native_writeBuffer },

    { "release", "()V",
        (void *)JHwParcel_native_release },

};

namespace android {