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

Commit 040a3913 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Pass correct size of integer to CallVoidMethod." into oc-dev

parents c7f47466 f8708a02
Loading
Loading
Loading
Loading
+13 −14
Original line number Original line Diff line number Diff line
@@ -53,13 +53,11 @@ public:
        mEnv(env), mSelf(self) {}
        mEnv(env), mSelf(self) {}


    void OnLookup(uint64_t unique, uint64_t inode) override {
    void OnLookup(uint64_t unique, uint64_t inode) override {
        mEnv->CallVoidMethod(mSelf, gOnCommandMethod, FUSE_LOOKUP, unique, inode, 0, 0, nullptr);
        CallOnCommand(FUSE_LOOKUP, unique, inode, 0, 0, nullptr);
        CHECK(!mEnv->ExceptionCheck());
    }
    }


    void OnGetAttr(uint64_t unique, uint64_t inode) override {
    void OnGetAttr(uint64_t unique, uint64_t inode) override {
        mEnv->CallVoidMethod(mSelf, gOnCommandMethod, FUSE_GETATTR, unique, inode, 0, 0, nullptr);
        CallOnCommand(FUSE_GETATTR, unique, inode, 0, 0, nullptr);
        CHECK(!mEnv->ExceptionCheck());
    }
    }


    void OnOpen(uint64_t unique, uint64_t inode) override {
    void OnOpen(uint64_t unique, uint64_t inode) override {
@@ -75,14 +73,12 @@ public:
    }
    }


    void OnFsync(uint64_t unique, uint64_t inode) override {
    void OnFsync(uint64_t unique, uint64_t inode) override {
        mEnv->CallVoidMethod(mSelf, gOnCommandMethod, FUSE_FSYNC, unique, inode, 0, 0, nullptr);
        CallOnCommand(FUSE_FSYNC, unique, inode, 0, 0, nullptr);
        CHECK(!mEnv->ExceptionCheck());
    }
    }


    void OnRelease(uint64_t unique, uint64_t inode) override {
    void OnRelease(uint64_t unique, uint64_t inode) override {
        mBuffers.erase(inode);
        mBuffers.erase(inode);
        mEnv->CallVoidMethod(mSelf, gOnCommandMethod, FUSE_RELEASE, unique, inode, 0, 0, nullptr);
        CallOnCommand(FUSE_RELEASE, unique, inode, 0, 0, nullptr);
        CHECK(!mEnv->ExceptionCheck());
    }
    }


    void OnRead(uint64_t unique, uint64_t inode, uint64_t offset, uint32_t size) override {
    void OnRead(uint64_t unique, uint64_t inode, uint64_t offset, uint32_t size) override {
@@ -91,10 +87,7 @@ public:
        auto it = mBuffers.find(inode);
        auto it = mBuffers.find(inode);
        CHECK(it != mBuffers.end());
        CHECK(it != mBuffers.end());


        mEnv->CallVoidMethod(
        CallOnCommand(FUSE_READ, unique, inode, offset, size, it->second->get());
                mSelf, gOnCommandMethod, FUSE_READ, unique, inode, offset, size,
                it->second->get());
        CHECK(!mEnv->ExceptionCheck());
    }
    }


    void OnWrite(uint64_t unique, uint64_t inode, uint64_t offset, uint32_t size,
    void OnWrite(uint64_t unique, uint64_t inode, uint64_t offset, uint32_t size,
@@ -109,8 +102,14 @@ public:
        mEnv->SetByteArrayRegion(javaBuffer, 0, size, static_cast<const jbyte*>(buffer));
        mEnv->SetByteArrayRegion(javaBuffer, 0, size, static_cast<const jbyte*>(buffer));
        CHECK(!mEnv->ExceptionCheck());
        CHECK(!mEnv->ExceptionCheck());


        mEnv->CallVoidMethod(
        CallOnCommand(FUSE_WRITE, unique, inode, offset, size, javaBuffer);
                mSelf, gOnCommandMethod, FUSE_WRITE, unique, inode, offset, size, javaBuffer);
    }

private:
    // Helper function to make sure we invoke CallVoidMethod with correct size of integer arguments.
    void CallOnCommand(jint command, jlong unique, jlong inode, jlong offset, jint size,
                       jobject bytes) {
        mEnv->CallVoidMethod(mSelf, gOnCommandMethod, command, unique, inode, offset, size, bytes);
        CHECK(!mEnv->ExceptionCheck());
        CHECK(!mEnv->ExceptionCheck());
    }
    }
};
};