ArrayMetadata.h 812 B

12345678910111213141516171819202122232425
  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. };
  20. } /* namespace vm */
  21. } /* namespace il2cpp */