#include <RexxNativeActivation.hpp>
Protected Types | |
enum | ActivationType { PROGRAM_ACTIVATION , METHOD_ACTIVATION , FUNCTION_ACTIVATION , DISPATCHER_ACTIVATION , CALLBACK_ACTIVATION , TRAPPING_ACTIVATION } |
Protected Attributes | |
RexxActivity * | activity |
RexxNativeCode * | code |
RexxObject * | receiver |
RexxString * | msgname |
RexxActivation * | activation |
RexxObject ** | arglist |
RexxArray * | argArray |
RexxDirectory * | argDirectory |
RexxIdentityTable * | savelist |
RexxObject * | result |
ActivationType | activationType |
RexxDirectory * | conditionObj |
SecurityManager * | securityManager |
RexxVariableDictionary * | objectVariables |
size_t | nextvariable |
RexxVariableDictionary * | nextcurrent |
RexxCompoundElement * | compoundelement |
RexxVariable * | nextstem |
size_t | argcount |
size_t | named_argcount |
bool | vpavailable |
int | object_scope |
bool | stackBase |
bool | trapErrors |
bool | trapConditions |
Protected Attributes inherited from RexxActivationBase | |
RexxActivationBase * | previous |
BaseExecutable * | executable |
Additional Inherited Members | |
Static Public Member Functions inherited from RexxInternalObject | |
static size_t | getObjectHeaderSize () |
Public Attributes inherited from RexxInternalObject | |
ObjectHeader | header |
RexxBehaviour * | behaviour |
Protected Member Functions inherited from RexxVirtualBase | |
virtual | ~RexxVirtualBase () |
virtual void | baseVirtual () |
Definition at line 62 of file RexxNativeActivation.hpp.
|
protected |
Enumerator | |
---|---|
PROGRAM_ACTIVATION | |
METHOD_ACTIVATION | |
FUNCTION_ACTIVATION | |
DISPATCHER_ACTIVATION | |
CALLBACK_ACTIVATION | |
TRAPPING_ACTIVATION |
Definition at line 188 of file RexxNativeActivation.hpp.
|
inline |
Definition at line 70 of file RexxNativeActivation.hpp.
RexxNativeActivation::RexxNativeActivation | ( | ) |
Initialize an activation for direct caching in the activation cache. At this time, this is not an executable activation
Definition at line 80 of file RexxNativeActivation.cpp.
References RexxInternalObject::setHasNoReferences().
RexxNativeActivation::RexxNativeActivation | ( | RexxActivity * | _activity, |
RexxActivation * | _activation | ||
) |
Constructor for a new native activation used to create a callback context for exit call outs.
_activity | The activity we're running under. |
Definition at line 92 of file RexxNativeActivation.cpp.
References activation, activity, and RexxInternalObject::clearObject().
RexxNativeActivation::RexxNativeActivation | ( | RexxActivity * | _activity | ) |
Constructor for a new native activation used to create a callback context for exit call outs.
_activity | The activity we're running under. |
Definition at line 106 of file RexxNativeActivation.cpp.
References activity, and RexxInternalObject::clearObject().
void RexxNativeActivation::accessCallerContext | ( | ) |
Establish the caller's context for native activations that require access to the caller's context.
Definition at line 1744 of file RexxNativeActivation.cpp.
References activation, and RexxActivationBase::getPreviousStackFrame().
Referenced by callNativeRoutine(), and callRegisteredRoutine().
void* RexxNativeActivation::buffer | ( | ) |
void RexxNativeActivation::callNativeRoutine | ( | RoutineClass * | _routine, |
RexxNativeRoutine * | _code, | ||
RexxString * | functionName, | ||
RexxObject ** | list, | ||
size_t | count, | ||
size_t | named_count, | ||
ProtectedObject & | resultObj | ||
) |
Process a native function call.
routine | The routine we're executing (used for context resolution). |
code | The code object. |
functionName | The name of the function. |
list | The list of arguments. |
count | The number of arguments. |
resultObj | The return value. |
Definition at line 1326 of file RexxNativeActivation.cpp.
References accessCallerContext(), activationType, activity, argcount, arglist, RexxCallContext_::arguments, checkConditions(), RexxActivity::createCallContext(), ActivityManager::currentActivity, disableVariablepool(), enableVariablepool(), RexxActivationBase::executable, FUNCTION_ACTIVATION, RexxActivity::getActivationLevel(), RexxNativeRoutine::getEntry(), RexxActivity::getInstanceSecurityManager(), RexxNativeCode::getSecurityManager(), MAX_NATIVE_ARGUMENTS, msgname, named_argcount, OREF_NULL, RexxActivity::popStackFrame(), processArguments(), receiver, RexxActivity::releaseAccess(), RexxActivity::requestAccess(), RexxActivity::restoreActivationLevel(), result, securityManager, RexxInternalObject::setHasNoReferences(), CallContext::threadContext, trapErrors, and valueToObject().
Referenced by RexxNativeRoutine::call().
void RexxNativeActivation::callRegisteredRoutine | ( | RoutineClass * | _routine, |
RegisteredRoutine * | _code, | ||
RexxString * | functionName, | ||
RexxObject ** | list, | ||
size_t | count, | ||
size_t | named_count, | ||
ProtectedObject & | resultObj | ||
) |
Process a native function call.
entryPoint | The target function entry point. |
list | The list of arguments. |
count | The number of arguments. |
result | A protected object to receive the function result. |
Definition at line 1426 of file RexxNativeActivation.cpp.
References accessCallerContext(), activationType, activity, argcount, arglist, createLocalReference(), ActivityManager::currentActivity, DEFRXSTRING, disableVariablepool(), enableVariablepool(), Error_Incorrect_call_external, RexxActivationBase::executable, FUNCTION_ACTIVATION, RexxActivity::getActivationLevel(), Interpreter::getCurrentQueue(), RexxBuffer::getData(), RegisteredRoutine::getEntry(), RexxActivity::getInstanceSecurityManager(), RexxString::getStringData(), MAKERXSTRING, MAX_NATIVE_ARGUMENTS, msgname, named_argcount, new_buffer(), new_string(), OREF_NULL, RexxActivity::popStackFrame(), RexxActivity::releaseAccess(), SystemInterpreter::releaseResultMemory(), reportException(), RexxActivity::requestAccess(), RexxActivity::restoreActivationLevel(), result, securityManager, RexxInternalObject::setHasNoReferences(), stringArgument(), RexxObject::stringValue(), _CONSTRXSTRING::strlength, _RXSTRING::strptr, _CONSTRXSTRING::strptr, RexxString::toRxstring(), and trapErrors.
Referenced by RegisteredRoutine::call().
void RexxNativeActivation::checkConditions | ( | ) |
Check to see if there are deferred syntax errors that need to be raised on return from a native activation.
Definition at line 1754 of file RexxNativeActivation.cpp.
References activity, RexxDirectory::at(), conditionObj, RexxActivationBase::getPreviousStackFrame(), isStackBase(), OREF_NULL, RexxActivity::reraiseException(), result, RexxString::strCompare(), RexxActivationBase::trap(), and trapErrors.
Referenced by callNativeRoutine(), CallbackDispatcher::handleError(), ContextCommandHandlerDispatcher::handleError(), TrappingDispatcher::handleError(), and run().
|
inline |
Definition at line 135 of file RexxNativeActivation.hpp.
References conditionObj, and OREF_NULL.
Referenced by UninitDispatcher::handleError(), and ResolveStemVariable().
|
inline |
Definition at line 138 of file RexxNativeActivation.hpp.
References compoundelement.
Referenced by RexxStem::nextVariable().
RexxReturnCode RexxNativeActivation::copyValue | ( | RexxObject * | value, |
CONSTRXSTRING * | rxstring, | ||
size_t * | length | ||
) |
Copy a value for a variable pool request, with checks for truncation.
value | The value to copy. |
rxstring | The target RXSTRING. |
length | The max length we can copy. |
Definition at line 3210 of file RexxNativeActivation.cpp.
References copyValue(), _RXSTRING::strlength, _CONSTRXSTRING::strlength, _RXSTRING::strptr, and _CONSTRXSTRING::strptr.
RexxReturnCode RexxNativeActivation::copyValue | ( | RexxObject * | value, |
RXSTRING * | rxstring, | ||
size_t * | length | ||
) |
Copy a value for a variable pool request, with checks for truncation.
value | The value to copy. |
rxstring | The target RXSTRING. |
length | The max length we can copy. |
Definition at line 3235 of file RexxNativeActivation.cpp.
References SystemInterpreter::allocateResultMemory(), RexxString::getLength(), RexxString::getStringData(), RXSHV_MEMFL, RXSHV_TRUNC, RexxObject::stringValue(), _RXSTRING::strlength, and _RXSTRING::strptr.
Referenced by copyValue(), variablePoolFetchPrivate(), variablePoolFetchVariable(), and variablePoolNextVariable().
void RexxNativeActivation::createLocalReference | ( | RexxObject * | objr | ) |
Create a local reference for an object. The protects the object from GC until the environment terminates.
objr | The object to protect. |
Definition at line 1164 of file RexxNativeActivation.cpp.
References new_identity_table(), OREF_NULL, RexxIdentityTable::put(), and savelist.
Referenced by callRegisteredRoutine(), cstring(), getNamedArguments(), getPositionalArguments(), objectToValue(), processArguments(), and ApiContext::ret().
StackFrameClass * RexxNativeActivation::createStackFrame | ( | ) |
Create a stack frame for exception tracebacks.
Definition at line 3398 of file RexxNativeActivation.cpp.
References activity, RexxActivity::buildMessage(), FRAME_METHOD, FRAME_ROUTINE, RexxActivationBase::getExecutableObject(), RexxClass::getId(), getMessageName(), getPositionalArguments(), getScope(), Message_Translations_compiled_method_invocation, Message_Translations_compiled_routine_invocation, new_array(), OREF_NULL, receiver, RexxObject::requestString(), SIZE_MAX, and TheNilObject.
Referenced by NativeActivationFrame::createStackFrame().
void * RexxNativeActivation::cself | ( | ) |
Definition at line 1997 of file RexxNativeActivation.cpp.
References RexxActivationBase::executable, RexxObject::getCSelf(), getScope(), methodVariables(), OREF_NULL, and receiver.
Referenced by GetCSelf(), and processArguments().
const char * RexxNativeActivation::cstring | ( | RexxObject * | object | ) |
Definition at line 1931 of file RexxNativeActivation.cpp.
References createLocalReference(), and RexxObject::stringValue().
Referenced by objectToValue(), and processArguments().
|
virtual |
Reimplemented from RexxActivationBase.
Definition at line 2042 of file RexxNativeActivation.cpp.
References activation, Numerics::DEFAULT_DIGITS, RexxActivation::digits(), and OREF_NULL.
Referenced by GetContextDigits(), and isInteger().
|
inline |
Definition at line 183 of file RexxNativeActivation.hpp.
References trapErrors.
Referenced by ApiContext::~ApiContext().
void RexxNativeActivation::disableVariablepool | ( | ) |
Definition at line 2315 of file RexxNativeActivation.cpp.
References resetNext(), and vpavailable.
Referenced by callNativeRoutine(), and callRegisteredRoutine().
|
virtual |
Reimplemented from RexxActivationBase.
Definition at line 2032 of file RexxNativeActivation.cpp.
References argcount, arglist, code, RexxActivationBase::executable, msgname, named_argcount, receiver, and run().
void RexxNativeActivation::dropContextVariable | ( | const char * | name | ) |
Drop a context variable for an API call.
name | The target variable name. |
Definition at line 2670 of file RexxNativeActivation.cpp.
References activation, RexxVariableBase::drop(), RexxVariableDictionary::getVariableRetriever(), isString(), new_string(), OREF_NULL, and resetNext().
Referenced by DropContextVariable(), and DropExitContextVariable().
void RexxNativeActivation::dropObjectVariable | ( | const char * | name | ) |
Drop an object variable in the current method scope.
name | The name of the variable. |
Definition at line 2752 of file RexxNativeActivation.cpp.
References RexxVariableBase::drop(), RexxVariableDictionary::getVariableRetriever(), isOfClassType, isString(), methodVariables(), new_string(), and OREF_NULL.
Referenced by DropObjectVariable().
|
inline |
Definition at line 179 of file RexxNativeActivation.hpp.
References trapConditions.
Referenced by RaiseCondition().
|
inline |
Definition at line 182 of file RexxNativeActivation.hpp.
References trapErrors.
Referenced by ApiContext::ApiContext().
void RexxNativeActivation::enableVariablepool | ( | ) |
Definition at line 2306 of file RexxNativeActivation.cpp.
References resetNext(), and vpavailable.
Referenced by callNativeRoutine(), callRegisteredRoutine(), RexxActivity::exitKernel(), and RexxActivity::run().
bool RexxNativeActivation::fetchNext | ( | RexxString ** | name, |
RexxObject ** | value | ||
) |
Definition at line 2336 of file RexxNativeActivation.cpp.
References activity, RexxCompoundElement::createCompoundName(), RexxActivity::getCurrentRexxFrame(), RexxActivation::getLocalVariables(), RexxVariable::getName(), RexxVariable::getVariableValue(), RexxVariable::isStem(), nextCurrent(), nextStem(), RexxVariableDictionary::nextVariable(), RexxStem::nextVariable(), OREF_NULL, setCompoundElement(), setNextCurrent(), setNextStem(), setNextVariable(), and SIZE_MAX.
Referenced by variablePoolNextVariable().
RexxClass * RexxNativeActivation::findCallerClass | ( | RexxString * | className | ) |
Resolve a class in the context of the caller's execution context.
className | The target class name. |
Definition at line 2808 of file RexxNativeActivation.cpp.
References activation, Interpreter::findClass(), RexxActivation::findClass(), RexxObject::isInstanceOf(), OREF_NULL, and TheClassClass.
Referenced by FindCallContextClass().
RexxClass * RexxNativeActivation::findClass | ( | RexxString * | className | ) |
Resolve a class in the context of the current execution context.
className | The target class name. |
Definition at line 2778 of file RexxNativeActivation.cpp.
References RexxActivationBase::executable, BaseExecutable::findClass(), Interpreter::findClass(), RexxObject::isInstanceOf(), OREF_NULL, and TheClassClass.
Referenced by FindClass(), FindContextClass(), and IsOfType().
|
virtual |
Return the Rexx context this operates under. Depending on the context, this could be null.
Reimplemented from RexxActivationBase.
Definition at line 2218 of file RexxNativeActivation.cpp.
References activation, RexxActivationBase::findRexxContext(), OREF_NULL, and RexxActivationBase::previous.
|
virtual |
Reimplemented from RexxActivationBase.
Definition at line 2074 of file RexxNativeActivation.cpp.
References activation, Numerics::DEFAULT_FORM, RexxActivation::form(), and OREF_NULL.
Referenced by GetContextForm().
void RexxNativeActivation::forwardMessage | ( | RexxObject * | to, |
RexxString * | msg, | ||
RexxClass * | super, | ||
RexxArray * | positionalArgs, | ||
RexxDirectory * | namedArgs, | ||
ProtectedObject & | _result | ||
) |
Implement the equivalent of a FORWARD CONTINUE instruction as an API call. All null arguments are filled in with the method context args.
to | The target object. Defaults to SELF |
msg | The target message name. Defaults to current message. |
super | Any superclass override. Defaults to none. |
args | The message positional arguments. Defaults to current argument set. |
Definition at line 3341 of file RexxNativeActivation.cpp.
References RexxDirectory::appendAllIndexesItemsTo(), argcount, arglist, RexxArray::copy(), RexxArray::data(), getMessageName(), getNamedArguments(), getPositionalArguments(), getSelf(), RexxObject::messageSend(), named_argcount, OREF_NULL, and RexxArray::size().
Referenced by ForwardMessage().
|
virtual |
Reimplemented from RexxActivationBase.
Definition at line 2058 of file RexxNativeActivation.cpp.
References activation, Numerics::DEFAULT_FUZZ, RexxActivation::fuzz(), and OREF_NULL.
Referenced by GetContextFuzz().
|
inline |
Definition at line 144 of file RexxNativeActivation.hpp.
References activity.
RexxDirectory * RexxNativeActivation::getAllContextVariables | ( | ) |
Definition at line 2686 of file RexxNativeActivation.cpp.
References activation, RexxActivation::getAllLocalVariables(), and resetNext().
Referenced by GetAllContextVariables(), and GetAllExitContextVariables().
|
inline |
Definition at line 134 of file RexxNativeActivation.hpp.
References conditionObj.
Referenced by CheckCondition(), DisplayCondition(), and GetConditionInfo().
RexxObject * RexxNativeActivation::getContextStem | ( | RexxString * | name | ) |
Definition at line 2589 of file RexxNativeActivation.cpp.
References activation, RexxString::concatWithCstring(), RexxString::getChar(), RexxString::getLength(), RexxInternalObject::getValue(), RexxVariableDictionary::getVariableRetriever(), isOfClass, and OREF_NULL.
Referenced by objectToValue(), processArguments(), and resolveStemVariable().
RexxObject * RexxNativeActivation::getContextVariable | ( | const char * | name | ) |
Retrieve the value of a context variable via the API calls. Returns OREF_NULL if the variable does not exist.
name | The variable name. |
Definition at line 2620 of file RexxNativeActivation.cpp.
References activation, RexxInternalObject::getRealValue(), RexxVariableDictionary::getVariableRetriever(), isString(), new_string(), OREF_NULL, and resetNext().
Referenced by GetContextVariable(), and GetExitContextVariable().
double RexxNativeActivation::getDoubleValue | ( | RexxObject * | object, |
size_t | position | ||
) |
Definition at line 1970 of file RexxNativeActivation.cpp.
References RexxObject::doubleValue(), Error_Invalid_argument_double, and reportException().
Referenced by processArguments().
|
inline |
Definition at line 122 of file RexxNativeActivation.hpp.
References msgname.
Referenced by createStackFrame(), forwardMessage(), GetMessageName(), GetRoutineName(), InvalidRoutine(), and NativeActivationFrame::messageName().
RexxDirectory * RexxNativeActivation::getNamedArguments | ( | ) |
Return the method context named arguments as a directory.
Definition at line 2524 of file RexxNativeActivation.cpp.
References argcount, argDirectory, arglist, createLocalReference(), RexxDirectory::fromIndexItemArray(), named_argcount, new_directory(), and OREF_NULL.
Referenced by forwardMessage().
|
virtual |
Get the numeric settings for this native activation. If we're running in the direct call context from a Rexx activation, then the settings are those inherited from the Rexx context. Otherwise, we just return the default numeric settings.
Reimplemented from RexxActivationBase.
Definition at line 2138 of file RexxNativeActivation.cpp.
References activation, Numerics::getDefaultSettings(), RexxActivation::getNumericSettings(), and OREF_NULL.
RexxObject * RexxNativeActivation::getObjectVariable | ( | const char * | name | ) |
Get nn object variable in the current method scope. Returns a NULL object reference if the variable does not exist.
name | The variable name. |
Definition at line 2705 of file RexxNativeActivation.cpp.
References RexxInternalObject::getRealValue(), RexxVariableDictionary::getVariableRetriever(), isOfClassType, isString(), methodVariables(), new_string(), and OREF_NULL.
Referenced by GetObjectVariable().
RexxObject * RexxNativeActivation::getPositionalArgument | ( | size_t | index | ) |
Retrieve a specific positional argument from the method invocation context.
index | The positional argument of interest. |
Definition at line 2510 of file RexxNativeActivation.cpp.
References argcount, arglist, and OREF_NULL.
Referenced by GetCallArgument(), and GetMethodArgument().
RexxArray * RexxNativeActivation::getPositionalArguments | ( | ) |
Return the method context positional arguments as an array.
Definition at line 2488 of file RexxNativeActivation.cpp.
References argArray, argcount, arglist, createLocalReference(), and OREF_NULL.
Referenced by createStackFrame(), forwardMessage(), GetCallArguments(), GetMethodArguments(), and processArguments().
|
virtual |
Get the message receiver
Reimplemented from RexxActivationBase.
Definition at line 2242 of file RexxNativeActivation.cpp.
References receiver.
|
virtual |
Return the Rexx context this operates under. Depending on the context, this could be null.
Reimplemented from RexxActivationBase.
Definition at line 2169 of file RexxNativeActivation.cpp.
References activation.
BaseExecutable * RexxNativeActivation::getRexxContextExecutable | ( | ) |
Return the Rexx executable context that is our immediate caller. Depending on the context, this could be null.
Definition at line 2182 of file RexxNativeActivation.cpp.
References activation, RexxActivationBase::getExecutable(), and OREF_NULL.
RexxObject * RexxNativeActivation::getRexxContextObject | ( | ) |
Return the Rexx context object for our immediate caller. Depending on the context, this could be null.
Definition at line 2200 of file RexxNativeActivation.cpp.
References activation, RexxActivation::getContextObject(), and OREF_NULL.
Referenced by GetCallerContext(), and GetExitCallerContext().
RexxObject * RexxNativeActivation::getScope | ( | ) |
Return the current method scope.
Definition at line 2559 of file RexxNativeActivation.cpp.
References RexxActivationBase::executable.
Referenced by createStackFrame(), cself(), GetScope(), getSuper(), guardOn(), and processArguments().
|
virtual |
Get the security manager context
Implements RexxActivationBase.
Definition at line 2253 of file RexxNativeActivation.cpp.
References RexxSource::getSecurityManager(), getSourceObject(), and OREF_NULL.
|
inline |
Definition at line 143 of file RexxNativeActivation.hpp.
References receiver.
Referenced by forwardMessage(), and GetSelf().
RexxSource * RexxNativeActivation::getSourceObject | ( | ) |
Retrieve the source object for the current context, if there is one.
Definition at line 2836 of file RexxNativeActivation.cpp.
References RexxActivationBase::executable, BaseExecutable::getSourceObject(), and OREF_NULL.
Referenced by getSecurityManager(), and NativeActivationFrame::getSource().
RexxObject * RexxNativeActivation::getSuper | ( | ) |
Return the super class scope of the current method context.
Definition at line 2549 of file RexxNativeActivation.cpp.
References RexxActivationBase::executable, getScope(), receiver, and RexxObject::superScope().
Referenced by GetSuper(), and processArguments().
|
inline |
Definition at line 121 of file RexxNativeActivation.hpp.
References vpavailable.
Referenced by variablePoolInterface().
void RexxNativeActivation::guardOff | ( | ) |
Definition at line 2264 of file RexxNativeActivation.cpp.
References activity, object_scope, objectVariables, RexxVariableDictionary::release(), SCOPE_RELEASED, and SCOPE_RESERVED.
Referenced by run(), SetGuardOff(), and termination().
void RexxNativeActivation::guardOn | ( | ) |
Definition at line 2279 of file RexxNativeActivation.cpp.
References activity, RexxActivationBase::executable, RexxObject::getObjectVariables(), getScope(), object_scope, objectVariables, OREF_NULL, receiver, RexxVariableDictionary::reserve(), SCOPE_RELEASED, and SCOPE_RESERVED.
Referenced by SetGuardOn().
int64_t RexxNativeActivation::int64Value | ( | RexxObject * | o, |
size_t | position | ||
) |
Convert a value to an int64_t value
o | The object to convert. |
position | The argument position. |
Definition at line 1897 of file RexxNativeActivation.cpp.
References Error_Invalid_argument_range, INT64_MAX, INT64_MIN, Numerics::int64ToObject(), new_array(), new_integer(), Numerics::objectToInt64(), and reportException().
Referenced by processArguments().
bool RexxNativeActivation::isDouble | ( | RexxObject * | object | ) |
Definition at line 1986 of file RexxNativeActivation.cpp.
bool RexxNativeActivation::isInteger | ( | RexxObject * | object | ) |
Definition at line 1833 of file RexxNativeActivation.cpp.
References digits().
|
virtual |
Indicate whether this activation represents the base of the call stack.
Reimplemented from RexxActivationBase.
Definition at line 2157 of file RexxNativeActivation.cpp.
References stackBase.
Referenced by checkConditions().
|
virtual |
Reimplemented from RexxVirtualBase.
Definition at line 113 of file RexxNativeActivation.cpp.
References activation, activity, argArray, argcount, argDirectory, arglist, compoundelement, conditionObj, RexxActivationBase::executable, memory_mark, msgname, named_argcount, nextcurrent, nextstem, objectVariables, RexxActivationBase::previous, receiver, result, savelist, and securityManager.
|
virtual |
Reimplemented from RexxVirtualBase.
Definition at line 145 of file RexxNativeActivation.cpp.
References activation, activity, argArray, argcount, argDirectory, arglist, compoundelement, conditionObj, RexxActivationBase::executable, memory_mark_general, msgname, named_argcount, nextcurrent, nextstem, objectVariables, RexxActivationBase::previous, receiver, result, savelist, and securityManager.
RexxVariableDictionary * RexxNativeActivation::methodVariables | ( | ) |
Definition at line 1799 of file RexxNativeActivation.cpp.
References activity, RexxActivationBase::executable, RexxObject::getObjectVariables(), RexxMethod::getScope(), RexxMethod::isGuarded(), object_scope, objectVariables, OREF_NULL, receiver, RexxVariableDictionary::reserve(), SCOPE_RELEASED, and SCOPE_RESERVED.
Referenced by cself(), dropObjectVariable(), getObjectVariable(), and setObjectVariable().
|
inline |
Definition at line 137 of file RexxNativeActivation.hpp.
References nextcurrent.
Referenced by fetchNext().
|
inline |
Definition at line 124 of file RexxNativeActivation.hpp.
References nextstem.
Referenced by fetchNext().
|
inline |
Definition at line 123 of file RexxNativeActivation.hpp.
References nextvariable.
Referenced by RexxVariableDictionary::nextVariable().
bool RexxNativeActivation::objectToValue | ( | RexxObject * | o, |
ValueDescriptor * | value | ||
) |
Convert a Rexx object into the requested value type, if possible.
o | The source object. |
value | The receiving value structure, which also defines the type. |
Definition at line 851 of file RexxNativeActivation.cpp.
References activationType, arrayArgument(), createLocalReference(), cstring(), RexxObject::doubleValue(), getContextStem(), RexxString::getStringData(), INT16_MAX, INT16_MIN, INT32_MAX, INT32_MIN, INT8_MAX, INT8_MIN, RexxObject::isInstanceOf(), isStem(), RexxObject::logicalValue(), Numerics::MAX_STRINGSIZE, Numerics::MAX_WHOLENUMBER, METHOD_ACTIVATION, Numerics::MIN_WHOLENUMBER, Numerics::objectToInt64(), Numerics::objectToIntptr(), Numerics::objectToSignedInteger(), Numerics::objectToStringSize(), Numerics::objectToUintptr(), Numerics::objectToUnsignedInt64(), Numerics::objectToUnsignedInteger(), Numerics::objectToWholeNumber(), OREF_NULL, pointer(), REXX_VALUE_CSTRING, REXX_VALUE_double, REXX_VALUE_float, REXX_VALUE_int, REXX_VALUE_int16_t, REXX_VALUE_int32_t, REXX_VALUE_int64_t, REXX_VALUE_int8_t, REXX_VALUE_intptr_t, REXX_VALUE_logical_t, REXX_VALUE_POINTER, REXX_VALUE_POINTERSTRING, REXX_VALUE_RexxArrayObject, REXX_VALUE_RexxClassObject, REXX_VALUE_RexxMutableBufferObject, REXX_VALUE_RexxObjectPtr, REXX_VALUE_RexxStemObject, REXX_VALUE_RexxStringObject, REXX_VALUE_size_t, REXX_VALUE_ssize_t, REXX_VALUE_stringsize_t, REXX_VALUE_uint16_t, REXX_VALUE_uint32_t, REXX_VALUE_uint64_t, REXX_VALUE_uint8_t, REXX_VALUE_uintptr_t, REXX_VALUE_wholenumber_t, SIZE_MAX, SSIZE_MAX, stringArgument(), RexxObject::stringValue(), TheClassClass, TheMutableBufferClass, _ValueDescriptor::type, UINT16_MAX, UINT32_MAX, UINT8_MAX, _ValueDescriptor::value, _ValueDescriptor::value_CSTRING, _ValueDescriptor::value_double, _ValueDescriptor::value_float, _ValueDescriptor::value_int, _ValueDescriptor::value_int16_t, _ValueDescriptor::value_int32_t, _ValueDescriptor::value_int64_t, _ValueDescriptor::value_int8_t, _ValueDescriptor::value_intptr_t, _ValueDescriptor::value_logical_t, _ValueDescriptor::value_POINTER, _ValueDescriptor::value_RexxArrayObject, _ValueDescriptor::value_RexxClassObject, _ValueDescriptor::value_RexxMutableBufferObject, _ValueDescriptor::value_RexxObjectPtr, _ValueDescriptor::value_RexxStemObject, _ValueDescriptor::value_RexxStringObject, _ValueDescriptor::value_size_t, _ValueDescriptor::value_stringsize_t, _ValueDescriptor::value_uint16_t, _ValueDescriptor::value_uint32_t, _ValueDescriptor::value_uint64_t, _ValueDescriptor::value_uint8_t, _ValueDescriptor::value_uintptr_t, and _ValueDescriptor::value_wholenumber_t.
Referenced by ObjectToValue().
|
inline |
Definition at line 68 of file RexxNativeActivation.hpp.
|
inline |
Definition at line 67 of file RexxNativeActivation.hpp.
|
inline |
Definition at line 66 of file RexxNativeActivation.hpp.
void * RexxNativeActivation::operator new | ( | size_t | size | ) |
Allocate a new native Activation.
size | the allocation size. |
Definition at line 2853 of file RexxNativeActivation.cpp.
References RexxInternalObject::clearObject(), new_object(), and T_NativeActivation.
void * RexxNativeActivation::pointer | ( | RexxObject * | object | ) |
Definition at line 2017 of file RexxNativeActivation.cpp.
References RexxObject::isInstanceOf(), and ThePointerClass.
Referenced by objectToValue(), and processArguments().
void * RexxNativeActivation::pointerString | ( | RexxObject * | object, |
size_t | position | ||
) |
Convert a string in the format 0xnnnnnnnnn into a pointer value.
object | The object to convert. |
Definition at line 1955 of file RexxNativeActivation.cpp.
References Error_Invalid_argument_pointer, RexxString::getStringData(), reportException(), and RexxObject::stringValue().
Referenced by processArguments().
void RexxNativeActivation::processArguments | ( | size_t | _argcount, |
RexxObject ** | _arglist, | ||
uint16_t * | argumentTypes, | ||
ValueDescriptor * | descriptors, | ||
size_t | maximumArgumentCount | ||
) |
Process the arguments for a typed function/method call.
argcount | The count of arguments. |
arglist | The original Rexx arguments. |
argumentTypes | The type descriptor from the target. |
descriptors | The maximum argument count for the target. |
maximumArgumentCount |
Definition at line 221 of file RexxNativeActivation.cpp.
References activationType, ARGUMENT_EXISTS, ARGUMENT_TYPE, arrayArgument(), createLocalReference(), cself(), cstring(), Error_Invalid_argument_maxarg, Error_Invalid_argument_noarg, Error_Invalid_argument_noclass, Error_Logical_value_method, _ValueDescriptor::flags, getContextStem(), getDoubleValue(), getPositionalArguments(), getScope(), RexxString::getStringData(), getSuper(), INT16_MAX, INT16_MIN, INT32_MAX, INT32_MIN, int64Value(), INT8_MAX, INT8_MIN, INTPTR_MAX, INTPTR_MIN, IS_OPTIONAL_ARGUMENT, RexxObject::isInstanceOf(), isStem(), Numerics::MAX_STRINGSIZE, Numerics::MAX_WHOLENUMBER, METHOD_ACTIVATION, Numerics::MIN_WHOLENUMBER, msgname, OREF_NULL, pointer(), pointerString(), receiver, reportException(), reportSignatureError(), reportStemError(), RexxObject::requestString(), REXX_ARGUMENT_TERMINATOR, REXX_VALUE_ARGLIST, REXX_VALUE_CSELF, REXX_VALUE_CSTRING, REXX_VALUE_double, REXX_VALUE_float, REXX_VALUE_int, REXX_VALUE_int16_t, REXX_VALUE_int32_t, REXX_VALUE_int64_t, REXX_VALUE_int8_t, REXX_VALUE_intptr_t, REXX_VALUE_logical_t, REXX_VALUE_NAME, REXX_VALUE_OSELF, REXX_VALUE_POINTER, REXX_VALUE_POINTERSTRING, REXX_VALUE_RexxArrayObject, REXX_VALUE_RexxClassObject, REXX_VALUE_RexxMutableBufferObject, REXX_VALUE_RexxObjectPtr, REXX_VALUE_RexxStemObject, REXX_VALUE_RexxStringObject, REXX_VALUE_SCOPE, REXX_VALUE_size_t, REXX_VALUE_ssize_t, REXX_VALUE_stringsize_t, REXX_VALUE_SUPER, REXX_VALUE_uint16_t, REXX_VALUE_uint32_t, REXX_VALUE_uint64_t, REXX_VALUE_uint8_t, REXX_VALUE_uintptr_t, REXX_VALUE_wholenumber_t, signedIntegerValue(), SIZE_MAX, SPECIAL_ARGUMENT, SSIZE_MAX, stringArgument(), TheClassClass, TheMutableBufferClass, TheNilObject, ThePointerClass, RexxObject::truthValue(), _ValueDescriptor::type, type, UINT16_MAX, UINT32_MAX, UINT8_MAX, UINTPTR_MAX, unsignedInt64Value(), unsignedIntegerValue(), _ValueDescriptor::value, _ValueDescriptor::value_CSTRING, _ValueDescriptor::value_double, _ValueDescriptor::value_float, _ValueDescriptor::value_int, _ValueDescriptor::value_int16_t, _ValueDescriptor::value_int32_t, _ValueDescriptor::value_int64_t, _ValueDescriptor::value_int8_t, _ValueDescriptor::value_intptr_t, _ValueDescriptor::value_logical_t, _ValueDescriptor::value_POINTER, _ValueDescriptor::value_POINTERSTRING, _ValueDescriptor::value_RexxArrayObject, _ValueDescriptor::value_RexxClassObject, _ValueDescriptor::value_RexxMutableBufferObject, _ValueDescriptor::value_RexxObjectPtr, _ValueDescriptor::value_RexxStemObject, _ValueDescriptor::value_RexxStringObject, _ValueDescriptor::value_size_t, _ValueDescriptor::value_ssize_t, _ValueDescriptor::value_stringsize_t, _ValueDescriptor::value_uint16_t, _ValueDescriptor::value_uint32_t, _ValueDescriptor::value_uint64_t, _ValueDescriptor::value_uint8_t, _ValueDescriptor::value_uintptr_t, and _ValueDescriptor::value_wholenumber_t.
Referenced by callNativeRoutine(), and run().
void RexxNativeActivation::raiseCondition | ( | RexxString * | condition, |
RexxString * | description, | ||
RexxObject * | additional, | ||
RexxObject * | _result | ||
) |
Raise a condition on behalf of a native method. This method does not return.
condition | The condition type to raise. |
description | The condition description string. |
additional | The additional information associated with this condition. |
result | The result object. |
Definition at line 2471 of file RexxNativeActivation.cpp.
References activity, OREF_NULL, RexxActivity::raiseCondition(), and result.
void RexxNativeActivation::removeLocalReference | ( | RexxObject * | objr | ) |
Remove an object from the local reference table.
objr | The object to remove. |
Definition at line 1187 of file RexxNativeActivation.cpp.
References OREF_NULL, RexxIdentityTable::remove(), and savelist.
Referenced by ReleaseLocalReference().
void RexxNativeActivation::reportSignatureError | ( | ) |
Definition at line 178 of file RexxNativeActivation.cpp.
References activationType, Error_Incorrect_call_signature, Error_Incorrect_method_signature, METHOD_ACTIVATION, and reportException().
Referenced by processArguments(), and valueToObject().
void RexxNativeActivation::reportStemError | ( | size_t | position, |
RexxObject * | object | ||
) |
Definition at line 194 of file RexxNativeActivation.cpp.
References activationType, Error_Incorrect_call_nostem, Error_Incorrect_method_nostem, METHOD_ACTIVATION, and reportException().
Referenced by processArguments().
void RexxNativeActivation::resetNext | ( | ) |
Definition at line 2324 of file RexxNativeActivation.cpp.
References compoundelement, nextcurrent, nextstem, nextvariable, OREF_NULL, and SIZE_MAX.
Referenced by disableVariablepool(), dropContextVariable(), enableVariablepool(), getAllContextVariables(), getContextVariable(), setContextVariable(), and variablePoolGetVariable().
RexxStem * RexxNativeActivation::resolveStemVariable | ( | RexxObject * | s | ) |
Resolve an argument object into a stem object. The argument object may already be a stem, or may the a variable name used to resolve a stem.
s | The source object used for the resolution. |
Definition at line 2574 of file RexxNativeActivation.cpp.
References getContextStem(), isStem(), and stringArgument().
Referenced by ResolveStemVariable().
void RexxNativeActivation::run | ( | ActivityDispatcher & | dispatcher | ) |
Run a task under the scope of a native activation. This is generally a bootstrapping call, such as a top-level program call, method translation, etc.
dispatcher | The dispatcher instance we're going to run. |
Definition at line 1597 of file RexxNativeActivation.cpp.
References activationType, activity, conditionObj, ActivityManager::currentActivity, DISPATCHER_ACTIVATION, RexxActivity::getActivationLevel(), RexxActivity::getInstanceSecurityManager(), ActivityDispatcher::handleError(), OREF_NULL, RexxActivity::popStackFrame(), RexxActivity::requestAccess(), RexxActivity::restoreActivationLevel(), ActivityDispatcher::run(), securityManager, ActivityDispatcher::setContext(), RexxInternalObject::setHasNoReferences(), and trapErrors.
void RexxNativeActivation::run | ( | CallbackDispatcher & | dispatcher | ) |
Run a callback under the scope of a native actvation. This is generally a call out, such as a system exit, argument callback, etc.
dispatcher | The dispatcher instance we're going to run. |
Definition at line 1649 of file RexxNativeActivation.cpp.
References activationType, activity, CALLBACK_ACTIVATION, conditionObj, ActivityManager::currentActivity, RexxActivity::getActivationLevel(), RexxActivity::getInstanceSecurityManager(), CallbackDispatcher::handleError(), OREF_NULL, RexxActivity::releaseAccess(), RexxActivity::requestAccess(), RexxActivity::restoreActivationLevel(), CallbackDispatcher::run(), securityManager, CallbackDispatcher::setContext(), and trapErrors.
void RexxNativeActivation::run | ( | RexxMethod * | _method, |
RexxNativeMethod * | _code, | ||
RexxObject * | _receiver, | ||
RexxString * | _msgname, | ||
RexxObject ** | _arglist, | ||
size_t | _argcount, | ||
size_t | _named_argcount, | ||
ProtectedObject & | resultObj | ||
) |
Run a native method or function under the context of this activation.
_receiver | The receiver object (NULL if not a method invocation). |
_msgname | The message name. |
_argcount | The argument count |
_arglist | The list of arguments. |
resultObj | The returned result object. |
Definition at line 1213 of file RexxNativeActivation.cpp.
References activationType, activity, argcount, arglist, RexxMethodContext_::arguments, checkConditions(), RexxActivity::createMethodContext(), ActivityManager::currentActivity, RexxActivationBase::executable, RexxActivity::getActivationLevel(), RexxNativeMethod::getEntry(), RexxActivity::getInstanceSecurityManager(), RexxNativeCode::getSecurityManager(), guardOff(), MAX_NATIVE_ARGUMENTS, METHOD_ACTIVATION, msgname, named_argcount, OREF_NULL, RexxActivity::popStackFrame(), processArguments(), receiver, RexxActivity::releaseAccess(), RexxActivity::requestAccess(), RexxActivity::restoreActivationLevel(), result, securityManager, RexxInternalObject::setHasNoReferences(), MethodContext::threadContext, trapErrors, and valueToObject().
Referenced by dispatch(), RexxActivity::run(), and RexxNativeMethod::run().
void RexxNativeActivation::run | ( | TrappingDispatcher & | dispatcher | ) |
Run a some type of activity using a fresh activation stack. This generally us a method call such as an uninit method where we wish to run the method and ignore errors. This runs without releasing the kernel lock.
dispatcher | The dispatcher instance we're going to run. |
Definition at line 1700 of file RexxNativeActivation.cpp.
References activationType, activity, conditionObj, ActivityManager::currentActivity, RexxActivity::getActivationLevel(), TrappingDispatcher::handleError(), OREF_NULL, RexxActivity::requestAccess(), RexxActivity::restoreActivationLevel(), TrappingDispatcher::run(), TrappingDispatcher::setContext(), trapErrors, and TRAPPING_ACTIVATION.
|
inline |
Definition at line 142 of file RexxNativeActivation.hpp.
References compoundelement.
Referenced by fetchNext(), and RexxStem::nextVariable().
|
inline |
Definition at line 133 of file RexxNativeActivation.hpp.
References conditionObj.
Referenced by ClearCondition(), ObjectToValue(), RexxActivity::run(), trap(), ValuesToObject(), and ValueToObject().
void RexxNativeActivation::setContextVariable | ( | const char * | name, |
RexxObject * | value | ||
) |
Set a context variable on behalf of an API call.
name | The name of the variable. |
value | The variable value. |
Definition at line 2649 of file RexxNativeActivation.cpp.
References activation, RexxVariableDictionary::getVariableRetriever(), isString(), new_string(), OREF_NULL, resetNext(), and RexxVariableBase::set().
Referenced by SetContextVariable(), and SetExitContextVariable().
|
virtual |
Reimplemented from RexxActivationBase.
Definition at line 2090 of file RexxNativeActivation.cpp.
References activation, OREF_NULL, and RexxActivation::setDigits().
|
virtual |
Reimplemented from RexxActivationBase.
Definition at line 2116 of file RexxNativeActivation.cpp.
References activation, OREF_NULL, and RexxActivation::setForm().
|
virtual |
Reimplemented from RexxActivationBase.
Definition at line 2103 of file RexxNativeActivation.cpp.
References activation, OREF_NULL, and RexxActivation::setFuzz().
|
inline |
Definition at line 140 of file RexxNativeActivation.hpp.
References nextcurrent.
Referenced by fetchNext().
|
inline |
Definition at line 141 of file RexxNativeActivation.hpp.
References nextstem.
Referenced by fetchNext(), and RexxStem::nextVariable().
|
inline |
Definition at line 139 of file RexxNativeActivation.hpp.
References nextvariable.
Referenced by fetchNext(), and RexxVariableDictionary::nextVariable().
void RexxNativeActivation::setObjectVariable | ( | const char * | name, |
RexxObject * | value | ||
) |
The an object variable to a new value.
name | The name of the variable. |
value | The new variable value. |
Definition at line 2729 of file RexxNativeActivation.cpp.
References RexxVariableDictionary::getVariableRetriever(), isOfClassType, isString(), methodVariables(), new_string(), OREF_NULL, and RexxVariableBase::set().
Referenced by SetObjectVariable().
|
inline |
Definition at line 154 of file RexxNativeActivation.hpp.
References stackBase.
Referenced by RexxActivity::createNewActivationStack().
wholenumber_t RexxNativeActivation::signedIntegerValue | ( | RexxObject * | o, |
size_t | position, | ||
wholenumber_t | maxValue, | ||
wholenumber_t | minValue | ||
) |
Convert a value to a wholenumber value.
o | The object to convert. |
position | The argument position. |
maxValue | The maximum value allowed in the range. |
minValue | The minimum range value. |
Definition at line 1853 of file RexxNativeActivation.cpp.
References Error_Invalid_argument_range, new_array(), new_integer(), Numerics::objectToSignedInteger(), reportException(), and Numerics::wholenumberToObject().
Referenced by processArguments().
int RexxNativeActivation::stemSort | ( | const char * | stemname, |
int | order, | ||
int | type, | ||
size_t | start, | ||
size_t | end, | ||
size_t | firstcol, | ||
size_t | lastcol | ||
) |
Definition at line 3278 of file RexxNativeActivation.cpp.
References activation, RexxString::extract(), RexxString::getChar(), RexxString::getLength(), RexxVariableDictionary::getVariableRetriever(), isOfClass, new_string(), RexxStemVariable::sort(), type, and RexxString::upper().
Referenced by RexxStemSort().
|
inlinevirtual |
Reimplemented from RexxActivationBase.
Definition at line 118 of file RexxNativeActivation.hpp.
References guardOff().
|
virtual |
Trap a condition at this level of the activation stack.
condition | The name of the condition. |
exception_object | The exception object containing the specifics of the condition. |
Reimplemented from RexxActivationBase.
Definition at line 2424 of file RexxNativeActivation.cpp.
References RexxString::isEqual(), setConditionInfo(), trapConditions, and trapErrors.
uint64_t RexxNativeActivation::unsignedInt64Value | ( | RexxObject * | o, |
size_t | position | ||
) |
Convert a value to a uint64_t value
o | The object to convert. |
position | The argument position. |
Definition at line 1918 of file RexxNativeActivation.cpp.
References Error_Invalid_argument_range, INT64_MAX, Numerics::int64ToObject(), IntegerZero, new_array(), new_integer(), Numerics::objectToUnsignedInt64(), and reportException().
Referenced by processArguments().
size_t RexxNativeActivation::unsignedIntegerValue | ( | RexxObject * | o, |
size_t | position, | ||
stringsize_t | maxValue | ||
) |
Convert a value to a size_t value.
o | The object to convert. |
position | The argument position. |
maxValue | The maximum value allowed in the range. |
Definition at line 1876 of file RexxNativeActivation.cpp.
References Error_Invalid_argument_range, IntegerZero, new_array(), new_integer(), Numerics::objectToUnsignedInteger(), reportException(), and Numerics::stringsizeToObject().
Referenced by processArguments().
RexxArray * RexxNativeActivation::valuesToObject | ( | ValueDescriptor * | value, |
size_t | count | ||
) |
Convert an collection of value descriptors into a Rexx array object. This is useful for creating arrays of arguments for the various call APIs.
value | The self-describing value descriptors. |
count | The number of descriptors in the list. |
Definition at line 678 of file RexxNativeActivation.cpp.
References new_array(), RexxArray::put(), and valueToObject().
Referenced by ValuesToObject().
RexxObject * RexxNativeActivation::valueToObject | ( | ValueDescriptor * | value | ) |
Convert an API value descriptor into a Rexx object.
value | The self-describing value descriptor. |
Definition at line 699 of file RexxNativeActivation.cpp.
References Numerics::int64ToObject(), new_pointer(), new_string(), OREF_NULL, Numerics::pointerToString(), reportSignatureError(), REXX_VALUE_CSTRING, REXX_VALUE_double, REXX_VALUE_float, REXX_VALUE_int, REXX_VALUE_int16_t, REXX_VALUE_int32_t, REXX_VALUE_int64_t, REXX_VALUE_int8_t, REXX_VALUE_intptr_t, REXX_VALUE_logical_t, REXX_VALUE_POINTER, REXX_VALUE_POINTERSTRING, REXX_VALUE_RexxArrayObject, REXX_VALUE_RexxClassObject, REXX_VALUE_RexxMutableBufferObject, REXX_VALUE_RexxObjectPtr, REXX_VALUE_RexxStemObject, REXX_VALUE_RexxStringObject, REXX_VALUE_size_t, REXX_VALUE_ssize_t, REXX_VALUE_stringsize_t, REXX_VALUE_uint16_t, REXX_VALUE_uint32_t, REXX_VALUE_uint64_t, REXX_VALUE_uint8_t, REXX_VALUE_uintptr_t, REXX_VALUE_wholenumber_t, Numerics::stringsizeToObject(), TheFalseObject, TheTrueObject, _ValueDescriptor::type, Numerics::uint64ToObject(), _ValueDescriptor::value, _ValueDescriptor::value_CSTRING, _ValueDescriptor::value_double, _ValueDescriptor::value_float, _ValueDescriptor::value_int, _ValueDescriptor::value_int16_t, _ValueDescriptor::value_int32_t, _ValueDescriptor::value_int64_t, _ValueDescriptor::value_int8_t, _ValueDescriptor::value_intptr_t, _ValueDescriptor::value_logical_t, _ValueDescriptor::value_POINTER, _ValueDescriptor::value_RexxObjectPtr, _ValueDescriptor::value_size_t, _ValueDescriptor::value_stringsize_t, _ValueDescriptor::value_uint16_t, _ValueDescriptor::value_uint32_t, _ValueDescriptor::value_uint64_t, _ValueDescriptor::value_uint8_t, _ValueDescriptor::value_uintptr_t, _ValueDescriptor::value_wholenumber_t, and Numerics::wholenumberToObject().
Referenced by callNativeRoutine(), run(), valuesToObject(), and ValueToObject().
void RexxNativeActivation::variablePoolDropVariable | ( | PSHVBLOCK | pshvblock | ) |
Perform a variable pool drop operation.
pshvblock | The operation shared variable block. |
Definition at line 3023 of file RexxNativeActivation.cpp.
References activation, isString(), OREF_NULL, RXSHV_BADN, RXSHV_NEWV, RXSHV_SYDRO, _SHVBLOCK::shvcode, _SHVBLOCK::shvret, and variablePoolGetVariable().
Referenced by variablePoolRequest().
void RexxNativeActivation::variablePoolFetchPrivate | ( | PSHVBLOCK | pshvblock | ) |
Perform a variable pool fetch private operation.
pshvblock | The operation shared variable block. |
Definition at line 3079 of file RexxNativeActivation.cpp.
References activation, copyValue(), Interpreter::getCurrentQueue(), RexxActivation::getProgramArgument(), RexxActivation::getProgramArgumentCount(), Interpreter::getVersionNumber(), new_integer(), new_string(), RexxString::numberValue(), OREF_NULL, RXSHV_BADN, _SHVBLOCK::shvname, _SHVBLOCK::shvret, _SHVBLOCK::shvvalue, _SHVBLOCK::shvvaluelen, and RexxActivation::sourceString().
Referenced by variablePoolRequest().
void RexxNativeActivation::variablePoolFetchVariable | ( | PSHVBLOCK | pshvblock | ) |
Perform a variable pool fetch operation.
pshvblock | The operation shared variable block. |
Definition at line 2950 of file RexxNativeActivation.cpp.
References activation, copyValue(), RexxInternalObject::getValue(), isString(), OREF_NULL, RXSHV_BADN, RXSHV_NEWV, RXSHV_SYFET, _SHVBLOCK::shvcode, _SHVBLOCK::shvret, _SHVBLOCK::shvvalue, _SHVBLOCK::shvvaluelen, and variablePoolGetVariable().
Referenced by variablePoolRequest().
RexxVariableBase * RexxNativeActivation::variablePoolGetVariable | ( | PSHVBLOCK | pshvblock, |
bool | symbolic | ||
) |
Get a variable retriever for the target variable.
pshvblock | The variable pool request block. |
symbolic | The symbolic vs. direct indicator. |
Definition at line 2910 of file RexxNativeActivation.cpp.
References RexxVariableDictionary::getDirectVariableRetriever(), RexxVariableDictionary::getVariableRetriever(), new_string(), OREF_NULL, resetNext(), RXSHV_BADN, _SHVBLOCK::shvname, and _SHVBLOCK::shvret.
Referenced by variablePoolDropVariable(), variablePoolFetchVariable(), and variablePoolSetVariable().
RexxReturnCode RexxNativeActivation::variablePoolInterface | ( | PSHVBLOCK | pshvblock | ) |
Handle a request chain for the variable pool interface API.
pshvblock | The shared variable block for the request. |
Definition at line 2869 of file RexxNativeActivation.cpp.
References getVpavailable(), RXSHV_MEMFL, RXSHV_NOAVL, _SHVBLOCK::shvnext, _SHVBLOCK::shvret, and variablePoolRequest().
Referenced by RexxVariablePool().
void RexxNativeActivation::variablePoolNextVariable | ( | PSHVBLOCK | pshvblock | ) |
Perform a variable pool fetch next operation.
pshvblock | The operation shared variable block. |
Definition at line 3055 of file RexxNativeActivation.cpp.
References copyValue(), fetchNext(), RXSHV_LVAR, _SHVBLOCK::shvname, _SHVBLOCK::shvnamelen, _SHVBLOCK::shvret, _SHVBLOCK::shvvalue, and _SHVBLOCK::shvvaluelen.
Referenced by variablePoolRequest().
void RexxNativeActivation::variablePoolRequest | ( | PSHVBLOCK | pshvblock | ) |
Process a single variable pool request.
pshvblock | The request block for this request. |
Definition at line 3157 of file RexxNativeActivation.cpp.
References RXSHV_BADF, RXSHV_DROPV, RXSHV_FETCH, RXSHV_NEXTV, RXSHV_PRIV, RXSHV_SET, RXSHV_SYDRO, RXSHV_SYFET, RXSHV_SYSET, _SHVBLOCK::shvcode, _SHVBLOCK::shvret, variablePoolDropVariable(), variablePoolFetchPrivate(), variablePoolFetchVariable(), variablePoolNextVariable(), and variablePoolSetVariable().
Referenced by variablePoolInterface().
void RexxNativeActivation::variablePoolSetVariable | ( | PSHVBLOCK | pshvblock | ) |
Perform a variable pool set operation.
pshvblock | The operation shared variable block. |
Definition at line 2991 of file RexxNativeActivation.cpp.
References activation, isString(), new_string(), OREF_NULL, RXSHV_BADN, RXSHV_NEWV, RXSHV_SYSET, _SHVBLOCK::shvcode, _SHVBLOCK::shvret, _SHVBLOCK::shvvalue, and variablePoolGetVariable().
Referenced by variablePoolRequest().
|
protected |
Definition at line 202 of file RexxNativeActivation.hpp.
Referenced by accessCallerContext(), digits(), dropContextVariable(), findCallerClass(), findRexxContext(), form(), fuzz(), getAllContextVariables(), getContextStem(), getContextVariable(), getNumericSettings(), getRexxContext(), getRexxContextExecutable(), getRexxContextObject(), live(), liveGeneral(), RexxNativeActivation(), setContextVariable(), setDigits(), setForm(), setFuzz(), stemSort(), variablePoolDropVariable(), variablePoolFetchPrivate(), variablePoolFetchVariable(), and variablePoolSetVariable().
|
protected |
Definition at line 213 of file RexxNativeActivation.hpp.
Referenced by callNativeRoutine(), callRegisteredRoutine(), objectToValue(), processArguments(), reportSignatureError(), reportStemError(), and run().
|
protected |
Definition at line 198 of file RexxNativeActivation.hpp.
Referenced by callNativeRoutine(), callRegisteredRoutine(), checkConditions(), createStackFrame(), fetchNext(), getActivity(), guardOff(), guardOn(), live(), liveGeneral(), methodVariables(), raiseCondition(), RexxNativeActivation(), and run().
|
protected |
Definition at line 208 of file RexxNativeActivation.hpp.
Referenced by getPositionalArguments(), live(), and liveGeneral().
|
protected |
Definition at line 222 of file RexxNativeActivation.hpp.
Referenced by callNativeRoutine(), callRegisteredRoutine(), dispatch(), forwardMessage(), getNamedArguments(), getPositionalArgument(), getPositionalArguments(), live(), liveGeneral(), and run().
|
protected |
Definition at line 209 of file RexxNativeActivation.hpp.
Referenced by getNamedArguments(), live(), and liveGeneral().
|
protected |
Definition at line 206 of file RexxNativeActivation.hpp.
Referenced by callNativeRoutine(), callRegisteredRoutine(), dispatch(), forwardMessage(), getNamedArguments(), getPositionalArgument(), getPositionalArguments(), live(), liveGeneral(), and run().
|
protected |
Definition at line 199 of file RexxNativeActivation.hpp.
Referenced by dispatch().
|
protected |
Definition at line 220 of file RexxNativeActivation.hpp.
Referenced by compoundElement(), live(), liveGeneral(), resetNext(), and setCompoundElement().
|
protected |
Definition at line 214 of file RexxNativeActivation.hpp.
Referenced by checkConditions(), clearException(), getConditionInfo(), live(), liveGeneral(), run(), and setConditionInfo().
|
protected |
Definition at line 201 of file RexxNativeActivation.hpp.
Referenced by callNativeRoutine(), callRegisteredRoutine(), dispatch(), getMessageName(), live(), liveGeneral(), processArguments(), and run().
|
protected |
Definition at line 223 of file RexxNativeActivation.hpp.
Referenced by callNativeRoutine(), callRegisteredRoutine(), dispatch(), forwardMessage(), getNamedArguments(), live(), liveGeneral(), and run().
|
protected |
Definition at line 219 of file RexxNativeActivation.hpp.
Referenced by live(), liveGeneral(), nextCurrent(), resetNext(), and setNextCurrent().
|
protected |
Definition at line 221 of file RexxNativeActivation.hpp.
Referenced by live(), liveGeneral(), nextStem(), resetNext(), and setNextStem().
|
protected |
Definition at line 218 of file RexxNativeActivation.hpp.
Referenced by nextVariable(), resetNext(), and setNextVariable().
|
protected |
Definition at line 225 of file RexxNativeActivation.hpp.
Referenced by guardOff(), guardOn(), and methodVariables().
|
protected |
Definition at line 217 of file RexxNativeActivation.hpp.
Referenced by guardOff(), guardOn(), live(), liveGeneral(), and methodVariables().
|
protected |
Definition at line 200 of file RexxNativeActivation.hpp.
Referenced by callNativeRoutine(), createStackFrame(), cself(), dispatch(), getReceiver(), getSelf(), getSuper(), guardOn(), live(), liveGeneral(), methodVariables(), processArguments(), and run().
|
protected |
Definition at line 212 of file RexxNativeActivation.hpp.
Referenced by callNativeRoutine(), callRegisteredRoutine(), checkConditions(), live(), liveGeneral(), raiseCondition(), and run().
|
protected |
Definition at line 211 of file RexxNativeActivation.hpp.
Referenced by createLocalReference(), live(), liveGeneral(), and removeLocalReference().
|
protected |
Definition at line 215 of file RexxNativeActivation.hpp.
Referenced by callNativeRoutine(), callRegisteredRoutine(), live(), liveGeneral(), and run().
|
protected |
Definition at line 226 of file RexxNativeActivation.hpp.
Referenced by isStackBase(), and setStackBase().
|
protected |
Definition at line 228 of file RexxNativeActivation.hpp.
Referenced by enableConditionTrap(), and trap().
|
protected |
Definition at line 227 of file RexxNativeActivation.hpp.
Referenced by callNativeRoutine(), callRegisteredRoutine(), checkConditions(), disableConditionTraps(), enableConditionTraps(), run(), and trap().
|
protected |
Definition at line 224 of file RexxNativeActivation.hpp.
Referenced by disableVariablepool(), enableVariablepool(), and getVpavailable().