diff --git a/panda/src/gobj/geomVertexArrayData.I b/panda/src/gobj/geomVertexArrayData.I index 1a6c35c9b4..278cd57cde 100644 --- a/panda/src/gobj/geomVertexArrayData.I +++ b/panda/src/gobj/geomVertexArrayData.I @@ -156,9 +156,9 @@ get_modified() const { //////////////////////////////////////////////////////////////////// INLINE CPT(GeomVertexArrayDataHandle) GeomVertexArrayData:: get_handle(Thread *current_thread) const { + const CData *cdata = _cycler.read_unlocked(current_thread); return new GeomVertexArrayDataHandle(this, current_thread, - _cycler.read_unlocked(current_thread), - false); + cdata, false); } //////////////////////////////////////////////////////////////////// @@ -172,9 +172,9 @@ get_handle(Thread *current_thread) const { //////////////////////////////////////////////////////////////////// INLINE PT(GeomVertexArrayDataHandle) GeomVertexArrayData:: modify_handle(Thread *current_thread) { + CData *cdata = _cycler.write_upstream(true, current_thread); return new GeomVertexArrayDataHandle(this, current_thread, - _cycler.write_upstream(true, current_thread), - true); + cdata, true); } //////////////////////////////////////////////////////////////////// @@ -266,7 +266,7 @@ operator = (const GeomVertexArrayData::CData ©) { //////////////////////////////////////////////////////////////////// // Function: GeomVertexArrayDataHandle::Constructor -// Access: Public +// Access: Private // Description: //////////////////////////////////////////////////////////////////// INLINE GeomVertexArrayDataHandle:: @@ -377,19 +377,6 @@ get_read_pointer() const { return _cdata->_buffer.get_read_pointer(); } -//////////////////////////////////////////////////////////////////// -// Function: GeomVertexArrayDataHandle::get_write_pointer -// Access: Public -// Description: Returns a writable pointer to the beginning of the -// actual data stream. -//////////////////////////////////////////////////////////////////// -INLINE unsigned char *GeomVertexArrayDataHandle:: -get_write_pointer() { - nassertr(_writable, NULL); - check_resident(); - return _cdata->_buffer.get_write_pointer(); -} - //////////////////////////////////////////////////////////////////// // Function: GeomVertexArrayDataHandle::get_array_format // Access: Public diff --git a/panda/src/gobj/geomVertexArrayData.cxx b/panda/src/gobj/geomVertexArrayData.cxx index e25cba9da2..e45302f4d1 100644 --- a/panda/src/gobj/geomVertexArrayData.cxx +++ b/panda/src/gobj/geomVertexArrayData.cxx @@ -636,6 +636,20 @@ fillin(DatagramIterator &scan, BamReader *manager, void *extra_data) { _modified = Geom::get_next_modified(); } +//////////////////////////////////////////////////////////////////// +// Function: GeomVertexArrayDataHandle::get_write_pointer +// Access: Public +// Description: Returns a writable pointer to the beginning of the +// actual data stream. +//////////////////////////////////////////////////////////////////// +unsigned char *GeomVertexArrayDataHandle:: +get_write_pointer() { + nassertr(_writable, NULL); + check_resident(); + _cdata->_modified = Geom::get_next_modified(); + return _cdata->_buffer.get_write_pointer(); +} + //////////////////////////////////////////////////////////////////// // Function: GeomVertexArrayDataHandle::set_num_rows // Access: Public diff --git a/panda/src/gobj/geomVertexArrayData.h b/panda/src/gobj/geomVertexArrayData.h index ed27b6d1f1..42fffccbaa 100644 --- a/panda/src/gobj/geomVertexArrayData.h +++ b/panda/src/gobj/geomVertexArrayData.h @@ -259,7 +259,7 @@ public: INLINE GeomVertexArrayData *get_object(); INLINE const unsigned char *get_read_pointer() const; - INLINE unsigned char *get_write_pointer(); + unsigned char *get_write_pointer(); PUBLISHED: INLINE const GeomVertexArrayFormat *get_array_format() const;