#include <ObjectClass.hpp>
Static Public Member Functions | |
static size_t | getObjectHeaderSize () |
Public Attributes | |
ObjectHeader | header |
RexxBehaviour * | behaviour |
Additional Inherited Members | |
Protected Member Functions inherited from RexxVirtualBase | |
virtual | ~RexxVirtualBase () |
virtual void | baseVirtual () |
Definition at line 218 of file ObjectClass.hpp.
|
inline |
Definition at line 226 of file ObjectClass.hpp.
Referenced by getObjectHeaderSize().
|
inline |
Definition at line 231 of file ObjectClass.hpp.
|
inlinevirtual |
Definition at line 232 of file ObjectClass.hpp.
|
inline |
Definition at line 243 of file ObjectClass.hpp.
References getObjectDataSize(), and getObjectDataSpace().
Referenced by RexxStack::init(), RexxSaveStack::init(), RexxObject::initializeNewObject(), RexxMemory::newObjects(), RexxNativeActivation::operator new(), RexxActivation::RexxActivation(), RexxActivity::RexxActivity(), RexxNativeActivation::RexxNativeActivation(), and RexxStack::RexxStack().
|
inline |
Definition at line 244 of file ObjectClass.hpp.
References getObjectDataSpace(), and getObjectHeaderSize().
|
inline |
Definition at line 261 of file ObjectClass.hpp.
References ObjectHeader::clearObjectMark(), and header.
RexxObject * RexxInternalObject::clone | ( | ) |
Definition at line 2537 of file ObjectClass.cpp.
References getObjectSize(), header, and new_object().
Referenced by RexxNumberString::clone(), RexxBehaviour::copy(), RexxMutableBuffer::copy(), copy(), RexxObject::copy(), and RexxClass::newRexx().
|
virtual |
Reimplemented in RexxBehaviour, RexxArray, RexxDirectory, RexxList, RexxMutableBuffer, RexxObject, RexxStem, RexxHashTableCollection, and RexxVariableDictionary.
Definition at line 483 of file ObjectClass.cpp.
References clone().
Referenced by RexxList::copy(), RexxHashTableCollection::copy(), RexxVariableDictionary::copy(), RexxSource::messageAssignmentOpNew(), and RexxNativeCode::setSourceObject().
|
virtual |
Reimplemented in RexxInteger, RexxObject, and RexxString.
Definition at line 1101 of file ObjectClass.cpp.
|
virtual |
Reimplemented in RexxInteger, RexxNumberString, RexxObject, RexxStem, and RexxString.
Definition at line 985 of file ObjectClass.cpp.
|
inlinevirtual |
Reimplemented in RexxSourceLiteral, RexxInteger, RexxNumberString, RexxString, RexxCompoundVariable, RexxDotVariable, RexxExpressionFunction, RexxExpressionList, RexxExpressionLogical, RexxExpressionMessage, RexxBinaryOperator, RexxUnaryOperator, RexxStemVariable, and RexxParseVariable.
Definition at line 281 of file ObjectClass.hpp.
References OREF_NULL.
Referenced by RexxExpressionMessage::assign(), RexxInstructionDo::controlSetup(), RexxExpressionFunction::evaluate(), RexxExpressionList::evaluate(), RexxExpressionLogical::evaluate(), RexxExpressionMessage::evaluate(), RexxBinaryOperator::evaluate(), RexxUnaryOperator::evaluate(), RexxInstructionAddress::execute(), RexxInstructionAssignment::execute(), RexxInstructionCall::execute(), RexxInstructionCommand::execute(), RexxInstructionDo::execute(), RexxInstructionExit::execute(), RexxInstructionForward::execute(), RexxInstructionGuard::execute(), RexxInstructionIf::execute(), RexxInstructionInterpret::execute(), RexxInstructionMessage::execute(), RexxInstructionNumeric::execute(), RexxInstructionOptions::execute(), RexxInstructionParse::execute(), RexxInstructionQueue::execute(), RexxInstructionRaise::execute(), RexxInstructionReply::execute(), RexxInstructionReturn::execute(), RexxInstructionSay::execute(), RexxInstructionSignal::execute(), RexxInstructionTrace::execute(), RexxInstructionUseStrict::executeNamedArguments(), RexxInstructionUseStrict::executePositionalArguments(), RexxVariableReference::list(), RexxTrigger::parse(), RexxInstructionDo::untilCondition(), and RexxInstructionDo::whileCondition().
|
inlinevirtual |
Reimplemented in RexxClass, RexxInteger, RexxNumberString, RexxNilObject, RexxPointer, and RexxString.
Definition at line 288 of file ObjectClass.hpp.
References identityHash().
Referenced by hash(), RexxObject::hash(), RexxObject::hashCode(), and RexxHashTable::hashPrimitiveIndex().
|
inline |
Definition at line 240 of file ObjectClass.hpp.
References getObjectHeaderSize(), and getObjectSize().
Referenced by clearObject().
|
inline |
Definition at line 241 of file ObjectClass.hpp.
References getObjectHeaderSize().
Referenced by clearObject().
|
inlinestatic |
Definition at line 239 of file ObjectClass.hpp.
References RexxInternalObject().
Referenced by clearObject(), getObjectDataSize(), and getObjectDataSpace().
|
inline |
Definition at line 236 of file ObjectClass.hpp.
References ObjectHeader::getObjectSize(), and header.
Referenced by RexxMemory::checkSetOref(), clone(), RexxEnvelope::copyBuffer(), RexxMemory::dumpObject(), getObjectDataSize(), ObjectStats::logObject(), MemorySegment::markAllObjects(), RexxHashTable::newInstance(), RexxMemory::newObjects(), RexxListTable::operator new(), RexxEnvelope::puff(), RexxMemory::reSize(), RexxMemory::saveImageMark(), MemorySegmentSet::splitDeadObject(), and MemorySegmentSet::splitSegment().
|
inline |
Definition at line 273 of file ObjectClass.hpp.
References behaviour.
Referenced by isSameType(), and RexxMemory::objectReferenceOK().
size_t RexxInternalObject::getObjectTypeNumber | ( | ) |
Definition at line 2287 of file ObjectClass.cpp.
References behaviour, and RexxBehaviour::getClassType().
Referenced by isObjectType(), MemoryStats::logObject(), and printObject().
|
inlinevirtual |
Reimplemented in RexxInteger, RexxNumberString, RexxString, RexxCompoundVariable, RexxStemVariable, and RexxParseVariable.
Definition at line 284 of file ObjectClass.hpp.
References OREF_NULL.
Referenced by RexxNativeActivation::getContextVariable(), and RexxNativeActivation::getObjectVariable().
|
inlinevirtual |
Reimplemented in RexxInteger, RexxNumberString, RexxString, RexxCompoundVariable, RexxStemVariable, and RexxParseVariable.
Definition at line 285 of file ObjectClass.hpp.
References OREF_NULL.
|
inlinevirtual |
Reimplemented in RexxInteger, RexxString, RexxDotVariable, RexxStemVariable, RexxParseVariable, RexxNumberString, and RexxCompoundVariable.
Definition at line 282 of file ObjectClass.hpp.
References OREF_NULL.
Referenced by RexxCompoundTail::buildTail(), BUILTIN(), RexxInstructionDo::checkControl(), RexxInstructionDo::controlSetup(), RexxInstructionDo::execute(), RexxArray::extendMulti(), RexxNativeActivation::getContextStem(), RexxArray::indexToArray(), RexxActivation::raise(), AttributeGetterCode::run(), RexxArray::validateIndex(), and RexxNativeActivation::variablePoolFetchVariable().
|
inlinevirtual |
Reimplemented in RexxInteger, RexxString, RexxStemVariable, RexxParseVariable, RexxCompoundVariable, and RexxNumberString.
Definition at line 283 of file ObjectClass.hpp.
References OREF_NULL.
|
inlinevirtual |
Reimplemented in RexxClass, RexxObject, and RexxString.
Definition at line 287 of file ObjectClass.hpp.
References getHashValue().
|
inline |
Definition at line 254 of file ObjectClass.hpp.
References ObjectHeader::hasNoReferences(), and header.
Referenced by RexxMemory::mark().
|
inline |
Definition at line 253 of file ObjectClass.hpp.
References ObjectHeader::hasReferences(), and header.
Referenced by RexxMemory::killOrphans(), and RexxMemory::restoreImage().
void RexxInternalObject::hasUninit | ( | ) |
Definition at line 2028 of file ObjectClass.cpp.
References RexxMemory::addUninitObject(), and memoryObject.
Referenced by RexxObject::defMethod(), RexxMethod::newFileRexx(), RoutineClass::newFileRexx(), RexxIdentityTable::newRexx(), RexxList::newRexx(), RexxMethod::newRexx(), RexxQueue::newRexx(), RoutineClass::newRexx(), RexxStem::newRexx(), RexxSupplierClass::newRexx(), RexxTable::newRexx(), WeakReference::newRexx(), RexxDirectory::newRexx(), RexxObject::operator new(), RexxArray::operator new(), RexxBlock::RexxBlock(), and RexxClass::subclass().
|
inline |
Definition at line 290 of file ObjectClass.hpp.
References HASHOREF().
Referenced by getHashValue(), RexxObject::identityHashRexx(), RexxNilObject::RexxNilObject(), and RexxMemory::runUninits().
|
virtual |
Retrieve the method instance for an object's defined method.
method_name | The method name. |
Reimplemented in RexxInteger, RexxNumberString, and RexxObject.
Definition at line 259 of file ObjectClass.cpp.
References TheNilObject.
|
virtual |
Return a supplier containing the methods implemented by an object. Depending on the argument, this is either A) all of the methods, B) just the explicitly set instance methods, or C) the methods provided by a given class.
class_object | The target class object (optional). |
Reimplemented in RexxInteger, RexxNumberString, and RexxObject.
Definition at line 300 of file ObjectClass.cpp.
References OREF_NULL.
|
virtual |
Reimplemented in RexxString, RexxInteger, RexxNumberString, RexxObject, and RexxStem.
Definition at line 993 of file ObjectClass.cpp.
References TheNilObject.
bool RexxInternalObject::isBaseClass | ( | ) |
Test if an object instance is a true instance of a primitive class.
Definition at line 176 of file ObjectClass.cpp.
References behaviour, and RexxBehaviour::isPrimitive().
Referenced by RexxString::compareTo(), RexxObject::hash(), RexxObject::isEqual(), RexxString::isEqual(), RexxObject::makeArray(), RexxObject::makeString(), RexxString::makeString(), RexxObject::objectName(), RexxObject::requestArray(), RexxObject::requestDirectory(), RexxObject::requestInteger(), RexxObject::requestNumber(), RexxObject::requestString(), RexxObject::requestStringNoNOSTRING(), RexxObject::requestUnsignedNumber(), RexxObject::requiredInteger(), RexxObject::requiredNumber(), and RexxObject::requiredString().
|
virtual |
Reimplemented in RexxClass, RexxInteger, RexxNumberString, RexxObject, and RexxString.
Definition at line 121 of file ObjectClass.cpp.
|
virtual |
Test if an internal object is an instance of another class.
other | The test class. |
Reimplemented in RexxInteger, RexxNumberString, and RexxObject.
Definition at line 216 of file ObjectClass.cpp.
|
inline |
Definition at line 265 of file ObjectClass.hpp.
References header, and ObjectHeader::isNewSpace().
Referenced by RexxArray::empty(), RexxMemory::orphanCheckMark(), RexxMemory::saveImageMark(), and RexxMemory::setOref().
|
inline |
Definition at line 258 of file ObjectClass.hpp.
References header, and ObjectHeader::isNonPrimitive().
Referenced by RexxEnvelope::puff(), RexxMemory::restoreImage(), and RexxMemory::saveImage().
|
inline |
Definition at line 263 of file ObjectClass.hpp.
References header, and ObjectHeader::isObjectDead().
Referenced by RexxMemory::checkUninit().
|
inline |
Definition at line 262 of file ObjectClass.hpp.
References header, and ObjectHeader::isObjectLive().
Referenced by RexxMemory::checkWeakReferences(), RexxMemory::orphanCheckMark(), RexxEnvelope::puff(), and RexxMemory::saveImageMark().
|
inline |
Definition at line 259 of file ObjectClass.hpp.
References header, and ObjectHeader::isObjectMarked().
Referenced by RexxSaveStack::live().
|
inline |
Definition at line 274 of file ObjectClass.hpp.
References behaviour.
|
inline |
Definition at line 275 of file ObjectClass.hpp.
References getObjectTypeNumber().
|
inline |
Definition at line 264 of file ObjectClass.hpp.
References header, and ObjectHeader::isOldSpace().
Referenced by RexxMemory::checkSetOref(), copyElements(), RexxActivity::generateProgramInformation(), RexxList::getFree(), RexxSource::isInternalCode(), RexxArray::resize(), RexxActivation::RexxActivation(), RexxActivation::run(), and RexxSource::traceBack().
|
inline |
Definition at line 257 of file ObjectClass.hpp.
References header, and ObjectHeader::isPrimitive().
Referenced by RexxMessage::newRexx().
|
inline |
Definition at line 269 of file ObjectClass.hpp.
References header, and ObjectHeader::isProxyObject().
Referenced by RexxEnvelope::flattenReference(), and RexxString::unflatten().
|
inline |
Definition at line 276 of file ObjectClass.hpp.
References behaviour, and getObjectType().
Referenced by RexxInteger::comp().
bool RexxInternalObject::isSubClassOrEnhanced | ( | ) |
Test if an object instance is an enhanced version of a primitive class or a subclass of the primitive class.
Definition at line 162 of file ObjectClass.cpp.
References behaviour, and RexxBehaviour::isNonPrimitive().
Referenced by RexxInteger::isEqual(), and RexxNumberString::isEqual().
|
virtual |
Convert an object to a logical value without raising an error.
result | The converted value. |
Reimplemented in RexxInteger, RexxNumberString, RexxObject, and RexxString.
Definition at line 442 of file ObjectClass.cpp.
|
virtual |
Reimplemented in RexxArray, RexxDirectory, RexxInteger, RexxList, RexxMutableBuffer, RexxNumberString, RexxObject, RexxStem, RexxString, RexxHashTableCollection, and RexxHashTable.
Definition at line 1151 of file ObjectClass.cpp.
References TheNilObject.
|
inline |
Definition at line 268 of file ObjectClass.hpp.
References header, and ObjectHeader::makeProxiedObject().
Referenced by RexxString::newProxy(), and RexxClass::operator new().
|
virtual |
Reimplemented in RexxClass, RexxHashTableCollection, and RexxMemory.
Definition at line 106 of file ObjectClass.cpp.
References new_proxy(), and TheNilObject.
Referenced by RexxEnvelope::flattenReference().
|
virtual |
Reimplemented in RexxInteger, RexxMutableBuffer, RexxNumberString, RexxObject, StackFrameClass, and RexxString.
Definition at line 1092 of file ObjectClass.cpp.
References TheNilObject.
|
virtual |
Reimplemented in RexxInteger, RexxNumberString, RexxObject, RexxStem, and RexxString.
Definition at line 1002 of file ObjectClass.cpp.
References OREF_NULL.
|
virtual |
Reimplemented in RexxInteger, RexxNumberString, RexxObject, RexxStem, and RexxString.
Definition at line 977 of file ObjectClass.cpp.
|
virtual |
Reimplemented in RexxInteger, RexxNumberString, RexxObject, RexxStem, and RexxString.
Definition at line 969 of file ObjectClass.cpp.
|
inline |
Definition at line 224 of file ObjectClass.hpp.
|
inline |
Definition at line 225 of file ObjectClass.hpp.
|
inline |
Definition at line 223 of file ObjectClass.hpp.
void * RexxInternalObject::operator new | ( | size_t | size, |
RexxClass * | classObject | ||
) |
Definition at line 495 of file ObjectClass.cpp.
References new_object(), and setBehaviour().
void * RexxInternalObject::operator new | ( | size_t | size, |
RexxClass * | classObject, | ||
RexxObject ** | arguments, | ||
size_t | argCount, | ||
size_t | named_argCount | ||
) |
Definition at line 508 of file ObjectClass.cpp.
References new_object(), and setBehaviour().
|
inline |
Definition at line 234 of file ObjectClass.hpp.
|
virtual |
Reimplemented in RexxInteger, RexxMutableBuffer, RexxNumberString, RexxObject, and RexxString.
Definition at line 1109 of file ObjectClass.cpp.
References TheNilObject.
void RexxInternalObject::printObject | ( | ) |
Definition at line 2770 of file ObjectClass.cpp.
References getObjectTypeNumber().
void RexxInternalObject::removedUninit | ( | ) |
Definition at line 2295 of file ObjectClass.cpp.
References memoryObject, and RexxMemory::removeUninitObject().
|
inline |
Definition at line 277 of file ObjectClass.hpp.
References behaviour.
Referenced by RexxObject::copy(), RexxMemory::initialize(), RexxObject::initializeNewObject(), RexxMethod::newFileRexx(), RoutineClass::newFileRexx(), RexxIdentityTable::newRexx(), RexxList::newRexx(), RexxMessage::newRexx(), RexxMethod::newRexx(), RexxQueue::newRexx(), RexxRelation::newRexx(), RoutineClass::newRexx(), RexxStem::newRexx(), RexxString::newRexx(), RexxSupplierClass::newRexx(), RexxTable::newRexx(), WeakReference::newRexx(), RexxDirectory::newRexx(), RexxMutableBuffer::operator new(), RexxList::operator new(), RexxQueue::operator new(), operator new(), RexxObject::operator new(), RexxStack::operator new(), RexxClass::operator new(), RexxArray::operator new(), RexxBehaviour::restore(), RexxBlock::RexxBlock(), RexxMemory::setUpMemoryTables(), and RexxSource::sourceNewObject().
|
inline |
Definition at line 252 of file ObjectClass.hpp.
References header, and ObjectHeader::setHasNoReferences().
Referenced by RexxTable::addOffset(), RexxNativeActivation::callNativeRoutine(), RexxNativeActivation::callRegisteredRoutine(), RexxActivity::cleanupStackFrame(), RexxString::newString(), RexxString::newUpperString(), RexxInteger::operator new(), RexxPointer::operator new(), RexxBuffer::operator new(), RexxNumberString::operator new(), RexxEnvelope::pack(), RexxActivation::popBlock(), RexxActivity::popStackFrame(), RexxString::rawString(), RexxActivation::RexxActivation(), RexxNativeActivation::RexxNativeActivation(), RexxNativeActivation::run(), and RexxString::setNumberString().
|
inline |
Definition at line 251 of file ObjectClass.hpp.
References header, and ObjectHeader::setHasReferences().
Referenced by RexxString::createNumberString(), RexxObject::getObjectVariables(), RexxString::numberString(), RexxInteger::primitiveMakeString(), RexxActivation::RexxActivation(), RexxString::setNumberString(), RexxNumberString::setString(), RexxInteger::setString(), RexxInteger::stringValue(), and RexxNumberString::stringValue().
|
inline |
Definition at line 248 of file ObjectClass.hpp.
References header, and ObjectHeader::initHeader().
|
inline |
Definition at line 247 of file ObjectClass.hpp.
References header, and ObjectHeader::initHeader().
|
inline |
Definition at line 266 of file ObjectClass.hpp.
References header, and ObjectHeader::setNewSpace().
Referenced by RexxEnvelope::copyBuffer().
|
inline |
Definition at line 256 of file ObjectClass.hpp.
References header, and ObjectHeader::setNonPrimitive().
|
inline |
Definition at line 250 of file ObjectClass.hpp.
References header, and ObjectHeader::setObjectMark().
Referenced by RexxMemory::mark(), RexxMemory::orphanCheckMark(), RexxEnvelope::puff(), RexxMemory::restoreObjectMark(), and RexxMemory::saveImageMark().
|
inline |
Definition at line 260 of file ObjectClass.hpp.
References header, and ObjectHeader::setObjectMark().
|
inline |
Definition at line 237 of file ObjectClass.hpp.
References header, and ObjectHeader::setObjectSize().
Referenced by RexxHashTable::newInstance(), RexxMemory::newObjects(), RexxListTable::operator new(), RexxEnvelope::puff(), RexxMemory::reSize(), RexxBehaviour::restore(), and RexxMemory::RexxMemory().
|
inline |
Definition at line 267 of file ObjectClass.hpp.
References header, and ObjectHeader::setOldSpace().
Referenced by RexxMemory::restore(), and RexxBehaviour::restore().
|
inline |
Definition at line 255 of file ObjectClass.hpp.
References header, and ObjectHeader::setPrimitive().
|
inline |
Definition at line 245 of file ObjectClass.hpp.
Referenced by RexxObject::initializeNewObject(), and RexxNilObject::operator new().
|
virtual |
Reimplemented in RexxInteger, RexxNumberString, RexxObject, RexxPointer, StackFrameClass, RexxStem, and RexxString.
Definition at line 1075 of file ObjectClass.cpp.
Referenced by RexxMemory::getGlobalName().
|
virtual |
Reimplemented in RexxInteger, RexxNumberString, RexxObject, and RexxString.
Definition at line 462 of file ObjectClass.cpp.
References reportException().
|
inlinevirtual |
Reimplemented in RexxObject.
Definition at line 286 of file ObjectClass.hpp.
|
virtual |
Reimplemented in RexxInteger, RexxObject, RexxStem, RexxNumberString, and RexxString.
Definition at line 961 of file ObjectClass.cpp.
|
virtual |
Reimplemented in RexxInteger, RexxObject, RexxStem, RexxNumberString, and RexxString.
Definition at line 953 of file ObjectClass.cpp.
RexxBehaviour* RexxInternalObject::behaviour |
Definition at line 318 of file ObjectClass.hpp.
Referenced by RexxObject::behaviourObject(), callOperatorMethod(), RexxObject::classObject(), RexxObject::copy(), RexxVariableDictionary::copy(), RexxEnvelope::copyBuffer(), RexxClass::createClassBehaviour(), RexxObject::defaultName(), RexxClass::defineClassMethod(), RexxMemory::defineKernelMethod(), RexxMemory::definePrivateKernelMethod(), RexxMemory::defineProtectedKernelMethod(), RexxObject::defMethod(), RexxObject::defMethods(), RexxClass::defmeths(), RexxClass::enhanced(), RexxClass::getBehaviourDictionary(), getObjectType(), getObjectTypeNumber(), RexxMemory::gutCheck(), RexxObject::hasMethod(), RexxClass::inherit(), RexxObject::instanceMethod(), RexxObject::instanceMethods(), isBaseClass(), RexxClass::isEqual(), isObjectType(), isSameType(), isSubClassOrEnhanced(), RexxMemory::killOrphans(), RexxMemory::mark(), RexxMemory::markObjectsMain(), RexxObject::messageSend(), RexxObject::methodLookup(), RexxClass::methods(), RexxClass::newRexx(), RexxClass::operator new(), RexxMemory::orphanCheckMark(), RexxObject::processUnknown(), RexxEnvelope::puff(), RexxClass::removeClassMethod(), RexxMemory::restoreImage(), RexxBehaviour::RexxBehaviour(), RexxBlock::RexxBlock(), RexxMemory::saveImage(), RexxMemory::saveImageMark(), RexxList::sectionSubclass(), RexxQueue::sectionSubclass(), RexxArray::sectionSubclass(), RexxMessage::send(), setBehaviour(), RexxMemory::setOref(), RexxClass::subclass(), RexxClass::subClassable(), RexxObject::superMethod(), RexxObject::superScope(), RexxObject::unsetMethod(), and RexxClass::updateSubClasses().
ObjectHeader RexxInternalObject::header |
Definition at line 317 of file ObjectClass.hpp.
Referenced by clearObjectMark(), clone(), getObjectSize(), hasNoReferences(), hasReferences(), RexxObject::initializeNewObject(), isNewSpace(), isNonPrimitive(), isObjectDead(), isObjectLive(), isObjectMarked(), isOldSpace(), isPrimitive(), isProxyObject(), makeProxiedObject(), RexxBehaviour::RexxBehaviour(), setHasNoReferences(), setHasReferences(), setInitHeader(), setNewSpace(), setNonPrimitive(), setObjectLive(), setObjectMark(), setObjectSize(), setOldSpace(), and setPrimitive().