5#if (defined(__AUTORTFM) && __AUTORTFM)
16#if __has_include(<sanitizer/asan_interface.h>)
17# include <sanitizer/asan_interface.h>
18# if defined(__SANITIZE_ADDRESS__)
19# define AUTORTFM_CHECK_ASAN_FAKE_STACKS 1
20# elif defined(__has_feature)
21# if __has_feature(address_sanitizer)
22# define AUTORTFM_CHECK_ASAN_FAKE_STACKS 1
27#ifndef AUTORTFM_CHECK_ASAN_FAKE_STACKS
28#define AUTORTFM_CHECK_ASAN_FAKE_STACKS 0
41#if AUTORTFM_CHECK_ASAN_FAKE_STACKS
47 return RealAddress &&
StackRange.Contains(RealAddress);
73 Stats.Collect<EStatsKind::HitSetSkippedBecauseOfStackLocalMemory>();
77 if (
Size <= FHitSet::MaxSize)
86 Stats.Collect<EStatsKind::HitSetHit>();
90 Stats.Collect<EStatsKind::HitSetMiss>();
95 Stats.Collect<EStatsKind::NewMemoryTrackerHit>();
99 Stats.Collect<EStatsKind::NewMemoryTrackerMiss>();
112 static_assert(SIZE <= 8);
116 Stats.Collect<EStatsKind::HitSetSkippedBecauseOfStackLocalMemory>();
122 Entry.Size =
static_cast<uint16_t>(SIZE);
124 switch (
HitSet.FindOrTryInsertNoResize(Entry))
126 case FHitSet::EInsertResult::Exists:
127 Stats.Collect<EStatsKind::HitSetHit>();
129 case FHitSet::EInsertResult::Inserted:
131 case FHitSet::EInsertResult::NotInserted:
140 Entry.Size =
static_cast<uint16_t>(SIZE);
142 if (
HitSet.FindOrTryInsert(Entry))
144 Stats.Collect<EStatsKind::HitSetHit>();
148 Stats.Collect<EStatsKind::HitSetMiss>();
157 Stats.Collect<EStatsKind::NewMemoryTrackerHit>();
161 Stats.Collect<EStatsKind::NewMemoryTrackerMiss>();
221 FTransaction* Transaction =
this;
222 while (FTransaction*
Above = Transaction->Parent)
231 Transaction->CompletionTasks->Add(std::move(
Copy));
234UE_AUTORTFM_FORCEINLINE void FTransaction::PushDeferUntilCommitHandler(
const void* Key, TTask<
void()>&& Callback)
261UE_AUTORTFM_FORCEINLINE void FTransaction::PushDeferUntilAbortHandler(
const void* Key, TTask<
void()>&& Callback)
290 Stats.Collect<EStatsKind::AverageWriteLogEntries>(
WriteLog.Num());
291 Stats.Collect<EStatsKind::MaximumWriteLogEntries>(
WriteLog.Num());
293 Stats.Collect<EStatsKind::AverageWriteLogBytes>(
WriteLog.TotalSize());
294 Stats.Collect<EStatsKind::MaximumWriteLogBytes>(
WriteLog.TotalSize());
296 Stats.Collect<EStatsKind::AverageCommitTasks>(
CommitTasks.Num());
297 Stats.Collect<EStatsKind::MaximumCommitTasks>(
CommitTasks.Num());
299 Stats.Collect<EStatsKind::AveragePreAbortTasks>(
PreAbortTasks.Num());
300 Stats.Collect<EStatsKind::MaximumPreAbortTasks>(
PreAbortTasks.Num());
302 Stats.Collect<EStatsKind::AverageAbortTasks>(
AbortTasks.Num());
303 Stats.Collect<EStatsKind::MaximumAbortTasks>(
AbortTasks.Num());
305 Stats.Collect<EStatsKind::AverageHitSetSize>(
HitSet.GetCount());
306 Stats.Collect<EStatsKind::AverageHitSetCapacity>(
HitSet.GetCapacity());
311#undef AUTORTFM_CHECK_ASAN_FAKE_STACKS
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define UE_AUTORTFM_FORCENOINLINE
Definition AutoRTFMDefines.h:173
#define UE_AUTORTFM_FORCEINLINE
Definition AutoRTFMDefines.h:171
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 Size
Definition VulkanMemory.cpp:4034