mesa/main: Never return NULL in _mesa_get_texstore_func.
authorChia-I Wu <olvaffe@gmail.com>
Thu, 29 Oct 2009 07:19:59 +0000 (15:19 +0800)
committerBrian Paul <brianp@vmware.com>
Thu, 29 Oct 2009 13:52:58 +0000 (07:52 -0600)
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
src/mesa/main/texstore.c

index 36228e671f7e4ac5181fe533dd988fe75a3019ff..01fea476aeef7af429cffda97cbbac5abb75baab 100644 (file)
@@ -3083,6 +3083,26 @@ texstore_funcs[MESA_FORMAT_COUNT] =
 };
 
 
+static GLboolean
+_mesa_texstore_null(TEXSTORE_PARAMS)
+{
+   (void) ctx; (void) dims;
+   (void) baseInternalFormat;
+   (void) dstFormat;
+   (void) dstAddr;
+   (void) dstXoffset; (void) dstYoffset; (void) dstZoffset;
+   (void) dstRowStride; (void) dstImageOffsets;
+   (void) srcWidth; (void) srcHeight; (void) srcDepth;
+   (void) srcFormat; (void) srcType;
+   (void) srcAddr;
+   (void) srcPacking;
+
+   /* should never happen */
+   _mesa_problem(NULL, "_mesa_texstore_null() is called");
+   return GL_FALSE;
+}
+
+
 /**
  * Return the StoreTexImageFunc pointer to store an image in the given format.
  */
@@ -3096,7 +3116,11 @@ _mesa_get_texstore_func(gl_format format)
    }
 #endif
    ASSERT(texstore_funcs[format].Name == format);
-   return texstore_funcs[format].Store;
+
+   if (texstore_funcs[format].Store)
+      return texstore_funcs[format].Store;
+   else
+      return _mesa_texstore_null;
 }
 
 
@@ -3112,8 +3136,6 @@ _mesa_texstore(TEXSTORE_PARAMS)
 
    storeImage = _mesa_get_texstore_func(dstFormat);
 
-   assert(storeImage);
-
    success = storeImage(ctx, dims, baseInternalFormat,
                         dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset,
                         dstRowStride, dstImageOffsets,