diff --git a/Code/DataStructs/FPBReader.cpp b/Code/DataStructs/FPBReader.cpp index 6834928fa..41a164dd6 100644 --- a/Code/DataStructs/FPBReader.cpp +++ b/Code/DataStructs/FPBReader.cpp @@ -385,13 +385,12 @@ std::string extractId(const FPBReader_impl *dp_impl, unsigned int which) { reinterpret_cast(dp_impl->dp_idChunk.get() + offset), len); } else { - char *buff = new char[len + 1]; + boost::shared_array buff(new char[len + 1]); buff[len] = 0; dp_impl->istrm->seekg(dp_impl->idChunkOffset + static_cast(offset)); - dp_impl->istrm->read(reinterpret_cast(buff), len); - res = std::string(reinterpret_cast(buff)); - delete[] buff; + dp_impl->istrm->read(reinterpret_cast(buff.get()), len); + res = std::string(reinterpret_cast(buff.get())); } return res; };