Browse Source

general: don't cast to regular pointer when returning a PointerTo

This is inefficient because it induces an unnecessary ref()/unref() pair when we just need to move the pointer out of the function.  Thanks to 23128e4695d2e8581551be161f20cf7d53ca87b5, we can now move between related pointer types, making the .p() hack unnecessary.
rdb 7 years ago
parent
commit
c6ed4e1836

+ 1 - 1
panda/src/collide/collisionParabola.cxx

@@ -157,7 +157,7 @@ compute_internal_bounds() const {
                            LPoint3(0.01, 0, max_z), LPoint3(-0.01, 0, max_z));
                            LPoint3(0.01, 0, max_z), LPoint3(-0.01, 0, max_z));
   // And convert that back into real space.
   // And convert that back into real space.
   volume->xform(from_parabola);
   volume->xform(from_parabola);
-  return volume.p();
+  return volume;
 }
 }
 
 
 /**
 /**

+ 2 - 2
panda/src/collide/collisionPolygon.cxx

@@ -271,9 +271,9 @@ get_viz(const CullTraverser *trav, const CullTraverserData &data,
   draw_polygon(viz_geom_node, bounds_viz_geom_node, new_points);
   draw_polygon(viz_geom_node, bounds_viz_geom_node, new_points);
 
 
   if (bounds_only) {
   if (bounds_only) {
-    return bounds_viz_geom_node.p();
+    return bounds_viz_geom_node;
   } else {
   } else {
-    return viz_geom_node.p();
+    return viz_geom_node;
   }
   }
 }
 }
 
 

+ 1 - 1
panda/src/collide/collisionSegment.cxx

@@ -131,7 +131,7 @@ compute_internal_bounds() const {
                            LPoint3(0.01, -0.01, 0.01), LPoint3(-0.01, -0.01, 0.01));
                            LPoint3(0.01, -0.01, 0.01), LPoint3(-0.01, -0.01, 0.01));
 
 
   volume->xform(from_segment);
   volume->xform(from_segment);
-  return volume.p();
+  return volume;
 }
 }
 
 
 /**
 /**

+ 2 - 2
panda/src/collide/collisionSolid.cxx

@@ -146,9 +146,9 @@ get_viz(const CullTraverser *, const CullTraverserData &, bool bounds_only) cons
   }
   }
 
 
   if (bounds_only) {
   if (bounds_only) {
-    return _bounds_viz_geom.p();
+    return _bounds_viz_geom;
   } else {
   } else {
-    return _viz_geom.p();
+    return _viz_geom;
   }
   }
 }
 }
 
 

+ 1 - 1
panda/src/downloader/virtualFileMountHTTP.cxx

@@ -168,7 +168,7 @@ make_virtual_file(const Filename &local_filename,
     new VirtualFileHTTP(this, local_filename, implicit_pz_file, open_flags);
     new VirtualFileHTTP(this, local_filename, implicit_pz_file, open_flags);
   vfile->set_original_filename(original_filename);
   vfile->set_original_filename(original_filename);
 
 
-  return vfile.p();
+  return vfile;
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/dxgsg9/wdxGraphicsPipe9.cxx

@@ -846,7 +846,7 @@ make_device(void *scrn) {
   _device = device;
   _device = device;
   wdxdisplay9_cat.info() << "walla: device" << device << "\n";
   wdxdisplay9_cat.info() << "walla: device" << device << "\n";
 
 
-  return device.p();
+  return device;
 }
 }
 
 
 pmap<D3DFORMAT_FLAG, D3DFORMAT> g_D3DFORMATmap;
 pmap<D3DFORMAT_FLAG, D3DFORMAT> g_D3DFORMATmap;

+ 1 - 1
panda/src/express/virtualFileMount.cxx

@@ -58,7 +58,7 @@ make_virtual_file(const Filename &local_filename,
     make_directory(local);
     make_directory(local);
   }
   }
 
 
-  return file.p();
+  return file;
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/ffmpeg/ffmpegVideo.cxx

@@ -60,7 +60,7 @@ open() {
     ffmpeg_cat.error() << "Could not open " << _filename << "\n";
     ffmpeg_cat.error() << "Could not open " << _filename << "\n";
     return nullptr;
     return nullptr;
   } else {
   } else {
-    return result.p();
+    return result;
   }
   }
 }
 }
 
 

+ 2 - 2
panda/src/ffmpeg/ffmpegVideoCursor.cxx

@@ -446,7 +446,7 @@ fetch_buffer() {
         << " at frame " << _current_frame << ", returning NULL\n";
         << " at frame " << _current_frame << ", returning NULL\n";
     }
     }
   }
   }
-  return frame.p();
+  return frame;
 }
 }
 
 
 /**
 /**
@@ -455,7 +455,7 @@ fetch_buffer() {
 PT(MovieVideoCursor::Buffer) FfmpegVideoCursor::
 PT(MovieVideoCursor::Buffer) FfmpegVideoCursor::
 make_new_buffer() {
 make_new_buffer() {
   PT(FfmpegBuffer) frame = new FfmpegBuffer(size_x() * size_y() * get_num_components(), _video_timebase);
   PT(FfmpegBuffer) frame = new FfmpegBuffer(size_x() * size_y() * get_num_components(), _video_timebase);
-  return frame.p();
+  return frame;
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/framework/windowFramework.cxx

@@ -1334,7 +1334,7 @@ load_image_as_model(const Filename &filename) {
 
 
   card_node->add_geom(geom);
   card_node->add_geom(geom);
 
 
-  return card_node.p();
+  return card_node;
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/gobj/geomLines.cxx

@@ -128,7 +128,7 @@ make_adjacency() const {
   }
   }
 
 
   adj->set_vertices(std::move(new_vertices));
   adj->set_vertices(std::move(new_vertices));
-  return adj.p();
+  return adj;
 }
 }
 
 
 /**
 /**

+ 3 - 3
panda/src/gobj/geomLinestrips.cxx

@@ -164,7 +164,7 @@ make_adjacency() const {
   }
   }
   nassertr(vi == num_vertices, nullptr);
   nassertr(vi == num_vertices, nullptr);
 
 
-  return adj.p();
+  return adj;
 }
 }
 
 
 /**
 /**
@@ -220,7 +220,7 @@ decompose_impl() const {
     // Skip unused vertices between tristrips.
     // Skip unused vertices between tristrips.
     vi += num_unused;
     vi += num_unused;
     int end = ends[li];
     int end = ends[li];
-    nassertr(vi + 1 <= end, lines.p());
+    nassertr(vi + 1 <= end, lines);
     int v0 = get_vertex(vi);
     int v0 = get_vertex(vi);
     ++vi;
     ++vi;
     while (vi < end) {
     while (vi < end) {
@@ -235,7 +235,7 @@ decompose_impl() const {
   }
   }
   nassertr(vi == get_num_vertices(), nullptr);
   nassertr(vi == get_num_vertices(), nullptr);
 
 
-  return lines.p();
+  return lines;
 }
 }
 
 
 /**
 /**

+ 2 - 2
panda/src/gobj/geomLinestripsAdjacency.cxx

@@ -142,7 +142,7 @@ decompose_impl() const {
     // Skip unused vertices between tristrips.
     // Skip unused vertices between tristrips.
     vi += num_unused;
     vi += num_unused;
     int end = ends[li];
     int end = ends[li];
-    nassertr(vi + 3 <= end, lines.p());
+    nassertr(vi + 3 <= end, lines);
     int v0 = from.get_vertex(vi++);
     int v0 = from.get_vertex(vi++);
     int v1 = from.get_vertex(vi++);
     int v1 = from.get_vertex(vi++);
     int v2 = from.get_vertex(vi++);
     int v2 = from.get_vertex(vi++);
@@ -160,7 +160,7 @@ decompose_impl() const {
   }
   }
   nassertr(vi == num_vertices, nullptr);
   nassertr(vi == num_vertices, nullptr);
 
 
-  return lines.p();
+  return lines;
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/gobj/geomPrimitive.cxx

@@ -55,7 +55,7 @@ GeomPrimitive() {
  */
  */
 PT(CopyOnWriteObject) GeomPrimitive::
 PT(CopyOnWriteObject) GeomPrimitive::
 make_cow_copy() {
 make_cow_copy() {
-  return make_copy().p();
+  return make_copy();
 }
 }
 
 
 /**
 /**

+ 3 - 3
panda/src/gobj/geomTriangles.cxx

@@ -138,7 +138,7 @@ make_adjacency() const {
   }
   }
 
 
   adj->set_vertices(std::move(new_vertices));
   adj->set_vertices(std::move(new_vertices));
-  return adj.p();
+  return adj;
 }
 }
 
 
 /**
 /**
@@ -199,7 +199,7 @@ doubleside_impl() const {
     reversed = (GeomTriangles *)DCAST(GeomTriangles, reversed->rotate());
     reversed = (GeomTriangles *)DCAST(GeomTriangles, reversed->rotate());
   }
   }
 
 
-  return reversed.p();
+  return reversed;
 }
 }
 
 
 /**
 /**
@@ -232,7 +232,7 @@ reverse_impl() const {
     break;
     break;
   }
   }
 
 
-  return reversed.p();
+  return reversed;
 }
 }
 
 
 /**
 /**

+ 2 - 2
panda/src/gobj/geomTrianglesAdjacency.cxx

@@ -133,7 +133,7 @@ doubleside_impl() const {
     reversed = (GeomTrianglesAdjacency *)DCAST(GeomTrianglesAdjacency, reversed->rotate());
     reversed = (GeomTrianglesAdjacency *)DCAST(GeomTrianglesAdjacency, reversed->rotate());
   }
   }
 
 
-  return reversed.p();
+  return reversed;
 }
 }
 
 
 /**
 /**
@@ -166,7 +166,7 @@ reverse_impl() const {
     break;
     break;
   }
   }
 
 
-  return reversed.p();
+  return reversed;
 }
 }
 
 
 /**
 /**

+ 2 - 2
panda/src/gobj/geomTrifans.cxx

@@ -110,7 +110,7 @@ decompose_impl() const {
   int li = 0;
   int li = 0;
   while (li < (int)ends.size()) {
   while (li < (int)ends.size()) {
     int end = ends[li];
     int end = ends[li];
-    nassertr(vi + 2 <= end, triangles.p());
+    nassertr(vi + 2 <= end, triangles);
     int v0 = get_vertex(vi);
     int v0 = get_vertex(vi);
     ++vi;
     ++vi;
     int v1 = get_vertex(vi);
     int v1 = get_vertex(vi);
@@ -129,7 +129,7 @@ decompose_impl() const {
 
 
   nassertr(vi == num_vertices, nullptr);
   nassertr(vi == num_vertices, nullptr);
 
 
-  return triangles.p();
+  return triangles;
 }
 }
 
 
 /**
 /**

+ 2 - 2
panda/src/gobj/geomTristrips.cxx

@@ -219,7 +219,7 @@ make_adjacency() const {
   }
   }
   nassertr(vi == num_vertices, nullptr);
   nassertr(vi == num_vertices, nullptr);
 
 
-  return adj.p();
+  return adj;
 }
 }
 
 
 /**
 /**
@@ -358,7 +358,7 @@ decompose_impl() const {
     nassertr(vi == num_vertices, nullptr);
     nassertr(vi == num_vertices, nullptr);
   }
   }
 
 
-  return triangles.p();
+  return triangles;
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/gobj/internalName_ext.cxx

@@ -76,7 +76,7 @@ make(PyStringObject *str) {
     iname->ref();
     iname->ref();
 
 
     InternalName::_py_intern_table.insert(std::make_pair((PyObject *)str, iname.p()));
     InternalName::_py_intern_table.insert(std::make_pair((PyObject *)str, iname.p()));
-    return iname.p();
+    return iname;
   }
   }
 
 
 }
 }

+ 1 - 1
panda/src/gobj/lens.cxx

@@ -630,7 +630,7 @@ make_geometry() {
   PT(Geom) geom = new Geom(cdata->_geom_data);
   PT(Geom) geom = new Geom(cdata->_geom_data);
   geom->add_primitive(line);
   geom->add_primitive(line);
 
 
-  return geom.p();
+  return geom;
 }
 }
 
 
 /**
 /**

+ 1 - 2
panda/src/gobj/shader.cxx

@@ -3417,8 +3417,7 @@ parse_eof() {
  */
  */
 PT(AsyncFuture) Shader::
 PT(AsyncFuture) Shader::
 prepare(PreparedGraphicsObjects *prepared_objects) {
 prepare(PreparedGraphicsObjects *prepared_objects) {
-  PT(PreparedGraphicsObjects::EnqueuedObject) obj = prepared_objects->enqueue_shader_future(this);
-  return obj.p();
+  return prepared_objects->enqueue_shader_future(this);
 }
 }
 
 
 /**
 /**

+ 1 - 2
panda/src/gobj/texture.cxx

@@ -1427,8 +1427,7 @@ peek() {
  */
  */
 PT(AsyncFuture) Texture::
 PT(AsyncFuture) Texture::
 prepare(PreparedGraphicsObjects *prepared_objects) {
 prepare(PreparedGraphicsObjects *prepared_objects) {
-  PT(PreparedGraphicsObjects::EnqueuedObject) obj = prepared_objects->enqueue_texture_future(this);
-  return obj.p();
+  return prepared_objects->enqueue_texture_future(this);
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/grutil/cardMaker.cxx

@@ -133,7 +133,7 @@ generate() {
 
 
   gnode->add_geom(geom, state);
   gnode->add_geom(geom, state);
 
 
-  return gnode.p();
+  return gnode;
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/grutil/fisheyeMaker.cxx

@@ -322,7 +322,7 @@ generate() {
     }
     }
   }
   }
 
 
