本文整理汇总了C++中oop::obj_at_put方法的典型用法代码示例。如果您正苦于以下问题:C++ oop::obj_at_put方法的具体用法?C++ oop::obj_at_put怎么用?C++ oop::obj_at_put使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类oop
的用法示例。
在下文中一共展示了oop::obj_at_put方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pass_to_Self
void PendingSelfSignals::pass_to_Self(oop resultArg) {
if (SignalInterface::are_self_signals_blocked())
fatal("signals are blocked -- shouldn't transfer");
// must block interrupts to avoid interference from signal_handler
{ SignalBlocker sb;
fint index = 1;
for (fint i = 0;
i < n_real_SelfSignals;
++i ) {
smi c = count(SelfSignal(i));
if ( c != 0) {
resultArg->obj_at_put(index++, name(SelfSignal(i)));
resultArg->obj_at_put(index++, as_smiOop(c));
reset(SelfSignal(i));
}
}
_are_any_pending = false;
_know_if_any_pending = true;
resultArg->obj_at_put(0, as_smiOop(index / 2));
}
}
示例2: get_result
oop processOopClass::get_result(oop resultArg) {
// compute result and fill in result vector if necessary
oop res;
switch (preemptCause) {
case cTerminated:
case cAborted:
res = VMString[causeString[preemptCause]];
delete prevProcess;
break;
case cStackOverflowed:
case cNonLIFOBlock:
res = VMString[causeString[preemptCause]];
assert(prevProcess->state == stopped, "wrong state");
break;
case cSingleStepped:
case cFinishedActivation:
case cCouldntAllocateStack:
case cLowOnSpace:
res = VMString[causeString[preemptCause]];
break;
case cYielded:
res = VMString[causeString[preemptCause]];
resultArg->obj_at_put(0, yieldRcvr);
resultArg->obj_at_put(1, yieldArg);
break;
case cSignal:
res = VMString[SIGNAL];
PendingSelfSignals::pass_to_Self(resultArg);
break;
case cNoCause:
case cLast:
default:
fatal1("unknown/illegal preemptCause %ld", preemptCause);
}
return res;
}