diff src/SDL_compat.c @ 2202:98e76ba7d5a4

Merged fix for bug #457 from SDL 1.2
author Sam Lantinga <slouken@libsdl.org>
date Sun, 15 Jul 2007 21:54:16 +0000
parents 760c1bd2d625
children 926294b2bb4e
line wrap: on
line diff
--- a/src/SDL_compat.c	Sun Jul 15 21:53:51 2007 +0000
+++ b/src/SDL_compat.c	Sun Jul 15 21:54:16 2007 +0000
@@ -1399,6 +1399,11 @@
 {
     void *pixels;
     int pitch;
+
+    if (!overlay) {
+        SDL_SetError("Passed a NULL overlay");
+        return -1;
+    }
     if (SDL_LockTexture(overlay->hwdata->textureID, NULL, 1, &pixels, &pitch)
         < 0) {
         return -1;
@@ -1424,12 +1429,19 @@
 void
 SDL_UnlockYUVOverlay(SDL_Overlay * overlay)
 {
+    if (!overlay) {
+        return;
+    }
     SDL_UnlockTexture(overlay->hwdata->textureID);
 }
 
 int
 SDL_DisplayYUVOverlay(SDL_Overlay * overlay, SDL_Rect * dstrect)
 {
+    if (!overlay || !dstrect) {
+        SDL_SetError("Passed a NULL overlay or dstrect");
+        return -1;
+    }
     if (SDL_RenderCopy(overlay->hwdata->textureID, NULL, dstrect) < 0) {
         return -1;
     }
@@ -1440,15 +1452,16 @@
 void
 SDL_FreeYUVOverlay(SDL_Overlay * overlay)
 {
-    if (overlay) {
-        if (overlay->hwdata) {
-            if (overlay->hwdata->textureID) {
-                SDL_DestroyTexture(overlay->hwdata->textureID);
-            }
-            SDL_free(overlay->hwdata);
+    if (!overlay) {
+        return;
+    }
+    if (overlay->hwdata) {
+        if (overlay->hwdata->textureID) {
+            SDL_DestroyTexture(overlay->hwdata->textureID);
         }
-        SDL_free(overlay);
+        SDL_free(overlay->hwdata);
     }
+    SDL_free(overlay);
 }
 
 void