OSDN Git Service

Avoid NULL pointer exceptions when blitting without a buffer
authorGreg Hartman <ghartman@google.com>
Wed, 13 May 2015 03:57:51 +0000 (20:57 -0700)
committerGreg Hartman <ghartman@google.com>
Wed, 13 May 2015 18:34:31 +0000 (18:34 +0000)
Change-Id: Ic670895f50ff3aa12fb0963e321541b21e886e12
Reviewed-on: https://swiftshader-review.googlesource.com/3110
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Greg Hartman <ghartman@google.com>
src/Main/FrameBufferAndroid.cpp

index 4f64cf5..550dfb0 100644 (file)
@@ -31,14 +31,16 @@ namespace sw
     void FrameBufferAndroid::blit(void *source, const Rect *sourceRect, const Rect *destRect, Format format)
     {
         copy(source, format);
-               nativeWindow->queueBuffer(nativeWindow, buffer, -1);
-               if (buffer && locked)
+               if (buffer)
                {
-                       locked = 0;
-                       unlock();
+                       nativeWindow->queueBuffer(nativeWindow, buffer, -1);
+                       if (locked)
+                       {
+                               locked = 0;
+                               unlock();
+                       }
+                       buffer->common.decRef(&buffer->common);
                }
-
-               buffer->common.decRef(&buffer->common);
     }
 
     void* FrameBufferAndroid::lock()