|
@@ -131,10 +131,10 @@ get_modified() const {
|
|
|
*/
|
|
*/
|
|
|
INLINE bool GeomVertexArrayData::
|
|
INLINE bool GeomVertexArrayData::
|
|
|
request_resident(Thread *current_thread) const {
|
|
request_resident(Thread *current_thread) const {
|
|
|
-#ifdef DO_PIPELINING
|
|
|
|
|
- CPT(GeomVertexArrayData::CData) cdata = _cycler.read_unlocked(current_thread);
|
|
|
|
|
-#else
|
|
|
|
|
const GeomVertexArrayData::CData *cdata = _cycler.read_unlocked(current_thread);
|
|
const GeomVertexArrayData::CData *cdata = _cycler.read_unlocked(current_thread);
|
|
|
|
|
+
|
|
|
|
|
+#ifdef DO_PIPELINING
|
|
|
|
|
+ cdata->ref();
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
cdata->_rw_lock.acquire();
|
|
cdata->_rw_lock.acquire();
|
|
@@ -143,6 +143,11 @@ request_resident(Thread *current_thread) const {
|
|
|
bool is_resident = (cdata->_buffer.get_read_pointer(false) != nullptr);
|
|
bool is_resident = (cdata->_buffer.get_read_pointer(false) != nullptr);
|
|
|
|
|
|
|
|
cdata->_rw_lock.release();
|
|
cdata->_rw_lock.release();
|
|
|
|
|
+
|
|
|
|
|
+#ifdef DO_PIPELINING
|
|
|
|
|
+ unref_delete((CycleData *)cdata);
|
|
|
|
|
+#endif
|
|
|
|
|
+
|
|
|
return is_resident;
|
|
return is_resident;
|
|
|
}
|
|
}
|
|
|
|
|
|