Skip to content
Permalink
Browse files

Fixed bug #457

Don't crash if passed a NULL overlay.  The app crashes anyway, since
it's not checking the return value of the create call, but at least it's
not crashing in SDL anymore. :)
  • Loading branch information
slouken committed Jul 15, 2007
1 parent eff5e03 commit 7e366d80c1bde0dea5539c2498a38b5c8b99d200
Showing with 18 additions and 5 deletions.
  1. +18 −5 src/video/SDL_yuv.c
@@ -65,11 +65,18 @@ SDL_Overlay *SDL_CreateYUVOverlay(int w, int h, Uint32 format,

int SDL_LockYUVOverlay(SDL_Overlay *overlay)
{
if ( overlay == NULL ) {
SDL_SetError("Passed NULL overlay");
return -1;
}
return overlay->hwfuncs->Lock(current_video, overlay);
}

void SDL_UnlockYUVOverlay(SDL_Overlay *overlay)
{
if ( overlay == NULL ) {
return;
}
overlay->hwfuncs->Unlock(current_video, overlay);
}

@@ -79,6 +86,11 @@ int SDL_DisplayYUVOverlay(SDL_Overlay *overlay, SDL_Rect *dstrect)
int srcx, srcy, srcw, srch;
int dstx, dsty, dstw, dsth;

if ( overlay == NULL || dstrect == NULL ) {
SDL_SetError("Passed NULL overlay or dstrect");
return -1;
}

/* Clip the rectangle to the screen area */
srcx = 0;
srcy = 0;
@@ -128,10 +140,11 @@ int SDL_DisplayYUVOverlay(SDL_Overlay *overlay, SDL_Rect *dstrect)

void SDL_FreeYUVOverlay(SDL_Overlay *overlay)
{
if ( overlay ) {
if ( overlay->hwfuncs ) {
overlay->hwfuncs->FreeHW(current_video, overlay);
}
SDL_free(overlay);
if ( overlay == NULL ) {
return;
}
if ( overlay->hwfuncs ) {
overlay->hwfuncs->FreeHW(current_video, overlay);
}
SDL_free(overlay);
}

0 comments on commit 7e366d8

Please sign in to comment.