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

Method invokeList

src/interpret.cpp:3411–3434  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3409 }
3410
3411 virtual object invokeList(vm::Thread* vmt,
3412 GcMethod* method,
3413 object this_,
3414 bool indirectObjects,
3415 va_list arguments)
3416 {
3417 Thread* t = static_cast<Thread*>(vmt);
3418
3419 assertT(
3420 t,
3421 t->state == Thread::ActiveState or t->state == Thread::ExclusiveState);
3422
3423 assertT(t, ((method->flags() & ACC_STATIC) == 0) xor (this_ == 0));
3424
3425 if (UNLIKELY(t->sp + method->parameterFootprint() + 1 > stackSizeInWords(t)
3426 / 2)) {
3427 throwNew(t, GcStackOverflowError::Type);
3428 }
3429
3430 const char* spec = reinterpret_cast<char*>(method->spec()->body().begin());
3431 pushArguments(t, this_, spec, indirectObjects, arguments);
3432
3433 return local::invoke(t, method);
3434 }
3435
3436 virtual object invokeList(vm::Thread* vmt,
3437 GcClassLoader* loader,

Callers

nothing calls this directly

Calls 10

assertTFunction · 0.85
stackSizeInWordsFunction · 0.85
pushArgumentsFunction · 0.85
parameterFootprintFunction · 0.85
flagsMethod · 0.80
bodyMethod · 0.80
throwNewFunction · 0.70
invokeFunction · 0.70
resolveMethodFunction · 0.70
beginMethod · 0.45

Tested by

no test coverage detected