本文整理汇总了C++中CompiledMethod::execute方法的典型用法代码示例。如果您正苦于以下问题:C++ CompiledMethod::execute方法的具体用法?C++ CompiledMethod::execute怎么用?C++ CompiledMethod::execute使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CompiledMethod
的用法示例。
在下文中一共展示了CompiledMethod::execute方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: default_executor
Object* CompiledMethod::default_executor(STATE, CallFrame* call_frame, Dispatch& msg,
Arguments& args) {
CompiledMethod* cm = as<CompiledMethod>(msg.method);
cm->formalize(state, false);
// Refactor
cm->backend_method_->find_super_instructions();
return cm->execute(state, call_frame, msg, args);
}
示例2: default_executor
Object* CompiledMethod::default_executor(STATE, CallFrame* call_frame, Dispatch& msg,
Arguments& args) {
CompiledMethod* cm = as<CompiledMethod>(msg.method);
const char* reason = 0;
int ip = -1;
if(!cm->internalize(state, &reason, &ip)) {
Exception::bytecode_error(state, call_frame, cm, ip, reason);
return 0;
}
// Refactor
cm->backend_method_->find_super_instructions();
return cm->execute(state, call_frame, msg, args);
}
示例3: activate
ExecuteStatus CompiledMethod::activate(STATE, Executable* exec, Task* task, Message& msg) {
CompiledMethod* meth = as<CompiledMethod>(msg.recv);
Object* recv = msg.get_argument(0);
Module* mod = as<Module>(msg.get_argument(1));
Array* args = as<Array>(msg.get_argument(2));
// Leave msg.block set and pass it through.
msg.recv = recv;
msg.method = meth;
msg.module = mod;
msg.set_arguments(state, args);
msg.name = meth->name();
msg.priv = true;
msg.method_missing = false;
// NOTE even when we're activating a method_missing, we don't
// push the name given, because there really isn't one. So if
// this is used to call a method_missing, you have to supply all
// the args.
return meth->execute(state, task, msg);
}
示例4: default_executor
Object* CompiledMethod::default_executor(STATE, CallFrame* call_frame,
Executable* exec, Module* mod, Arguments& args)
{
LockableScopedLock lg(state, &state->shared, __FILE__, __LINE__);
CompiledMethod* cm = as<CompiledMethod>(exec);
if(cm->execute == default_executor) {
const char* reason = 0;
int ip = -1;
OnStack<4> os(state, cm, exec, mod, args.argument_container_location());
GCTokenImpl gct;
if(!cm->internalize(state, gct, &reason, &ip)) {
Exception::bytecode_error(state, call_frame, cm, ip, reason);
return 0;
}
}
lg.unlock();
return cm->execute(state, call_frame, exec, mod, args);
}
示例5: default_executor
ExecuteStatus CompiledMethod::default_executor(STATE, Task* task, Message& msg) {
CompiledMethod* cm = as<CompiledMethod>(msg.method);
cm->formalize(state, false);
return cm->execute(state, task, msg);
}