IfcParse dynamic linking, IFCPARSE_NO_REGEX, fixes for three memory leaks (#76)

* CMake: moved setting link directories before all the projects.

* Added IfcParse_Export header for declaring export macro.

* Added IFCPARSE_STATIC_DEFINE macro to all projects.

* Added include for export macro to swig file.

* Added IfcParse_EXPORT macro for all classes in headers generated by express parser.

* Allow removing boost.regex dependency by defining macro IFCPARSE_NO_REGEX.

* Fixed bug in deletion of ICU converter.

* Added export macro to most of the classes across headers

* Fixed memory leak: delete nested IfcAbstractEntity in EntityArgument.

* Fixed memory leak in destructor of IfcWritableEntity (args values).
This commit is contained in:
stgatilov
2016-05-29 18:12:57 +06:00
committed by Thomas Krijnen
parent a298903fdd
commit b5c4eb3b6f
22 changed files with 1784 additions and 1718 deletions
+7 -5
View File
@@ -20,12 +20,14 @@
#ifndef IFCSPFHEADER_H
#define IFCSPFHEADER_H
#include "../ifcparse/IfcParse_Export.h"
#include "../ifcparse/IfcSpfStream.h"
#include "../ifcparse/IfcWrite.h"
namespace IfcParse {
class HeaderEntity : public IfcAbstractEntity {
class IfcParse_EXPORT HeaderEntity : public IfcAbstractEntity {
private:
ArgumentList* _list;
const char * const _datatype;
@@ -103,7 +105,7 @@ public:
}
};
class FileDescription : public HeaderEntity {
class IfcParse_EXPORT FileDescription : public HeaderEntity {
public:
explicit FileDescription(IfcSpfLexer* = 0);
@@ -114,7 +116,7 @@ public:
void implementation_level(const std::string& value) { setArgument(1, value); }
};
class FileName : public HeaderEntity {
class IfcParse_EXPORT FileName : public HeaderEntity {
public:
explicit FileName(IfcSpfLexer* = 0);
@@ -135,7 +137,7 @@ public:
void authorization(const std::string& value) { setArgument(6, value); }
};
class FileSchema : public HeaderEntity {
class IfcParse_EXPORT FileSchema : public HeaderEntity {
public:
explicit FileSchema(IfcSpfLexer* = 0);
@@ -144,7 +146,7 @@ public:
void schema_identifiers(const std::vector<std::string>& value) { setArgument(0, value); }
};
class IfcSpfHeader {
class IfcParse_EXPORT IfcSpfHeader {
private:
IfcSpfLexer* _lexer;
FileDescription* _file_description;