ConsistentAOTHomologousImage.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include "AOTHomologousImage.h"
  3. namespace hybridclr
  4. {
  5. namespace metadata
  6. {
  7. class ConsistentAOTHomologousImage : public AOTHomologousImage
  8. {
  9. public:
  10. ConsistentAOTHomologousImage() : AOTHomologousImage() {}
  11. void InitRuntimeMetadatas() override;
  12. void InitTypes();
  13. void InitMethods();
  14. void InitFields();
  15. MethodBody* GetMethodBody(uint32_t token) override;
  16. const Il2CppType* GetIl2CppTypeFromRawTypeDefIndex(uint32_t index) override;
  17. Il2CppGenericContainer* GetGenericContainerByRawIndex(uint32_t index) override;
  18. Il2CppGenericContainer* GetGenericContainerByTypeDefRawIndex(int32_t typeDefIndex) override;
  19. const Il2CppMethodDefinition* GetMethodDefinitionFromRawIndex(uint32_t index) override;
  20. void ReadFieldRefInfoFromFieldDefToken(uint32_t rowIndex, FieldRefInfo& ret) override;
  21. private:
  22. std::vector<const Il2CppType*> _il2cppTypeForTypeDefs;
  23. std::vector<Il2CppTypeDefinition*> _typeDefs;
  24. std::vector< const Il2CppMethodDefinition*> _methodDefs;
  25. std::vector<AOTFieldData> _fields;
  26. };
  27. }
  28. }