UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VVMLoadFieldInlineCache.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#if WITH_VERSE_VM || defined(__INTELLISENSE__)
6
7#include "VVMAccessor.h"
9
10namespace Verse
11{
12
13struct VFunction;
14struct VNativeFunction;
15
17{
18 FLoadFieldCacheCase() = default;
20 : Kind(Other.Kind)
22 {
23 U.Offset = Other.U.Offset;
24 }
25
27 {
28 Kind = Other.Kind;
29 EmergentTypeOffset = Other.EmergentTypeOffset;
30 U.Offset = Other.U.Offset;
31 return *this;
32 }
33
34 enum class EKind : uint8
35 {
36 Offset,
37 ConstantValue,
40 Accessor,
42 };
43
45 {
47 Result.Kind = EKind::Offset;
48 Result.EmergentTypeOffset = FHeap::EmergentTypePtrToOffset(EmergentType);
49 Result.U.Offset = Offset;
50 return Result;
51 }
52
54 {
56 Result.Kind = EKind::ConstantValue;
57 Result.EmergentTypeOffset = FHeap::EmergentTypePtrToOffset(EmergentType);
58 Result.U.Value = Value;
59 return Result;
60 }
61
63 {
65 Result.Kind = EKind::ConstantFunction;
66 Result.EmergentTypeOffset = FHeap::EmergentTypePtrToOffset(EmergentType);
67 Result.U.Function = Function;
69 return Result;
70 }
71
73 {
75 Result.Kind = EKind::ConstantNativeFunction;
76 Result.EmergentTypeOffset = FHeap::EmergentTypePtrToOffset(EmergentType);
77 Result.U.NativeFunction = NativeFunction;
79 return Result;
80 }
81
82 static FLoadFieldCacheCase Accessor(VEmergentType* EmergentType, VAccessor* Accessor)
83 {
85 Result.Kind = EKind::Accessor;
86 Result.EmergentTypeOffset = FHeap::EmergentTypePtrToOffset(EmergentType);
87 Result.U.Accessor = Accessor;
88 V_DIE_UNLESS(Accessor);
89 return Result;
90 }
91
92 explicit operator bool() { return Kind != EKind::Invalid; }
93
94 EKind Kind = EKind::Invalid;
96 union
97 {
98 uint64 Offset = 0;
99 VValue Value;
102 VAccessor* Accessor;
103 } U;
104};
105
106} // namespace Verse
107#endif // WITH_VERSE_VM
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
uint32 Offset
Definition VulkanMemory.cpp:4033
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
UE_STRING_CLASS Result(Forward< LhsType >(Lhs), RhsLen)
Definition String.cpp.inl:732
Definition Archive.h:36