diff options
Diffstat (limited to 'libs/gui/IGraphicBufferAlloc.cpp')
-rw-r--r-- | libs/gui/IGraphicBufferAlloc.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libs/gui/IGraphicBufferAlloc.cpp b/libs/gui/IGraphicBufferAlloc.cpp index ac6ace692c..2fb380ccd1 100644 --- a/libs/gui/IGraphicBufferAlloc.cpp +++ b/libs/gui/IGraphicBufferAlloc.cpp @@ -46,13 +46,19 @@ public: virtual sp<GraphicBuffer> createGraphicBuffer(uint32_t width, uint32_t height, PixelFormat format, uint32_t usage, - status_t* error) { + std::string requestorName, status_t* error) { Parcel data, reply; data.writeInterfaceToken(IGraphicBufferAlloc::getInterfaceDescriptor()); data.writeUint32(width); data.writeUint32(height); data.writeInt32(static_cast<int32_t>(format)); data.writeUint32(usage); + if (requestorName.empty()) { + requestorName += "[PID "; + requestorName += std::to_string(getpid()); + requestorName += ']'; + } + data.writeUtf8AsUtf16(requestorName); remote()->transact(CREATE_GRAPHIC_BUFFER, data, &reply); sp<GraphicBuffer> graphicBuffer; status_t result = reply.readInt32(); @@ -102,8 +108,10 @@ status_t BnGraphicBufferAlloc::onTransact( PixelFormat format = static_cast<PixelFormat>(data.readInt32()); uint32_t usage = data.readUint32(); status_t error = NO_ERROR; - sp<GraphicBuffer> result = - createGraphicBuffer(width, height, format, usage, &error); + std::string requestorName; + data.readUtf8FromUtf16(&requestorName); + sp<GraphicBuffer> result = createGraphicBuffer(width, height, + format, usage, requestorName, &error); reply->writeInt32(error); if (result != 0) { reply->write(*result); |