Commit Graph

207 Commits

Author SHA1 Message Date
Thomas Krijnen f68db3d3be Fixes after 698c708bf6 2022-10-04 12:38:40 +02:00
Thomas Krijnen be805a3e96 Fixes after 698c708bf6 2022-10-04 11:14:13 +02:00
Thomas Krijnen ca5249a179 More resiliance against wrong attribute counts 2022-10-03 14:05:08 +02:00
Thomas Krijnen 698c708bf6 Reduce heap allocations during parse by reusing vector for top level instances 2022-10-03 14:04:42 +02:00
Thomas Krijnen 084151ed4c Augment invalid entity message with offset in file 2022-10-03 14:03:53 +02:00
Thomas Krijnen c56c7288e3 Clarify wrong attribute count message 2022-10-03 14:03:04 +02:00
Thomas Krijnen b5f4c8218d #2358 fix header entity parsing in case of too few fields 2022-08-24 11:57:06 +02:00
Thomas Krijnen 5a636a925b #2244 file.add() Don't fail on project without unit info 2022-06-21 14:15:59 +02:00
Adrien SCHVALBERG e5b3455533 Fix memory leak for HeaderEntity instances:
the getArgumentCount() call in IfcEntityInstanceData destructor isn't virtually dispatched so it returns 0 instead of correct number of arguments => memory leak
added IfcEntityInstanceData::clearArguments() which clears all arguments and resets the attributes_ field to nullptr

Remove unnecessary copy in IfcEntityInstanceData::setArgument() when argument is created at the call site (no more leak of original argument)

Fix memory leak in IfcFile: delete entities from both byid and entity_file_map
2022-05-08 10:21:46 +02:00
Thomas Krijnen 2985bba157 #650 Unsure about 1b5c20e14f 2022-03-19 20:18:12 +00:00
Thomas Krijnen 1b5c20e14f #650 fclose() 2022-03-19 14:45:19 +01:00
Dion Moult ebe5460a9f Fix segfault thanks to aothms. 2021-12-02 09:28:04 +01:00
Dion Moult 01bc29c5b2 Purge by_ref_cached_ 2021-12-02 09:28:04 +01:00
Dion Moult 5ad6d455f9 get_total_inverses now efficiently gets the full number of references to an entity 2021-12-02 09:28:04 +01:00
Dion Moult cef1c86f6d Experimental get_inverse_cardinality proposal. See #1904. 2021-12-02 09:28:04 +01:00
Thomas Krijnen 0504556e7a #1885 consider schema type when copying attribute values 2021-11-19 09:38:28 +01:00
Thomas Krijnen cd965fd4a9 todo note re #1769 2021-10-03 09:00:59 +02:00
Dion Moult adf784236c Upon removal, empty aggregates prioritise null if possible. 2021-10-03 08:58:47 +02:00
Thomas Krijnen 4334775618 #1747 retry 2021-09-24 10:02:20 +02:00
Thomas Krijnen 768b754a0b Merge remote-tracking branch 'origin/v0.6.0' into v0.7.0
# Conflicts:
#	.github/workflows/ci.yml
#	src/ifcparse/IfcParse.cpp
2021-09-24 09:03:58 +02:00
Thomas Krijnen e1a5de793a #1747 2021-09-23 13:46:37 +02:00
Thomas Krijnen 37bddc25ca #1734 fix inv attr population on entity addition 2021-09-22 10:34:19 +02:00
Thomas Krijnen 99a27fbfef option to disable guid map and lazy loading 2021-09-13 13:17:08 +02:00
Thomas Krijnen 7440321b30 Fix static atomic init 2021-09-11 13:31:20 +02:00
Thomas Krijnen 7661899e9d #1732 0.7 IfcBaseClass::identity() 2021-09-11 12:59:48 +02:00
Thomas Krijnen 09d6f1130d #1730 correctly register inverse attributes on rooted types 2021-09-10 09:27:07 +02:00
Thomas Krijnen f898893607 whitespace 2021-09-05 09:32:39 +02:00
Thomas Krijnen cfc1ddee5e #1676 null handling in inverses 2021-09-04 14:27:46 +02:00
Dion Moult cb4001b47b Detect units from project libraries, and convert nested double aggregates 2021-08-24 10:58:26 +02:00
Thomas Krijnen 37851fac9d #1674 store inverse references as tuple of (id type index) 2021-08-22 12:22:44 +02:00
Thomas Krijnen 8f1db0019b Merge remote-tracking branch 'origin/v0.6.0' into v0.7.0 2021-08-15 20:40:55 +02:00
Thomas Krijnen 44c868caed #1531 Breadth-first search and maintain insertion order on remove_deep() 2021-08-12 13:35:45 +02:00
Thomas Krijnen 43f528ce04 Merge remote-tracking branch 'origin/v0.6.0' into v0.7.0
# Conflicts:
#	src/ifcgeom/IfcGeomTree.h
#	src/ifcgeom_schema_agnostic/IfcGeomIterator.h
#	src/ifcgeom_schema_agnostic/IteratorImplementation.cpp
#	src/ifcgeom_schema_agnostic/IteratorImplementation.h
#	src/ifcparse/Ifc4x3_rc3.cpp
#	src/ifcparse/Ifc4x3_rc3.h
#	src/serializers/SvgSerializer.cpp
2021-08-10 14:30:07 +02:00
Thomas Krijnen 0d49c89943 logical handling in python and small fixes 2021-07-29 16:32:45 +02:00
Thomas Krijnen d1fe1117be adapt code for previous commits 2021-07-29 14:54:51 +02:00
Thomas Krijnen f2f4057c98 #1579 Fix attribute assignment to enum types 2021-07-22 11:48:27 +02:00
Thomas Krijnen 99e74533c3 #1567 Clear inverse cache map after entity insertion 2021-07-17 10:20:50 +02:00
Thomas Krijnen 2fd2b49709 #1539 Option to specify id/instance_name in file::add() 2021-06-27 11:14:26 +02:00
Thomas Krijnen da10a1060e #1475 IfcFile::recalculate_id_counter() 2021-06-26 13:23:55 +02:00
ahladik 6ec23faf26 A few fixes of types and a typo (#1464) 2021-05-13 21:11:19 +02:00
Thomas Krijnen 5961253c29 #1376 remove_deep_batched() 2021-03-13 12:16:40 +01:00
Thomas Krijnen bfc695c756 #1311 better error handling during parse for schema and header 2021-02-15 11:11:14 +01:00
Thomas Krijnen 37fe54d247 erase enitty mapping upon deletion 2021-01-21 13:24:18 +01:00
Thomas Krijnen ab8aa95479 #1224 update inverse cache upon deletion 2021-01-12 21:49:17 +01:00
Thomas Krijnen 3d0c9378c1 Quickfix #1246 2021-01-09 11:49:30 +01:00
Håkon Åmdal a869e88de0 fix: use correct initializer function when compiling with USE_MMAP 2020-12-15 13:25:48 +01:00
Thomas Krijnen b08346cc64 #1054 initialize memory in case of too few attribute values 2020-10-30 09:59:01 +01:00
fluider e3831be16e Warning iterator invalidation in removeEntity 2020-09-30 10:22:12 +02:00
Thomas Krijnen 803cc66abb #873 2020-07-11 11:55:00 +02:00
Thomas Krijnen c8cca08dfa TODO note 2020-06-07 16:44:42 +02:00