Пример #1
0
/*
 * Assign to a symbol in a CompiledFrame.
 */
void rho_runtime_assignSymbolInCompiledFrame(const Symbol* symbol,
					     Environment* environment,
					     int position,
					     RObject* value)
{
    assert(environment->frame() != nullptr);
    assert(value != R_MissingArg);
    assert(position >= 0);

    Frame* frame = environment->frame();
    assert(frame != nullptr);

    Frame::Binding* binding = frame->obtainBinding(symbol, position);
    binding->assign(value);
}
Пример #2
0
/*
 * Assign to a symbol in a CompiledFrame.
 */
void cxxr_runtime_assignSymbolInCompiledFrame(const Symbol* symbol,
					      Environment* environment,
					      int position,
					      RObject* value)
{
    assert(environment->frame() != nullptr);
    assert(value != R_MissingArg);
    assert(position >= 0);

    JIT::CompiledFrame* frame
	// TODO(kmillar): when optimizing make this a static cast.
	= dynamic_cast<JIT::CompiledFrame*>(environment->frame());
    assert(frame != nullptr);

    Frame::Binding* binding = frame->obtainBinding(symbol, position);
    binding->assign(value);
}