Browse Source

fix crash in sprite renderer

David Rose 19 years ago
parent
commit
da9e4f8906
2 changed files with 16 additions and 4 deletions
  1. 8 2
      panda/src/gobj/geomVertexReader.cxx
  2. 8 2
      panda/src/gobj/geomVertexWriter.cxx

+ 8 - 2
panda/src/gobj/geomVertexReader.cxx

@@ -108,7 +108,10 @@ initialize() {
 bool GeomVertexReader::
 bool GeomVertexReader::
 set_vertex_column(int array, const GeomVertexColumn *column,
 set_vertex_column(int array, const GeomVertexColumn *column,
                   const GeomVertexDataPipelineReader *data_reader) {
                   const GeomVertexDataPipelineReader *data_reader) {
-  nassertr(column != (const GeomVertexColumn *)NULL, false);
+  if (column == (const GeomVertexColumn *)NULL) {
+    return set_column(0, NULL);
+  }
+
   nassertr(_vertex_data != (const GeomVertexData *)NULL, false);
   nassertr(_vertex_data != (const GeomVertexData *)NULL, false);
 
 
 #ifndef NDEBUG
 #ifndef NDEBUG
@@ -138,7 +141,10 @@ set_vertex_column(int array, const GeomVertexColumn *column,
 bool GeomVertexReader::
 bool GeomVertexReader::
 set_array_column(const GeomVertexColumn *column,
 set_array_column(const GeomVertexColumn *column,
                  const GeomVertexArrayDataPipelineReader *array_reader) {
                  const GeomVertexArrayDataPipelineReader *array_reader) {
-  nassertr(column != (const GeomVertexColumn *)NULL, false);
+  if (column == (const GeomVertexColumn *)NULL) {
+    return set_column(0, NULL);
+  }
+
   nassertr(_array_data != (const GeomVertexArrayData *)NULL, false);
   nassertr(_array_data != (const GeomVertexArrayData *)NULL, false);
 
 
   _stride = array_reader->get_array_format()->get_stride();
   _stride = array_reader->get_array_format()->get_stride();

+ 8 - 2
panda/src/gobj/geomVertexWriter.cxx

@@ -113,7 +113,10 @@ initialize() {
 bool GeomVertexWriter::
 bool GeomVertexWriter::
 set_vertex_column(int array, const GeomVertexColumn *column,
 set_vertex_column(int array, const GeomVertexColumn *column,
                   GeomVertexDataPipelineWriter *data_writer) {
                   GeomVertexDataPipelineWriter *data_writer) {
-  nassertr(column != (const GeomVertexColumn *)NULL, false);
+  if (column == (const GeomVertexColumn *)NULL) {
+    return set_column(0, NULL);
+  }
+
   nassertr(_vertex_data != (GeomVertexData *)NULL, false);
   nassertr(_vertex_data != (GeomVertexData *)NULL, false);
 
 
 #ifndef NDEBUG
 #ifndef NDEBUG
@@ -143,7 +146,10 @@ set_vertex_column(int array, const GeomVertexColumn *column,
 bool GeomVertexWriter::
 bool GeomVertexWriter::
 set_array_column(const GeomVertexColumn *column,
 set_array_column(const GeomVertexColumn *column,
                  GeomVertexArrayDataPipelineWriter *array_writer) {
                  GeomVertexArrayDataPipelineWriter *array_writer) {
-  nassertr(column != (const GeomVertexColumn *)NULL, false);
+  if (column == (const GeomVertexColumn *)NULL) {
+    return set_column(0, NULL);
+  }
+
   nassertr(_array_data != (GeomVertexArrayData *)NULL, false);
   nassertr(_array_data != (GeomVertexArrayData *)NULL, false);
 
 
   _stride = array_writer->get_array_format()->get_stride();
   _stride = array_writer->get_array_format()->get_stride();