[3171580] don't automatically log GraphicBuffer allocation failures

some of these failures are not fatal and even expected in some cases
so they should not emit a dump in the log in those cases.

Change-Id: Idcfa252e3bfa9d74e27fe4ad8f8623aa01aa9c5e
This commit is contained in:
Mathias Agopian 2010-12-03 17:33:09 -08:00
parent 33f4f32967
commit 678bdd6349
5 changed files with 18 additions and 5 deletions

View File

@ -88,12 +88,15 @@ public:
status_t lock(uint32_t usage, const Rect& rect, void** vaddr);
status_t lock(GGLSurface* surface, uint32_t usage);
status_t unlock();
android_native_buffer_t* getNativeBuffer() const;
void setIndex(int index);
int getIndex() const;
// for debugging
static void dumpAllocationsToSystemLog();
private:
virtual ~GraphicBuffer();

View File

@ -68,6 +68,7 @@ public:
status_t free(buffer_handle_t handle);
void dump(String8& res) const;
static void dumpToSystemLog();
private:
struct alloc_rec_t {

View File

@ -99,6 +99,11 @@ status_t GraphicBuffer::initCheck() const {
return mInitCheck;
}
void GraphicBuffer::dumpAllocationsToSystemLog()
{
GraphicBufferAllocator::dumpToSystemLog();
}
android_native_buffer_t* GraphicBuffer::getNativeBuffer() const
{
return static_cast<android_native_buffer_t*>(

View File

@ -73,6 +73,13 @@ void GraphicBufferAllocator::dump(String8& result) const
result.append(buffer);
}
void GraphicBufferAllocator::dumpToSystemLog()
{
String8 s;
GraphicBufferAllocator::getInstance().dump(s);
LOGD("%s", s.string());
}
status_t GraphicBufferAllocator::alloc(uint32_t w, uint32_t h, PixelFormat format,
int usage, buffer_handle_t* handle, int32_t* stride)
{
@ -104,10 +111,6 @@ status_t GraphicBufferAllocator::alloc(uint32_t w, uint32_t h, PixelFormat forma
rec.usage = usage;
rec.size = h * stride[0] * bytesPerPixel(format);
list.add(*handle, rec);
} else {
String8 s;
dump(s);
LOGD("%s", s.string());
}
return err;

View File

@ -347,6 +347,7 @@ sp<GraphicBuffer> Layer::requestBuffer(int index,
err = buffer->initCheck();
if (err || buffer->handle == 0) {
GraphicBuffer::dumpAllocationsToSystemLog();
LOGE_IF(err || buffer->handle == 0,
"Layer::requestBuffer(this=%p), index=%d, w=%d, h=%d failed (%s)",
this, index, w, h, strerror(-err));