diff --git a/panda/src/gobj/geomVertexReader.I b/panda/src/gobj/geomVertexReader.I index 544bfea79e..1355f3f48b 100644 --- a/panda/src/gobj/geomVertexReader.I +++ b/panda/src/gobj/geomVertexReader.I @@ -607,7 +607,10 @@ quick_set_pointer(int row) { _pointer = _pointer_begin + _packer->_column->get_start() + _stride * row; #if defined(_DEBUG) - nassertv(_pointer_begin == _pointer_end || _pointer < _pointer_end); + // We have to allow the pointer to exceed the end by up to one row's + // width. This wouldn't be legal on a plain GeomVertexReader, but + // it *is* legal for a GeomVertexRewriter. + nassertv(_pointer_begin == _pointer_end || (_pointer - _packer->_column->get_start()) <= _pointer_end); #endif } diff --git a/panda/src/gobj/geomVertexWriter.I b/panda/src/gobj/geomVertexWriter.I index 362c09034e..7f8c8732ba 100644 --- a/panda/src/gobj/geomVertexWriter.I +++ b/panda/src/gobj/geomVertexWriter.I @@ -860,7 +860,9 @@ quick_set_pointer(int row) { _pointer = _pointer_begin + _packer->_column->get_start() + _stride * row; #if defined(_DEBUG) - nassertv(_pointer_begin == _pointer_end || _pointer <= _pointer_end); + // We have to allow the pointer to exceed the end by up to one row's + // width, because the next call might be to add_data_*(). + nassertv(_pointer_begin == _pointer_end || (_pointer - _packer->_column->get_start()) <= _pointer_end); #endif }