Removed VVisitorWrapper since archiving has different API needs than marking.

Improved const-ness of the VMarkStackVisitor.

#rnx
#rb neil.henning

[CL 29597622 by tim smith in ue5-main branch]
This commit is contained in:
tim smith
2023-11-09 11:11:31 -05:00
parent 1552d83bc8
commit ab874461bf
32 changed files with 197 additions and 168 deletions

View File

@@ -54,7 +54,6 @@
#include "VerseVM/VVMHeap.h"
#include "VerseVM/VVMMarkStack.h"
#include "VerseVM/VVMValue.h"
#include "VerseVM/VVMVisitorWrapper.h"
#include "VerseVM/VVMWriteBarrier.h"
#endif
@@ -3198,7 +3197,7 @@ struct TVerseDebugReachabilityVisitor : public Verse::FAbstractVisitor
{
}
virtual void VisitNonNull(const Verse::VCell* InCell) override
virtual void VisitNonNull(Verse::VCell* InCell) override
{
Context.Stats.AddVerseCells(1);
if (MarkStack.TryMarkNonNull(InCell) && bTrackHistory)
@@ -3212,21 +3211,20 @@ struct TVerseDebugReachabilityVisitor : public Verse::FAbstractVisitor
}
}
virtual void VisitNonNull(const UObject* InObject) override
virtual void VisitNonNull(UObject* InObject) override
{
UObject* Object = const_cast<UObject*>(InObject);
UE::GC::GStats.IncreaseObjectRefStats(Object);
UE::GC::GStats.IncreaseObjectRefStats(InObject);
Verse::FAbstractVisitor::FReferrerContext* VisitorContext = GetContext();
const Verse::VCell* Referencer = VisitorContext != nullptr && VisitorContext->GetReferrer().IsCell() ? VisitorContext->GetReferrer().AsCell() : nullptr;
if (ValidateReference(Object, PermanentPool, FReferenceToken(Referencer), FMemberId(0)))
if (ValidateReference(InObject, PermanentPool, FReferenceToken(Referencer), FMemberId(0)))
{
FReferenceMetadata Metadata(GUObjectArray.ObjectToIndex(Object));
bool bReachedFirst = TReachabilityProcessor<Options>::HandleValidReference(Context, FImmutableReference{ Object }, Metadata);
FReferenceMetadata Metadata(GUObjectArray.ObjectToIndex(InObject));
bool bReachedFirst = TReachabilityProcessor<Options>::HandleValidReference(Context, FImmutableReference{ InObject }, Metadata);
if (bReachedFirst && bTrackHistory)
{
if (Referencer != nullptr)
{
GetContextHistoryReferences(Context, FReferenceToken(Referencer), 0).Add(FGCDirectReference(Object));
GetContextHistoryReferences(Context, FReferenceToken(Referencer), 0).Add(FGCDirectReference(InObject));
}
}
}

View File

@@ -0,0 +1,56 @@
// Copyright Epic Games, Inc. All Rights Reserved.
#if WITH_VERSE_VM || defined(__INTELLISENSE__)
#include "VerseVM/VVMAbstractVisitor.h"
#include "VerseVM/VVMRestValue.h"
namespace Verse
{
void FAbstractVisitor::VisitNonNull(VCell* InCell)
{
}
void FAbstractVisitor::VisitNonNull(UObject* InObject)
{
}
void FAbstractVisitor::VisitEmergentType(const VCell* InEmergentType)
{
VisitNonNull(const_cast<VCell*>(InEmergentType));
}
void FAbstractVisitor::Visit(VCell* InCell)
{
if (InCell != nullptr)
{
VisitNonNull(InCell);
}
}
void FAbstractVisitor::Visit(UObject* InObject)
{
if (InObject != nullptr)
{
VisitNonNull(InObject);
}
}
void FAbstractVisitor::Visit(VValue Value)
{
if (VCell* Cell = Value.ExtractCell())
{
Visit(Cell);
}
else if (Value.IsUObject())
{
Visit(Value.AsUObject());
}
}
void FAbstractVisitor::Visit(VRestValue& Value)
{
Value.Visit(*this);
}
} // namespace Verse
#endif // WITH_VERSE_VM || defined(__INTELLISENSE__)

View File

@@ -10,7 +10,6 @@
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMTuple.h"
#include "VerseVM/VVMValue.h"
#include "VerseVM/VVMVisitorWrapper.h"
#include "VerseVM/VVMWriteBarrier.h"
namespace Verse

View File

@@ -8,7 +8,6 @@
#include "VerseVM/VVMEmergentType.h"
#include "VerseVM/VVMHeap.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMVisitorWrapper.h"
#include <type_traits>
namespace Verse

View File

@@ -10,7 +10,6 @@
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMProcedure.h"
#include "VerseVM/VVMTypeCreator.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -7,7 +7,6 @@
#include "VerseVM/VVMCppClassInfo.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMShape.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -7,7 +7,6 @@
#include "VerseVM/Inline/VVMCellInline.h"
#include "VerseVM/VVMCppClassInfo.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -7,7 +7,6 @@
#include "VerseVM/VVMCppClassInfo.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMProcedure.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -7,7 +7,6 @@
#include "VerseVM/VVMCppClassInfo.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMProcedure.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -4,7 +4,6 @@
#include "VerseVM/VVMGlobalTrivialEmergentTypePtr.h"
#include "VerseVM/Inline/VVMAbstractVisitorInline.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -19,7 +19,6 @@
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMNeverDestroyed.h"
#include "VerseVM/VVMSubspace.h"
#include "VerseVM/VVMVisitorWrapper.h"
#include "pas_scavenger_ue.h"
#include "verse_heap_mark_bits_page_commit_controller_ue.h"
#include "verse_heap_ue.h"

View File

@@ -9,7 +9,6 @@
#include "VerseVM/Inline/VVMEqualInline.h"
#include "VerseVM/Inline/VVMValueInline.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMVisitorWrapper.h"
#include "VerseVM/VVMWriteBarrier.h"
namespace Verse

View File

@@ -7,7 +7,6 @@
#include "VerseVM/VVMCppClassInfo.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMValue.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -5,7 +5,6 @@
#include "VerseVM/Inline/VVMAbstractVisitorInline.h"
#include "VerseVM/VVMCppClassInfo.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -6,7 +6,6 @@
#include "VerseVM/Inline/VVMCellInline.h"
#include "VerseVM/VVMCppClassInfo.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -9,7 +9,6 @@
#include "VerseVM/VVMCppClassInfo.h"
#include "VerseVM/VVMLog.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -9,7 +9,6 @@
#include "VerseVM/Inline/VVMValueInline.h"
#include "VerseVM/VVMCppClassInfo.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -8,7 +8,6 @@
#include "VerseVM/VVMCppClassInfo.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMUnreachable.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -10,7 +10,6 @@
#include "VerseVM/VVMFailureContext.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMProcedure.h"
#include "VerseVM/VVMVisitorWrapper.h"
namespace Verse
{

View File

@@ -9,7 +9,6 @@
#include "VerseVM/VVMCppClassInfo.h"
#include "VerseVM/VVMMarkStackVisitor.h"
#include "VerseVM/VVMValue.h"
#include "VerseVM/VVMVisitorWrapper.h"
#include "VerseVM/VVMWriteBarrier.h"
namespace Verse

Some files were not shown because too many files have changed in this diff Show More