123456789101112131415161718192021222324252627282930313233343536 |
- #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 */
|