-  return geom_node.p();
+  return geom_node;
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/grutil/movieTexture.cxx

@@ -409,7 +409,7 @@ make_copy_impl() const {
   CDWriter cdata_copy(copy->_cycler, true);
   CDWriter cdata_copy(copy->_cycler, true);
   copy->do_assign(cdata_copy, cdata_copy_tex, this, cdata, cdata_tex);
   copy->do_assign(cdata_copy, cdata_copy_tex, this, cdata, cdata_tex);
 
 
-  return copy.p();
+  return copy;
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/pgraph/stateMunger.cxx

@@ -40,7 +40,7 @@ munge_state(const RenderState *state) {
   }
   }
 
 
   CPT(RenderState) result = munge_state_impl(state);
   CPT(RenderState) result = munge_state_impl(state);
-  munged_states.store(id, result.p());
+  munged_states.store(id, result);
 
 
   return result;
   return result;
 }
 }

+ 4 - 4
panda/src/pgui/pgFrameStyle.cxx

@@ -257,7 +257,7 @@ generate_flat_geom(const LVecBase4 &frame) {
   geom->add_primitive(strip);
   geom->add_primitive(strip);
   gnode->add_geom(geom, state);
   gnode->add_geom(geom, state);
 
 
-  return gnode.p();
+  return gnode;
 }
 }
 
 
 /**
 /**
@@ -431,7 +431,7 @@ generate_bevel_geom(const LVecBase4 &frame, bool in) {
   }
   }
   gnode->add_geom(geom, state);
   gnode->add_geom(geom, state);
 
 
-  return gnode.p();
+  return gnode;
 }
 }
 
 
 /**
 /**
@@ -663,7 +663,7 @@ generate_groove_geom(const LVecBase4 &frame, bool in) {
   }
   }
   gnode->add_geom(geom, state);
   gnode->add_geom(geom, state);
 
 
-  return gnode.p();
+  return gnode;
 }
 }
 
 
 /**
 /**
@@ -803,5 +803,5 @@ generate_texture_border_geom(const LVecBase4 &frame) {
   geom->add_primitive(strip);
   geom->add_primitive(strip);
   gnode->add_geom(geom, state);
   gnode->add_geom(geom, state);
 
 
-  return gnode.p();
+  return gnode;
 }
 }

+ 1 - 1
panda/src/speedtree/loaderFileTypeSrt.cxx

@@ -68,5 +68,5 @@ load_file(const Filename &path, const LoaderOptions &,
   PT(SpeedTreeNode) st = new SpeedTreeNode(path.get_basename());
   PT(SpeedTreeNode) st = new SpeedTreeNode(path.get_basename());
   st->add_instance(tree, STTransform());
   st->add_instance(tree, STTransform());
 
 
-  return st.p();
+  return st;
 }
 }

+ 1 - 1
panda/src/speedtree/loaderFileTypeStf.cxx

@@ -62,5 +62,5 @@ load_file(const Filename &path, const LoaderOptions &options,
   PT(SpeedTreeNode) st = new SpeedTreeNode(path.get_basename());
   PT(SpeedTreeNode) st = new SpeedTreeNode(path.get_basename());
   st->add_from_stf(path, options);
   st->add_from_stf(path, options);
 
 
-  return st.p();
+  return st;
 }
 }

+ 3 - 3
panda/src/text/textNode.cxx

@@ -755,7 +755,7 @@ make_frame() {
     frame_node->add_geom(geom2, state);
     frame_node->add_geom(geom2, state);
   }
   }
 
 
-  return frame_node.p();
+  return frame_node;
 }
 }
 
 
 /**
 /**
@@ -795,7 +795,7 @@ make_card() {
 
 
   card_node->add_geom(geom);
   card_node->add_geom(geom);
 
 
-  return card_node.p();
+  return card_node;
 }
 }
 
 
 
 
@@ -896,7 +896,7 @@ make_card_with_border() {
 
 
   card_node->add_geom(geom);
   card_node->add_geom(geom);
 
 
-  return card_node.p();
+  return card_node;
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/vision/openCVTexture.cxx

@@ -98,7 +98,7 @@ make_copy_impl() const {
   Texture::CDWriter cdata_copy_tex(copy->Texture::_cycler, true);
   Texture::CDWriter cdata_copy_tex(copy->Texture::_cycler, true);
   copy->do_assign(cdata_copy_tex, this, cdata_tex);
   copy->do_assign(cdata_copy_tex, this, cdata_tex);
 
 
-  return copy.p();
+  return copy;
 }
 }
 
 
 /**
 /**

+ 1 - 1
pandatool/src/ptloader/loaderFileTypePandatool.cxx

@@ -196,7 +196,7 @@ load_file(const Filename &path, const LoaderOptions &options,
   }
   }
   delete loader;
   delete loader;
 
 
-  return result.p();
+  return result;
 }
 }
 
 
 /**
 /**

+ 1 - 1
pandatool/src/xfile/xFileDataDef.cxx

@@ -376,7 +376,7 @@ unpack_template_value(const XFileParseDataList &parse_data_list,
     return nullptr;
     return nullptr;
   }
   }
 
 
-  return data_value.p();
+  return data_value;
 }
 }
 
 
 /**
 /**