fix [2129080] Soft reboot after clicking around and then rubbing the screen
diff --git a/libs/surfaceflinger/Layer.cpp b/libs/surfaceflinger/Layer.cpp
index 7387c85..8dfc2cf 100644
--- a/libs/surfaceflinger/Layer.cpp
+++ b/libs/surfaceflinger/Layer.cpp
@@ -176,7 +176,7 @@
                     // this failed, for instance, because we don't support
                     // NPOT.
                     // FIXME: do something!
-                    LOGD("layer=%p, glEGLImageTargetTexture2DOES(%d) "
+                    LOGD("layer=%p, glEGLImageTargetTexture2DOES(%p) "
                          "failed err=0x%04x",
                          this, mTextures[index].image, error);
                     mFlags &= ~DisplayHardware::DIRECT_TEXTURE;
@@ -256,11 +256,17 @@
         w = mWidth;
         h = mHeight;
         buffer = mBuffers[index];
+        
+        // destroy() could have been called before we get here, we log it
+        // because it's uncommon, and the code below should handle it
+        LOGW_IF(buffer==0, 
+                "mBuffers[%d] is null (mWidth=%d, mHeight=%d)",
+                index, w, h);
+        
         mBuffers[index].clear();
     }
 
-
-    if (buffer->getStrongCount() == 1) {
+    if (buffer!=0 && buffer->getStrongCount() == 1) {
         err = buffer->reallocate(w, h, mFormat, usage, mBufferFlags);
     } else {
         // here we have to reallocate a new buffer because we could have a