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

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

Merge "Add garbage collecion function to BufferHubService"

parents c2eb4be4 d6cd6ba6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ Return<void> BufferHubService::importBuffer(const hidl_handle& /*nativeHandle*/,
    return Void();
}

hidl_handle BufferHubService::registerToken(const BufferClient* client) {
hidl_handle BufferHubService::registerToken(const wp<BufferClient>& client) {
    uint32_t token;
    std::lock_guard<std::mutex> lock(mTokenMapMutex);
    do {
+3 −3
Original line number Diff line number Diff line
@@ -46,18 +46,18 @@ public:

    // Non-binder functions
    // Internal help function for IBufferClient::duplicate.
    hidl_handle registerToken(const BufferClient* client);
    hidl_handle registerToken(const wp<BufferClient>& client);

private:
    // List of active BufferClient for bookkeeping.
    std::mutex mClientListMutex;
    std::vector<sp<BufferClient>> mClientList GUARDED_BY(mClientListMutex);
    std::vector<wp<BufferClient>> mClientList GUARDED_BY(mClientListMutex);

    // TODO(b/118180214): use a more secure implementation
    std::mt19937 mTokenEngine;
    // The mapping from token to the client creates it.
    std::mutex mTokenMapMutex;
    std::map<uint32_t, const BufferClient*> mTokenMap GUARDED_BY(mTokenMapMutex);
    std::map<uint32_t, const wp<BufferClient>> mTokenMap GUARDED_BY(mTokenMapMutex);
};

} // namespace implementation