Fix mem leak in IfcSpfStream (not closed upon destruction), make Entity's dtor virtual.

This commit is contained in:
Stinkfist0
2016-02-07 22:45:42 +02:00
parent 993e322a8e
commit 2f8fa3282b
3 changed files with 7 additions and 1 deletions
+5
View File
@@ -127,6 +127,11 @@ IfcSpfStream::IfcSpfStream(void* data, int l) {
len = l;
}
IfcSpfStream::~IfcSpfStream()
{
Close();
}
void IfcSpfStream::Close() {
#ifdef BUF_SIZE
if ( paging ) fclose(stream);
+1 -1
View File
@@ -248,7 +248,7 @@ namespace IfcParse {
unsigned int offset;
Entity(unsigned int i, IfcFile* t);
Entity(unsigned int i, IfcFile* t, unsigned int o);
~Entity();
virtual ~Entity();
IfcEntityList::ptr getInverse(IfcSchema::Type::Enum type, int attribute_index);
void Load(std::vector<unsigned int>& ids, bool seek=false) const;
Argument* getArgument (unsigned int i);
+1
View File
@@ -64,6 +64,7 @@ namespace IfcParse {
IfcSpfStream(const std::string& fn);
IfcSpfStream(std::istream& f, int len);
IfcSpfStream(void* data, int len);
~IfcSpfStream();
/// Returns the character at the cursor
char Peek();
/// Returns the character at specified offset