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.
This commit is contained in:
rdb 2018-07-08 21:39:43 +02:00
parent 23128e4695
commit c6ed4e1836
33 changed files with 49 additions and 51 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -138,7 +138,7 @@ make_adjacency() const {
}
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());
}
return reversed.p();
return reversed;
}
/**
@ -232,7 +232,7 @@ reverse_impl() const {
break;
}
return reversed.p();
return reversed;
}
/**

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -257,7 +257,7 @@ generate_flat_geom(const LVecBase4 &frame) {
geom->add_primitive(strip);
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);
return gnode.p();
return gnode;
}
/**
@ -663,7 +663,7 @@ generate_groove_geom(const LVecBase4 &frame, bool in) {
}
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);
gnode->add_geom(geom, state);
return gnode.p();
return gnode;
}

View File

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

View File

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

View File

@ -755,7 +755,7 @@ make_frame() {
frame_node->add_geom(geom2, state);
}
return frame_node.p();
return frame_node;
}
/**
@ -795,7 +795,7 @@ make_card() {
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);
return card_node.p();
return card_node;
}
/**

View File

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

View File

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

View File

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