Commit Graph

10 Commits

Author SHA1 Message Date
Wojtek Figat
5fdbed2b56 Minor codestyle adjustments 2025-12-14 22:41:00 +01:00
Michael Herzog
00f9a28729 Fixed HashSet compaction count after mid-compact growth
Ensure HashSetBase::Compact() preserves _elementsCount even when EnsureCapacity() triggers during compaction. The growth path resets the counter; we now cache the original count and restore it after moving all buckets so Count() stays correct in heavy-collision scenarios.
2025-11-28 15:51:57 +01:00
Michael Herzog
d9a18b1d31 Fixed HashSet compact rehash under heavy collisions
- Compact now iterates over the old bucket array using the saved oldSize, and frees with that size, avoiding out-of-bounds when _size changes.
- If reinsertion finds no free slot during compaction (pathological collisions), the table grows once and retries, preventing AVs.
- This fix addresses problems with weak hash keys (like #3824).
2025-11-25 21:23:49 +01:00
Wojtek Figat
c57e128ff1 Merge remote-tracking branch 'origin/master' into 1.11
# Conflicts:
#	Source/Engine/Level/Scene/SceneRendering.cpp
#	Source/Engine/Physics/Colliders/Collider.cpp
#	Source/Engine/Physics/Colliders/Collider.h
2025-09-02 22:23:45 +02:00
Wojtek Figat
ad1163bccc Fix HashSet::Add returning incorrect value 2025-09-02 21:41:54 +02:00
Wojtek Figat
a8eb4fc140 Add allocator tag support for Dictionary and HashSet 2025-07-07 23:22:32 +02:00
Wojtek Figat
9c3fd052cd Remove copyright year from source files and update to 2025 2025-04-07 19:22:21 +02:00
Wojtek Figat
2ab9adab24 Merge remote-tracking branch 'origin/master' into 1.10 2025-02-24 23:27:56 +01:00
Wojtek Figat
dffc6ea24d Move hash set related configs into proper header file and rename those 2025-01-24 00:05:07 +01:00
Wojtek Figat
38f74c8cf7 Refactor Dictionary and HashSet to use shared base class
Add const iterators
2025-01-23 23:59:31 +01:00