diff options
author | Mathias Agopian <mathias@google.com> | 2009-09-14 15:59:16 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2009-09-14 15:59:16 -0700 |
commit | 4790a3c1a2899d92868b3912453e020752faa88c (patch) | |
tree | 4a25a5e62d1e82758808c6be254134306886d16f /libs | |
parent | c7d56010815b0e7104dfc1d4bba6d16cdcbffec4 (diff) | |
download | frameworks_native-4790a3c1a2899d92868b3912453e020752faa88c.zip frameworks_native-4790a3c1a2899d92868b3912453e020752faa88c.tar.gz frameworks_native-4790a3c1a2899d92868b3912453e020752faa88c.tar.bz2 |
fix [2117464] SF can crash when calling dumpsys
Diffstat (limited to 'libs')
-rw-r--r-- | libs/surfaceflinger/SurfaceFlinger.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/libs/surfaceflinger/SurfaceFlinger.cpp b/libs/surfaceflinger/SurfaceFlinger.cpp index 8685f99..a352431 100644 --- a/libs/surfaceflinger/SurfaceFlinger.cpp +++ b/libs/surfaceflinger/SurfaceFlinger.cpp @@ -1524,13 +1524,24 @@ status_t SurfaceFlinger::dump(int fd, const Vector<String16>& args) result.append( l->lcblk->dump(" ") ); sp<const Buffer> buf0(l->getBuffer(0)); sp<const Buffer> buf1(l->getBuffer(1)); + uint32_t w0=0, h0=0, s0=0; + uint32_t w1=0, h1=0, s1=0; + if (buf0 != 0) { + w0 = buf0->getWidth(); + h0 = buf0->getHeight(); + s0 = buf0->getStride(); + } + if (buf1 != 0) { + w1 = buf1->getWidth(); + h1 = buf1->getHeight(); + s1 = buf1->getStride(); + } snprintf(buffer, SIZE, " " "format=%2d, [%3ux%3u:%3u] [%3ux%3u:%3u]," " freezeLock=%p\n", l->pixelFormat(), - buf0->getWidth(), buf0->getHeight(), buf0->getStride(), - buf1->getWidth(), buf1->getHeight(), buf1->getStride(), + w0, h0, s0, w1, h1, s1, l->getFreezeLock().get()); result.append(buffer); buffer[0] = 0; |