ArrayMetadata.h 842 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <stdint.h>
  3. #include "os/Mutex.h"
  4. struct Il2CppClass;
  5. namespace il2cpp
  6. {
  7. namespace metadata
  8. {
  9. class ArrayMetadata
  10. {
  11. public:
  12. static Il2CppClass* GetBoundedArrayClass(Il2CppClass* elementClass, uint32_t rank, bool bounded);
  13. typedef void(*ArrayTypeWalkCallback)(Il2CppClass* type, void* context);
  14. static void WalkSZArrays(ArrayTypeWalkCallback callback, void* context);
  15. static void WalkArrays(ArrayTypeWalkCallback callback, void* context);
  16. // called as part of Class::Init with lock held
  17. static void SetupArrayInterfaces(Il2CppClass* klass, const il2cpp::os::FastAutoLock& lock);
  18. static void SetupArrayVTable(Il2CppClass* klass, const il2cpp::os::FastAutoLock& lock);
  19. static void Clear();
  20. };
  21. } /* namespace vm */
  22. } /* namespace il2cpp */