少年修仙传客户端基础资源
hch
2024-04-01 d01413b00ef631ac20347716b23818b0b811f65f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#pragma once
 
#include "AOTHomologousImage.h"
 
namespace hybridclr
{
namespace metadata
{
 
    class ConsistentAOTHomologousImage : public AOTHomologousImage
    {
    public:
        ConsistentAOTHomologousImage() : AOTHomologousImage() {}
 
        void InitRuntimeMetadatas() override;
 
        void InitTypes();
        void InitMethods();
        void InitFields();
 
        MethodBody* GetMethodBody(uint32_t token) override;
        const Il2CppType* GetIl2CppTypeFromRawTypeDefIndex(uint32_t index) override;
        Il2CppGenericContainer* GetGenericContainerByRawIndex(uint32_t index) override;
        Il2CppGenericContainer* GetGenericContainerByTypeDefRawIndex(int32_t typeDefIndex) override;
        const Il2CppMethodDefinition* GetMethodDefinitionFromRawIndex(uint32_t index) override;
        void ReadFieldRefInfoFromFieldDefToken(uint32_t rowIndex, FieldRefInfo& ret) override;
    private:
        std::vector<const Il2CppType*> _il2cppTypeForTypeDefs;
        std::vector<Il2CppTypeDefinition*> _typeDefs;
 
        Il2CppHashMap<uint32_t, MethodBody*, il2cpp::utils::PassThroughHash<uint32_t>> _token2MethodBodies;
        std::vector< const Il2CppMethodDefinition*> _methodDefs;
 
        std::vector<AOTFieldData> _fields;
    };
}
}