From 49e82e2e00057fe881ba8cff33ebc4f210b32401 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Sat, 23 May 2015 22:13:00 +0200 Subject: [PATCH] Fix compile warnings under VS 2013 /W4 warning level --- tiny_obj_loader.cc | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/tiny_obj_loader.cc b/tiny_obj_loader.cc index 8fe42c8..d9723e3 100644 --- a/tiny_obj_loader.cc +++ b/tiny_obj_loader.cc @@ -76,7 +76,7 @@ static inline int fixIndex(int idx, int n) { static inline std::string parseString(const char *&token) { std::string s; token += strspn(token, " \t"); - int e = strcspn(token, " \t\r"); + size_t e = strcspn(token, " \t\r"); s = std::string(token, &token[e]); token += e; return s; @@ -325,7 +325,7 @@ updateVertex(std::map &vertexCache, texcoords.push_back(in_texcoords[2 * i.vt_idx + 1]); } - unsigned int idx = positions.size() / 3 - 1; + unsigned int idx = static_cast(positions.size() / 3 - 1); vertexCache[i] = idx; return idx; @@ -448,7 +448,7 @@ std::string LoadMtl(std::map &material_map, // flush previous material. if (!material.name.empty()) { material_map.insert( - std::pair(material.name, materials.size())); + std::pair(material.name, static_cast(materials.size()))); materials.push_back(material); } @@ -458,7 +458,11 @@ std::string LoadMtl(std::map &material_map, // set new mtl name char namebuf[4096]; token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf); +#else sscanf(token, "%s", namebuf); +#endif material.name = namebuf; continue; } @@ -585,7 +589,7 @@ std::string LoadMtl(std::map &material_map, _space = strchr(token, '\t'); } if (_space) { - int len = _space - token; + ptrdiff_t len = _space - token; std::string key(token, len); std::string value = _space + 1; material.unknown_parameter.insert( @@ -594,7 +598,7 @@ std::string LoadMtl(std::map &material_map, } // flush last material. material_map.insert( - std::pair(material.name, materials.size())); + std::pair(material.name, static_cast(materials.size()))); materials.push_back(material); return err.str(); @@ -729,9 +733,9 @@ std::string LoadObj(std::vector &shapes, std::vector face; while (!isNewLine(token[0])) { vertex_index vi = - parseTriple(token, v.size() / 3, vn.size() / 3, vt.size() / 2); + parseTriple(token, static_cast(v.size() / 3), static_cast(vn.size() / 3), static_cast(vt.size() / 2)); face.push_back(vi); - int n = strspn(token, " \t\r"); + size_t n = strspn(token, " \t\r"); token += n; } @@ -745,7 +749,11 @@ std::string LoadObj(std::vector &shapes, char namebuf[4096]; token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf); +#else sscanf(token, "%s", namebuf); +#endif // Create face group per material. bool ret = exportFaceGroupToShape(shape, vertexCache, v, vn, vt, @@ -768,7 +776,11 @@ std::string LoadObj(std::vector &shapes, if ((0 == strncmp(token, "mtllib", 6)) && isSpace((token[6]))) { char namebuf[4096]; token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf); +#else sscanf(token, "%s", namebuf); +#endif std::string err_mtl = readMatFn(namebuf, materials, material_map); if (!err_mtl.empty()) { @@ -830,7 +842,11 @@ std::string LoadObj(std::vector &shapes, // @todo { multiple object name? } char namebuf[4096]; token += 2; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf); +#else sscanf(token, "%s", namebuf); +#endif name = std::string(namebuf); continue;