本文整理汇总了C++中NativeMethod::primitive方法的典型用法代码示例。如果您正苦于以下问题:C++ NativeMethod::primitive方法的具体用法?C++ NativeMethod::primitive怎么用?C++ NativeMethod::primitive使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NativeMethod
的用法示例。
在下文中一共展示了NativeMethod::primitive方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: create
NativeMethod* NativeMethod::create(State* state, String* file_name,
Module* module, Symbol* method_name,
void* func, Fixnum* arity)
{
NativeMethod* nmethod = state->new_object<NativeMethod>(G(nmethod));
nmethod->arity(state, arity);
nmethod->file(state, file_name);
nmethod->name(state, method_name);
nmethod->module(state, module);
nmethod->func_ = func;
switch(arity->to_native()) {
case 0:
nmethod->set_executor(&NativeMethod::executor_implementation<ZeroArguments>);
break;
case 1:
nmethod->set_executor(&NativeMethod::executor_implementation<OneArgument>);
break;
case 2:
nmethod->set_executor(&NativeMethod::executor_implementation<TwoArguments>);
break;
case 3:
nmethod->set_executor(&NativeMethod::executor_implementation<ThreeArguments>);
break;
default:
nmethod->set_executor(&NativeMethod::executor_implementation<GenericArguments>);
break;
}
nmethod->primitive(state, state->symbol("nativemethod_call"));
nmethod->serial(state, Fixnum::from(0));
nmethod->inliners_ = 0;
return nmethod;
}
示例2: create
static NativeMethod* create(VM* state,
String* file_name = as<String>(Qnil),
Module* module = as<Module>(Qnil),
Symbol* method_name = as<Symbol>(Qnil),
FunctorType functor = static_cast<GenericFunctor>(NULL),
Fixnum* arity = as<Fixnum>(Qnil))
{
NativeMethod* nmethod = state->new_object<NativeMethod>(G(nmethod));
nmethod->arity(state, arity);
nmethod->file_name(state, file_name);
nmethod->method_name(state, method_name);
nmethod->module(state, module);
nmethod->functor(state, MemoryPointer::create(state, reinterpret_cast<void*>(functor)));
nmethod->set_executor(&NativeMethod::executor_implementation);
nmethod->primitive(state, state->symbol("nativemethod_call"));
nmethod->serial(state, Fixnum::from(0));
return nmethod;
}