diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index 764d5143fb..a32f64baad 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -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); diff --git a/src/ifcparse/IfcParse.h b/src/ifcparse/IfcParse.h index 2733f26d83..16907cf786 100644 --- a/src/ifcparse/IfcParse.h +++ b/src/ifcparse/IfcParse.h @@ -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& ids, bool seek=false) const; Argument* getArgument (unsigned int i); diff --git a/src/ifcparse/IfcSpfStream.h b/src/ifcparse/IfcSpfStream.h index 9f5799f2a2..a3d947606c 100644 --- a/src/ifcparse/IfcSpfStream.h +++ b/src/ifcparse/IfcSpfStream.h @@ -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