Merge commit 'acca16c82fb9fa37c40475a423e979e9c7aa0d5a' into contrib
commit
d080eb493e
|
@ -79,6 +79,8 @@ static const aiImporterDesc desc = {
|
|||
Discreet3DS::Chunk chunk; \
|
||||
ReadChunk(&chunk); \
|
||||
int chunkSize = chunk.Size-sizeof(Discreet3DS::Chunk); \
|
||||
if(chunkSize <= 0) \
|
||||
continue; \
|
||||
const int oldReadLimit = stream->GetReadLimit(); \
|
||||
stream->SetReadLimit(stream->GetCurrentPos() + chunkSize); \
|
||||
|
||||
|
|
|
@ -110,7 +110,14 @@ size_t DefaultIOStream::FileSize() const
|
|||
|
||||
if (SIZE_MAX == cachedSize) {
|
||||
|
||||
// TODO: Is that really faster if we're already owning a handle to the file?
|
||||
// Although fseek/ftell would allow us to reuse the exising file handle here,
|
||||
// it is generally unsafe because:
|
||||
// - For binary streams, it is not technically well-defined
|
||||
// - For text files the results are meaningless
|
||||
// That's why we use the safer variant fstat here.
|
||||
//
|
||||
// See here for details:
|
||||
// https://www.securecoding.cert.org/confluence/display/seccode/FIO19-C.+Do+not+use+fseek()+and+ftell()+to+compute+the+size+of+a+regular+file
|
||||
#if defined _WIN32 && !defined __GNUC__
|
||||
struct __stat64 fileStat;
|
||||
int err = _stat64( mFilename.c_str(), &fileStat );
|
||||
|
|
|
@ -151,7 +151,7 @@ void SortByPTypeProcess::Execute( aiScene* pScene)
|
|||
std::vector<unsigned int>::iterator meshIdx = replaceMeshIndex.begin();
|
||||
for (unsigned int i = 0; i < pScene->mNumMeshes;++i)
|
||||
{
|
||||
aiMesh* mesh = pScene->mMeshes[i];
|
||||
aiMesh* const mesh = pScene->mMeshes[i];
|
||||
ai_assert(0 != mesh->mPrimitiveTypes);
|
||||
|
||||
// if there's just one primitive type in the mesh there's nothing to do for us
|
||||
|
@ -367,6 +367,9 @@ void SortByPTypeProcess::Execute( aiScene* pScene)
|
|||
|
||||
// delete the input mesh
|
||||
delete mesh;
|
||||
|
||||
// avoid invalid pointer
|
||||
pScene->mMeshes[i] = NULL;
|
||||
}
|
||||
|
||||
if (outMeshes.empty())
|
||||
|
|
Loading…
Reference in New Issue