Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: add missing std moves and perfect forwards #4785

Merged
merged 6 commits into from
Nov 8, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 3 additions & 1 deletion code/AssetLib/3MF/XmlSerializer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "3MFTypes.h"
#include <assimp/scene.h>

#include <utility>

namespace Assimp {
namespace D3MF {

Expand Down Expand Up @@ -582,7 +584,7 @@ aiMaterial *XmlSerializer::readMaterialDef(XmlNode &node, unsigned int basemater
stdMaterialName += strId;
stdMaterialName += "_";
if (hasName) {
stdMaterialName += std::string(name);
stdMaterialName += name;
} else {
stdMaterialName += "basemat_";
stdMaterialName += ai_to_string(mMaterials.size());
Expand Down
3 changes: 2 additions & 1 deletion code/AssetLib/Blender/BlenderLoader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assimp/StringComparison.h>

#include <cctype>
#include <utility>

// zlib is needed for compressed blend files
#ifndef ASSIMP_BUILD_NO_COMPRESSED_BLEND
Expand Down Expand Up @@ -201,7 +202,7 @@ void BlenderImporter::InternReadFile(const std::string &pFile,
" (64bit: ", file.i64bit ? "true" : "false",
", little endian: ", file.little ? "true" : "false", ")");

ParseBlendFile(file, stream);
ParseBlendFile(file, std::move(stream));

Scene scene;
ExtractScene(scene, file);
Expand Down
3 changes: 2 additions & 1 deletion code/AssetLib/Collada/ColladaParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assimp/DefaultLogger.hpp>
#include <assimp/IOSystem.hpp>
#include <memory>
#include <utility>

using namespace Assimp;
using namespace Assimp::Collada;
Expand Down Expand Up @@ -2305,7 +2306,7 @@ void ColladaParser::ReadScene(XmlNode &node) {
// find the referred scene, skip the leading #
NodeLibrary::const_iterator sit = mNodeLibrary.find(url.c_str() + 1);
if (sit == mNodeLibrary.end()) {
throw DeadlyImportError("Unable to resolve visual_scene reference \"", std::string(url), "\" in <instance_visual_scene> element.");
throw DeadlyImportError("Unable to resolve visual_scene reference \"", std::string(std::move(url)), "\" in <instance_visual_scene> element.");
}
mRootNode = sit->second;
}
Expand Down
3 changes: 2 additions & 1 deletion code/AssetLib/DXF/DXFLoader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assimp/importerdesc.h>

#include <numeric>
#include <utility>

using namespace Assimp;

Expand Down Expand Up @@ -150,7 +151,7 @@ void DXFImporter::InternReadFile( const std::string& filename, aiScene* pScene,
// DXF files can grow very large, so read them via the StreamReader,
// which will choose a suitable strategy.
file->Seek(0,aiOrigin_SET);
StreamReaderLE stream( file );
StreamReaderLE stream( std::move(file) );

DXF::LineReader reader (stream);
DXF::FileData output;
Expand Down
2 changes: 1 addition & 1 deletion code/AssetLib/FBX/FBXDocument.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ void Document::ReadGlobalSettings() {
DOMError("GlobalSettings dictionary contains no property table");
}

globals.reset(new FileGlobalSettings(*this, props));
globals.reset(new FileGlobalSettings(*this, std::move(props)));
}

// ------------------------------------------------------------------------------------------------
Expand Down
27 changes: 14 additions & 13 deletions code/AssetLib/FBX/FBXExportNode.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assimp/StreamWriter.h> // StreamWriterLE

#include <string>
#include <utility>
#include <vector>

namespace Assimp {
Expand Down Expand Up @@ -84,26 +85,26 @@ class FBX::Node {

// convenience template to construct with properties directly
template <typename... More>
Node(const std::string& n, const More... more)
Node(const std::string& n, More&&... more)
: name(n)
, properties()
, children()
, force_has_children(false) {
AddProperties(more...);
AddProperties(std::forward<More>(more)...);
}

public: // functions to add properties or children
// add a single property to the node
template <typename T>
void AddProperty(T value) {
properties.emplace_back(value);
void AddProperty(T&& value) {
properties.emplace_back(std::forward<T>(value));
}

// convenience function to add multiple properties at once
template <typename T, typename... More>
void AddProperties(T value, More... more) {
properties.emplace_back(value);
AddProperties(more...);
void AddProperties(T&& value, More&&... more) {
properties.emplace_back(std::forward<T>(value));
AddProperties(std::forward<More>(more)...);
}
void AddProperties() {}

Expand All @@ -114,11 +115,11 @@ class FBX::Node {
template <typename... More>
void AddChild(
const std::string& name,
More... more
More&&... more
) {
FBX::Node c(name);
c.AddProperties(more...);
children.push_back(c);
c.AddProperties(std::forward<More>(more)...);
children.push_back(std::move(c));
}

public: // support specifically for dealing with Properties70 nodes
Expand Down Expand Up @@ -146,10 +147,10 @@ class FBX::Node {
const std::string& type,
const std::string& type2,
const std::string& flags,
More... more
More&&... more
) {
Node n("P");
n.AddProperties(name, type, type2, flags, more...);
n.AddProperties(name, type, type2, flags, std::forward<More>(more)...);
AddChild(n);
}

Expand Down Expand Up @@ -214,7 +215,7 @@ class FBX::Node {
bool binary, int indent
) {
FBX::FBXExportProperty p(value);
FBX::Node node(name, p);
FBX::Node node(name, std::move(p));
node.Dump(s, binary, indent);
}

Expand Down
17 changes: 9 additions & 8 deletions code/AssetLib/FBX/FBXExporter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,16 +58,17 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assimp/mesh.h>

// Header files, standard library.
#include <memory> // shared_ptr
#include <string>
#include <sstream> // stringstream
#include <array>
#include <ctime> // localtime, tm_*
#include <map>
#include <memory> // shared_ptr
#include <numeric>
#include <set>
#include <vector>
#include <array>
#include <sstream> // stringstream
#include <string>
#include <unordered_set>
#include <numeric>
#include <utility>
#include <vector>

// RESOURCES:
// https://code.blender.org/2013/08/fbx-binary-file-format-specification/
Expand Down Expand Up @@ -390,7 +391,7 @@ void FBXExporter::WriteHeaderExtension ()
raw[i] = uint8_t(GENERIC_FILEID[i]);
}
FBX::Node::WritePropertyNode(
"FileId", raw, outstream, binary, indent
"FileId", std::move(raw), outstream, binary, indent
);
FBX::Node::WritePropertyNode(
"CreationTime", GENERIC_CTIME, outstream, binary, indent
Expand Down Expand Up @@ -2497,7 +2498,7 @@ void FBXExporter::WriteModelNode(
const aiVector3D one = {1, 1, 1};
FBX::Node m("Model");
std::string name = node->mName.C_Str() + FBX::SEPARATOR + "Model";
m.AddProperties(node_uid, name, type);
m.AddProperties(node_uid, std::move(name), type);
m.AddChild("Version", int32_t(232));
FBX::Node p("Properties70");
p.AddP70bool("RotationActive", 1);
Expand Down
3 changes: 2 additions & 1 deletion code/AssetLib/IFC/IFCBoolean.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#include <iterator>
#include <tuple>
#include <utility>

namespace Assimp {
namespace IFC {
Expand Down Expand Up @@ -674,7 +675,7 @@ void ProcessBooleanExtrudedAreaSolidDifference(const Schema_2x3::IfcExtrudedArea
std::shared_ptr<TempMesh> meshtmp = std::shared_ptr<TempMesh>(new TempMesh());
ProcessExtrudedAreaSolid(*as, *meshtmp, conv, false);

std::vector<TempOpening> openings(1, TempOpening(as, IfcVector3(0, 0, 0), meshtmp, std::shared_ptr<TempMesh>()));
std::vector<TempOpening> openings(1, TempOpening(as, IfcVector3(0, 0, 0), std::move(meshtmp), std::shared_ptr<TempMesh>()));

result = first_operand;

Expand Down
7 changes: 4 additions & 3 deletions code/AssetLib/IFC/IFCGeometry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# include "../contrib/clipper/clipper.hpp"
#endif

#include <memory>
#include <iterator>
#include <memory>
#include <utility>

namespace Assimp {
namespace IFC {
Expand Down Expand Up @@ -713,7 +714,7 @@ void ProcessExtrudedArea(const Schema_2x3::IfcExtrudedAreaSolid& solid, const Te
std::shared_ptr<TempMesh> profile2D = std::shared_ptr<TempMesh>(new TempMesh());
profile2D->mVerts.insert(profile2D->mVerts.end(), in.begin(), in.end());
profile2D->mVertcnt.push_back(static_cast<unsigned int>(in.size()));
conv.collect_openings->push_back(TempOpening(&solid, dir, profile, profile2D));
conv.collect_openings->push_back(TempOpening(&solid, dir, std::move(profile), std::move(profile2D)));

ai_assert(result.IsEmpty());
}
Expand Down Expand Up @@ -839,7 +840,7 @@ bool ProcessGeometricItem(const Schema_2x3::IfcRepresentationItem& geo, unsigned
if (!meshtmp->IsEmpty()) {
conv.collect_openings->push_back(TempOpening(geo.ToPtr<Schema_2x3::IfcSolidModel>(),
IfcVector3(0,0,0),
meshtmp,
std::move(meshtmp),
std::shared_ptr<TempMesh>()));
}
return true;
Expand Down
3 changes: 2 additions & 1 deletion code/AssetLib/IFC/IFCLoader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assimp/importerdesc.h>
#include <assimp/scene.h>
#include <assimp/Importer.hpp>
#include <utility>

namespace Assimp {
template <>
Expand Down Expand Up @@ -227,7 +228,7 @@ void IFCImporter::InternReadFile(const std::string &pFile, aiScene *pScene, IOSy
#endif
}

std::unique_ptr<STEP::DB> db(STEP::ReadFileHeader(stream));
std::unique_ptr<STEP::DB> db(STEP::ReadFileHeader(std::move(stream)));
const STEP::HeaderInfo &head = static_cast<const STEP::DB &>(*db).GetHeader();

if (!head.fileSchema.size() || head.fileSchema.substr(0, 3) != "IFC") {
Expand Down
7 changes: 4 additions & 3 deletions code/AssetLib/IFC/IFCOpenings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# include "../contrib/clipper/clipper.hpp"
#endif

#include <iterator>
#include <forward_list>
#include <deque>
#include <forward_list>
#include <iterator>
#include <utility>

namespace Assimp {
namespace IFC {
Expand Down Expand Up @@ -1699,7 +1700,7 @@ std::vector<std::vector<IfcVector2>> GetContoursInPlane(const std::shared_ptr<Te
bool ok;
auto contour = GetContourInPlane2D(mesh,planeSpace,planeNor,planeOffset,extrusionDir,wall_extrusion,first,ok);
if(ok)
return std::vector<std::vector<IfcVector2>> {contour};
return std::vector<std::vector<IfcVector2>> {std::move(contour)};
else
return std::vector<std::vector<IfcVector2>> {};
}
Expand Down
5 changes: 3 additions & 2 deletions code/AssetLib/Ply/PlyParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assimp/ByteSwapper.h>
#include <assimp/fast_atof.h>
#include <assimp/DefaultLogger.hpp>
#include <utility>

using namespace Assimp;

Expand Down Expand Up @@ -381,10 +382,10 @@ bool PLY::DOM::SkipSpacesAndLineEnd(std::vector<char> &buffer) {
return ret;
}

bool PLY::DOM::SkipComments(std::vector<char> &buffer) {
bool PLY::DOM::SkipComments(std::vector<char> buffer) {
ai_assert(!buffer.empty());

std::vector<char> nbuffer = buffer;
std::vector<char> nbuffer = std::move(buffer);
// skip spaces
if (!SkipSpaces(nbuffer)) {
return false;
Expand Down
2 changes: 1 addition & 1 deletion code/AssetLib/Ply/PlyParser.h
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ class DOM
static bool ParseInstanceBinary(IOStreamBuffer<char> &streamBuffer, DOM* p_pcOut, PLYImporter* loader, bool p_bBE);

//! Skip all comment lines after this
static bool SkipComments(std::vector<char> &buffer);
static bool SkipComments(std::vector<char> buffer);

static bool SkipSpaces(std::vector<char> &buffer);

Expand Down
4 changes: 3 additions & 1 deletion code/AssetLib/XGL/XGLLoader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assimp/importerdesc.h>
#include <assimp/mesh.h>
#include <assimp/scene.h>

#include <utility>
//#include <cctype>
//#include <memory>

Expand Down Expand Up @@ -224,7 +226,7 @@ aiLight *XGLImporter::ReadDirectionalLight(XmlNode &node) {
std::unique_ptr<aiLight> l(new aiLight());
l->mType = aiLightSource_DIRECTIONAL;
find_node_by_name_predicate predicate("directionallight");
XmlNode child = node.find_child(predicate);
XmlNode child = node.find_child(std::move(predicate));
if (child.empty()) {
return nullptr;
}
Expand Down