File tree Expand file tree Collapse file tree 3 files changed +15
-1
lines changed
Expand file tree Collapse file tree 3 files changed +15
-1
lines changed Original file line number Diff line number Diff line change 11# Change Log {#changes}
22
3+ ### ? - ?
4+
5+ ##### Fixes :wrench :
6+
7+ - Fixed an access violation that could occur if ` ACesium3DTileset::RefreshTileset ` was invoked in a callback for asynchronous actions.
8+
39### v2.22.1 - 2026-01-05
410
511##### Fixes :wrench :
Original file line number Diff line number Diff line change @@ -82,6 +82,7 @@ ACesium3DTileset::ACesium3DTileset()
8282 CreditSystem(nullptr ),
8383
8484 _pTileset(nullptr ),
85+ _destroyOnNextTick(false ),
8586
8687#ifdef CESIUM_DEBUG_TILE_STATES
8788 _pStateDebug (nullptr ),
@@ -130,6 +131,7 @@ ACesium3DTileset::ACesium3DTileset()
130131}
131132
132133ACesium3DTileset::~ACesium3DTileset () { this ->DestroyTileset (); }
134+
133135PRAGMA_ENABLE_DEPRECATION_WARNINGS
134136
135137TSoftObjectPtr<ACesiumGeoreference> ACesium3DTileset::GetGeoreference () const {
@@ -339,7 +341,7 @@ void ACesium3DTileset::InvalidateResolvedCameraManager() {
339341 this ->RefreshTileset ();
340342}
341343
342- void ACesium3DTileset::RefreshTileset () { this ->DestroyTileset () ; }
344+ void ACesium3DTileset::RefreshTileset () { this ->_destroyOnNextTick = true ; }
343345
344346void ACesium3DTileset::TroubleshootToken () {
345347 OnCesium3DTilesetIonTroubleshooting.Broadcast (this );
@@ -2020,6 +2022,11 @@ void ACesium3DTileset::Tick(float DeltaTime) {
20202022 return ;
20212023 }
20222024
2025+ if (this ->_destroyOnNextTick ) {
2026+ this ->DestroyTileset ();
2027+ this ->_destroyOnNextTick = false ;
2028+ }
2029+
20232030 if (!this ->_pTileset ) {
20242031 LoadTileset ();
20252032
Original file line number Diff line number Diff line change @@ -1380,6 +1380,7 @@ class CESIUMRUNTIME_API ACesium3DTileset : public AActor {
13801380
13811381private:
13821382 TUniquePtr<Cesium3DTilesSelection::Tileset> _pTileset;
1383+ bool _destroyOnNextTick;
13831384
13841385#ifdef CESIUM_DEBUG_TILE_STATES
13851386 TUniquePtr<Cesium3DTilesSelection::DebugTileStateDatabase> _pStateDebug;
You can’t perform that action at this time.
0 commit comments