From 79714392cbb475e1a52a94156f70d8c9705c78d6 Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 14 Dec 2020 11:16:11 +0100 Subject: [PATCH] gobj: Enable slightly more efficient GeomVertexReader/Writer ctor This allows moving an existing PT(GeomVertexData) into the object, preventing an extra refcount increase. --- panda/src/gobj/geomVertexReader.I | 16 ++++++++-------- panda/src/gobj/geomVertexReader.h | 8 ++++---- panda/src/gobj/geomVertexWriter.I | 16 ++++++++-------- panda/src/gobj/geomVertexWriter.h | 8 ++++---- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/panda/src/gobj/geomVertexReader.I b/panda/src/gobj/geomVertexReader.I index 2fc27b911a..513b6e0c53 100644 --- a/panda/src/gobj/geomVertexReader.I +++ b/panda/src/gobj/geomVertexReader.I @@ -29,9 +29,9 @@ GeomVertexReader(Thread *current_thread) : * object. */ INLINE GeomVertexReader:: -GeomVertexReader(const GeomVertexData *vertex_data, +GeomVertexReader(CPT(GeomVertexData) vertex_data, Thread *current_thread) : - _vertex_data(vertex_data), + _vertex_data(std::move(vertex_data)), _current_thread(current_thread) { initialize(); @@ -43,10 +43,10 @@ GeomVertexReader(const GeomVertexData *vertex_data, * data type. */ INLINE GeomVertexReader:: -GeomVertexReader(const GeomVertexData *vertex_data, +GeomVertexReader(CPT(GeomVertexData) vertex_data, CPT_InternalName name, Thread *current_thread) : - _vertex_data(vertex_data), + _vertex_data(std::move(vertex_data)), _current_thread(current_thread) { initialize(); @@ -58,9 +58,9 @@ GeomVertexReader(const GeomVertexData *vertex_data, * only. */ INLINE GeomVertexReader:: -GeomVertexReader(const GeomVertexArrayData *array_data, +GeomVertexReader(CPT(GeomVertexArrayData) array_data, Thread *current_thread) : - _array_data(array_data), + _array_data(std::move(array_data)), _current_thread(current_thread) { initialize(); @@ -71,9 +71,9 @@ GeomVertexReader(const GeomVertexArrayData *array_data, * only. */ INLINE GeomVertexReader:: -GeomVertexReader(const GeomVertexArrayData *array_data, int column, +GeomVertexReader(CPT(GeomVertexArrayData) array_data, int column, Thread *current_thread) : - _array_data(array_data), + _array_data(std::move(array_data)), _current_thread(current_thread) { initialize(); diff --git a/panda/src/gobj/geomVertexReader.h b/panda/src/gobj/geomVertexReader.h index 0ff60aa2ce..a56d00f3ba 100644 --- a/panda/src/gobj/geomVertexReader.h +++ b/panda/src/gobj/geomVertexReader.h @@ -47,14 +47,14 @@ class EXPCL_PANDA_GOBJ GeomVertexReader : public GeomEnums { PUBLISHED: INLINE GeomVertexReader(Thread *current_thread = Thread::get_current_thread()); - INLINE GeomVertexReader(const GeomVertexData *vertex_data, + INLINE GeomVertexReader(CPT(GeomVertexData) vertex_data, Thread *current_thread = Thread::get_current_thread()); - INLINE GeomVertexReader(const GeomVertexData *vertex_data, + INLINE GeomVertexReader(CPT(GeomVertexData) vertex_data, CPT_InternalName name, Thread *current_thread = Thread::get_current_thread()); - INLINE GeomVertexReader(const GeomVertexArrayData *array_data, + INLINE GeomVertexReader(CPT(GeomVertexArrayData) array_data, Thread *current_thread = Thread::get_current_thread()); - INLINE GeomVertexReader(const GeomVertexArrayData *array_data, + INLINE GeomVertexReader(CPT(GeomVertexArrayData) array_data, int column, Thread *current_thread = Thread::get_current_thread()); diff --git a/panda/src/gobj/geomVertexWriter.I b/panda/src/gobj/geomVertexWriter.I index 00b9652e8d..09cd586b74 100644 --- a/panda/src/gobj/geomVertexWriter.I +++ b/panda/src/gobj/geomVertexWriter.I @@ -29,8 +29,8 @@ GeomVertexWriter(Thread *current_thread) : * object. */ INLINE GeomVertexWriter:: -GeomVertexWriter(GeomVertexData *vertex_data, Thread *current_thread) : - _vertex_data(vertex_data), +GeomVertexWriter(PT(GeomVertexData) vertex_data, Thread *current_thread) : + _vertex_data(std::move(vertex_data)), _current_thread(current_thread) { initialize(); @@ -42,9 +42,9 @@ GeomVertexWriter(GeomVertexData *vertex_data, Thread *current_thread) : * data type. */ INLINE GeomVertexWriter:: -GeomVertexWriter(GeomVertexData *vertex_data, CPT_InternalName name, +GeomVertexWriter(PT(GeomVertexData) vertex_data, CPT_InternalName name, Thread *current_thread) : - _vertex_data(vertex_data), + _vertex_data(std::move(vertex_data)), _current_thread(current_thread) { initialize(); @@ -56,9 +56,9 @@ GeomVertexWriter(GeomVertexData *vertex_data, CPT_InternalName name, * only. */ INLINE GeomVertexWriter:: -GeomVertexWriter(GeomVertexArrayData *array_data, +GeomVertexWriter(PT(GeomVertexArrayData) array_data, Thread *current_thread) : - _array_data(array_data), + _array_data(std::move(array_data)), _current_thread(current_thread) { initialize(); @@ -69,9 +69,9 @@ GeomVertexWriter(GeomVertexArrayData *array_data, * only. */ INLINE GeomVertexWriter:: -GeomVertexWriter(GeomVertexArrayData *array_data, int column, +GeomVertexWriter(PT(GeomVertexArrayData) array_data, int column, Thread *current_thread) : - _array_data(array_data), + _array_data(std::move(array_data)), _current_thread(current_thread) { initialize(); diff --git a/panda/src/gobj/geomVertexWriter.h b/panda/src/gobj/geomVertexWriter.h index f50b0e1596..b0fab4609e 100644 --- a/panda/src/gobj/geomVertexWriter.h +++ b/panda/src/gobj/geomVertexWriter.h @@ -55,14 +55,14 @@ class EXPCL_PANDA_GOBJ GeomVertexWriter : public GeomEnums { PUBLISHED: INLINE GeomVertexWriter(Thread *current_thread = Thread::get_current_thread()); - INLINE GeomVertexWriter(GeomVertexData *vertex_data, + INLINE GeomVertexWriter(PT(GeomVertexData) vertex_data, Thread *current_thread = Thread::get_current_thread()); - INLINE GeomVertexWriter(GeomVertexData *vertex_data, + INLINE GeomVertexWriter(PT(GeomVertexData) vertex_data, CPT_InternalName name, Thread *current_thread = Thread::get_current_thread()); - INLINE GeomVertexWriter(GeomVertexArrayData *array_data, + INLINE GeomVertexWriter(PT(GeomVertexArrayData) array_data, Thread *current_thread = Thread::get_current_thread()); - INLINE GeomVertexWriter(GeomVertexArrayData *array_data, + INLINE GeomVertexWriter(PT(GeomVertexArrayData) array_data, int column, Thread *current_thread = Thread::get_current_thread());