st/mesa: fix some incorrect branching/clean-up code in TexImage functions
authorBrian Paul <brianp@vmware.com>
Wed, 16 Sep 2009 19:07:12 +0000 (13:07 -0600)
committerBrian Paul <brianp@vmware.com>
Wed, 16 Sep 2009 19:07:15 +0000 (13:07 -0600)
We need to be sure to call the _mesa_unmap_teximage_pbo() function if we
called _mesa_validate_pbo_teximage().

src/mesa/state_tracker/st_cb_texture.c

index 31196fe776b622a68a0b81417b3f71f2818a25b9..cfa33d48e12653b0d3d09be64eae52d6cc19eaf8 100644 (file)
@@ -764,9 +764,9 @@ st_TexImage(GLcontext * ctx,
       }
    }
 
+done:
    _mesa_unmap_teximage_pbo(ctx, unpack);
 
-done:
    if (stImage->pt && texImage->Data) {
       st_texture_image_unmap(ctx->st, stImage);
       texImage->Data = NULL;
@@ -1107,7 +1107,7 @@ st_TexSubimage(GLcontext *ctx, GLint dims, GLenum target, GLint level,
 
    if (!texImage->Data) {
       _mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexSubImage");
-      return;
+      goto done;
    }
 
    src = (const GLubyte *) pixels;
@@ -1138,9 +1138,9 @@ st_TexSubimage(GLcontext *ctx, GLint dims, GLenum target, GLint level,
       }
    }
 
+done:
    _mesa_unmap_teximage_pbo(ctx, packing);
 
-done:
    if (stImage->pt) {
       st_texture_image_unmap(ctx->st, stImage);
       texImage->Data = NULL;