Badminton-Scoreboard/Libraries/libil2cpp/include/metadata/CustomAttributeCreator.h
2023-10-08 10:24:48 +08:00

37 lines
1.1 KiB
C++

#pragma once
#include "metadata/CustomAttributeDataReader.h"
#include "il2cpp-object-internals.h"
#include "vm-utils/VmThreadUtils.h"
namespace il2cpp
{
namespace metadata
{
class CustomAttributeCreator : public CustomAttributeReaderVisitor
{
private:
Il2CppObject* attr;
Il2CppException* exc;
public:
CustomAttributeCreator() : attr(NULL), exc(NULL)
{
// As currently implemented CustomAttributeCreator must be stack allocated
// It directly stores managed objects attr & exc so it must be either on the stack
// or in GC allocated memory
IL2CPP_ASSERT_STACK_PTR(this);
}
virtual void VisitCtor(const MethodInfo* ctor, CustomAttributeArgument args[], uint32_t argumentCount);
virtual void VisitField(const CustomAttributeFieldArgument& field, uint32_t index);
virtual void VisitProperty(const CustomAttributePropertyArgument& prop, uint32_t index);
Il2CppObject* GetAttribute(Il2CppException** exc);
private:
};
} /* namespace vm */
} /* namespace il2cpp */