MCPcopy Create free account
hub / github.com/ReadyTalk/avian / resolveArrayClass

Function resolveArrayClass

src/machine.cpp:3050–3079  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3048}
3049
3050GcClass* resolveArrayClass(Thread* t,
3051 GcClassLoader* loader,
3052 GcByteArray* spec,
3053 bool throw_,
3054 Gc::Type throwType)
3055{
3056 GcClass* c = cast<GcClass>(t,
3057 hashMapFind(t,
3058 roots(t)->bootstrapClassMap(),
3059 spec,
3060 byteArrayHash,
3061 byteArrayEqual));
3062
3063 if (c) {
3064 c->setVirtualTable(t, type(t, GcJobject::Type)->virtualTable());
3065
3066 return c;
3067 } else {
3068 PROTECT(t, loader);
3069 PROTECT(t, spec);
3070
3071 c = findLoadedClass(t, roots(t)->bootLoader(), spec);
3072
3073 if (c) {
3074 return c;
3075 } else {
3076 return makeArrayClass(t, loader, spec, throw_, throwType);
3077 }
3078 }
3079}
3080
3081void removeMonitor(Thread* t, object o)
3082{

Callers 2

resolveSystemClassFunction · 0.85
resolveClassFunction · 0.85

Calls 5

hashMapFindFunction · 0.85
rootsFunction · 0.85
typeFunction · 0.85
findLoadedClassFunction · 0.85
makeArrayClassFunction · 0.85

Tested by

no test coverage detected