RexxMemory Class Reference

#include <RexxMemory.hpp>

Inheritance diagram for RexxMemory:
[legend]

Public Member Functions

 RexxMemory ()
 
 RexxMemory (RESTORETYPE restoreType)
 
 operator RexxObject * ()
 
RexxObjectoperator= (DeadObject *d)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
RexxObjectmakeProxy (RexxEnvelope *)
 
void initialize (bool restoringImage, const char *imageTarget)
 
MemorySegmentnewSegment (size_t requestLength, size_t minLength)
 
MemorySegmentnewLargeSegment (size_t requestLength, size_t minLength)
 
RexxObjectoldObject (size_t size)
 
RexxObjectnewObject (size_t size)
 
RexxObjectnewObject (size_t size, size_t type)
 
RexxObjecttemporaryObject (size_t size)
 
RexxArraynewObjects (size_t size, size_t count, size_t objectType)
 
void reSize (RexxObject *, size_t)
 
void checkUninit ()
 
void runUninits ()
 
void removeUninitObject (RexxObject *obj)
 
void addUninitObject (RexxObject *obj)
 
bool isPendingUninit (RexxObject *obj)
 
void checkUninitQueue ()
 
void markObjects (void)
 
void markObjectsMain (RexxObject *)
 
void killOrphans (RexxObject *)
 
void mark (RexxObject *)
 
void markGeneral (void *)
 
void collect ()
 
RexxObjectsaveObject (RexxInternalObject *saveObj)
 
void discardObject (RexxInternalObject *obj)
 
void removeHold (RexxInternalObject *obj)
 
void discardHoldObject (RexxInternalObject *obj)
 
RexxObjectholdObject (RexxInternalObject *obj)
 
void saveImage (const char *imageTarget)
 
bool savingImage ()
 
bool restoringImage ()
 
RexxObjectsetDump (RexxObject *)
 
bool queryDump ()
 
RexxObjectdump ()
 
void dumpObject (RexxObject *objectRef, FILE *outfile)
 
void setObjectOffset (size_t offset)
 
void setEnvelope (RexxEnvelope *)
 
void setMarkTable (RexxTable *marktable)
 
void setOrphanCheck (bool orphancheck)
 
RexxObjectcheckSetOref (RexxObject *, RexxObject **, RexxObject *, const char *, int)
 
RexxObjectsetOref (void *index, RexxObject *value)
 
RexxStackgetFlattenStack ()
 
void returnFlattenStack ()
 
RexxObjectreclaim ()
 
RexxObjectsetParms (RexxObject *, RexxObject *)
 
RexxObjectgutCheck ()
 
void memoryPoolAdded (MemorySegmentPool *)
 
void shutdown ()
 
void liveStackFull ()
 
void dumpMemoryProfile ()
 
char * allocateImageBuffer (size_t size)
 
void logVerboseOutput (const char *message, void *sub1, void *sub2)
 
void verboseMessage (const char *message)
 
void verboseMessage (const char *message, size_t sub1)
 
void verboseMessage (const char *message, size_t sub1, size_t sub2)
 
void verboseMessage (const char *message, const char *sub1, size_t sub2)
 
void logObjectStats (RexxObject *obj)
 
void pushSaveStack (RexxObject *obj)
 
void removeSavedObject (RexxObject *obj)
 
void disableOrefChecks ()
 
void enableOrefChecks ()
 
void clearSaveStack ()
 
void checkAllocs ()
 
RexxObjectdumpImageStats ()
 
void scavengeSegmentSets (MemorySegmentSet *requester, size_t allocationLength)
 
void setUpMemoryTables (RexxIdentityTable *old2newTable)
 
void collectAndUninit (bool clearStack)
 
void lastChanceUninit ()
 
RexxDirectorygetGlobalStrings ()
 
void addWeakReference (WeakReference *ref)
 
void checkWeakReferences ()
 
- Public Member Functions inherited from RexxInternalObject
void * operator new (size_t, RexxClass *)
 
void * operator new (size_t, RexxClass *, RexxObject **, size_t, size_t)
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *)
 
void operator delete (void *p, void *ptr)
 
 RexxInternalObject ()
 
 RexxInternalObject (RESTORETYPE restoreType)
 
virtual ~RexxInternalObject ()
 
 operator RexxObject * ()
 
size_t getObjectSize ()
 
void setObjectSize (size_t s)
 
size_t getObjectDataSize ()
 
void * getObjectDataSpace ()
 
void clearObject ()
 
void clearObject (size_t l)
 
void setVirtualFunctions (void *t)
 
void setInitHeader (size_t s, size_t markword)
 
void setInitHeader (size_t markword)
 
void setObjectLive (size_t markword)
 
void setHasReferences ()
 
void setHasNoReferences ()
 
bool hasReferences ()
 
bool hasNoReferences ()
 
void setPrimitive ()
 
void setNonPrimitive ()
 
bool isPrimitive ()
 
bool isNonPrimitive ()
 
bool isObjectMarked (size_t markword)
 
void setObjectMark (size_t markword)
 
void clearObjectMark ()
 
bool isObjectLive (size_t mark)
 
bool isObjectDead (size_t mark)
 
bool isOldSpace ()
 
bool isNewSpace ()
 
void setNewSpace ()
 
void setOldSpace ()
 
void makeProxiedObject ()
 
bool isProxyObject ()
 
bool isSubClassOrEnhanced ()
 
bool isBaseClass ()
 
size_t getObjectTypeNumber ()
 
RexxBehaviourgetObjectType ()
 
bool isObjectType (RexxBehaviour *b)
 
bool isObjectType (size_t t)
 
bool isSameType (RexxInternalObject *o)
 
void setBehaviour (RexxBehaviour *b)
 
virtual RexxObjectcopy ()
 
virtual RexxObjectevaluate (RexxActivation *, RexxExpressionStack *)
 
virtual RexxObjectgetValue (RexxActivation *)
 
virtual RexxObjectgetValue (RexxVariableDictionary *)
 
virtual RexxObjectgetRealValue (RexxActivation *)
 
virtual RexxObjectgetRealValue (RexxVariableDictionary *)
 
virtual void uninit ()
 
virtual HashCode hash ()
 
virtual HashCode getHashValue ()
 
HashCode identityHash ()
 
virtual bool truthValue (int)
 
virtual bool logicalValue (logical_t &)
 
virtual RexxStringmakeString ()
 
virtual void copyIntoTail (RexxCompoundTail *buffer)
 
virtual RexxStringprimitiveMakeString ()
 
virtual RexxArraymakeArray ()
 
virtual RexxStringstringValue ()
 
virtual RexxIntegerintegerValue (size_t)
 
virtual bool numberValue (wholenumber_t &result, size_t precision)
 
virtual bool numberValue (wholenumber_t &result)
 
virtual bool unsignedNumberValue (stringsize_t &result, size_t precision)
 
virtual bool unsignedNumberValue (stringsize_t &result)
 
virtual bool doubleValue (double &result)
 
virtual RexxNumberStringnumberString ()
 
virtual bool isEqual (RexxObject *)
 
virtual bool isInstanceOf (RexxClass *)
 
virtual RexxMethodinstanceMethod (RexxString *)
 
virtual RexxSupplierinstanceMethods (RexxClass *)
 
void hasUninit ()
 
void removedUninit ()
 
void printObject ()
 
RexxObjectclone ()
 
- Public Member Functions inherited from RexxVirtualBase
virtual RexxObjectunflatten (RexxEnvelope *)
 

Static Public Member Functions

static void createLocks ()
 
static void closeLocks ()
 
static void restore ()
 
static void buildVirtualFunctionTable ()
 
static void create ()
 
static void createImage (const char *imageTarget)
 
static RexxStringgetGlobalName (const char *value)
 
static void createStrings ()
 
static RexxArraysaveStrings ()
 
static void restoreStrings (RexxArray *stringArray)
 
- Static Public Member Functions inherited from RexxInternalObject
static size_t getObjectHeaderSize ()
 

Public Attributes

size_t markWord
 
int markReason
 
RexxVariablevariableCache
 
GlobalProtectedObjectprotectedObjects
 
- Public Attributes inherited from RexxInternalObject
ObjectHeader header
 
RexxBehaviourbehaviour
 

Static Public Attributes

static void * virtualFunctionTable [] = {NULL}
 
static PCPPM exportedMethods []
 
static RexxDirectoryenvironment = OREF_NULL
 
static RexxDirectoryfunctionsDir = OREF_NULL
 
static RexxDirectorycommonRetrievers = OREF_NULL
 
static RexxDirectorykernel = OREF_NULL
 
static RexxDirectorysystem = OREF_NULL
 

Private Types

enum  {
  saveArray_ENV = 1 , saveArray_KERNEL , saveArray_NAME_STRINGS , saveArray_TRUE ,
  saveArray_FALSE , saveArray_NIL , saveArray_GLOBAL_STRINGS , saveArray_CLASS ,
  saveArray_PBEHAV , saveArray_PACKAGES , saveArray_NULLA , saveArray_NULLPOINTER ,
  saveArray_SYSTEM , saveArray_FUNCTIONS , saveArray_COMMON_RETRIEVERS , saveArray_highest = saveArray_COMMON_RETRIEVERS
}
 

Private Member Functions

void checkLiveStack ()
 
void pushLiveStack (RexxObject *obj)
 
RexxObjectpopLiveStack ()
 
void bumpMarkWord ()
 
void restoreMark (RexxObject *markObject, RexxObject **pMarkObject)
 
void unflattenMark (RexxObject *markObject, RexxObject **pMarkObject)
 
void restoreObjectMark (RexxObject *markObject, RexxObject **pMarkObject)
 
void saveImageMark (RexxObject *markObject, RexxObject **pMarkObject)
 
void orphanCheckMark (RexxObject *markObject, RexxObject **pMarkObject)
 
bool inObjectStorage (RexxObject *obj)
 
bool inSharedObjectStorage (RexxObject *obj)
 
bool objectReferenceOK (RexxObject *o)
 
void restoreImage ()
 

Static Private Member Functions

static void defineKernelMethod (const char *name, RexxBehaviour *behaviour, PCPPM entryPoint, size_t arguments, bool named_arguments=false)
 
static void defineProtectedKernelMethod (const char *name, RexxBehaviour *behaviour, PCPPM entryPoint, size_t arguments, bool named_arguments=false)
 
static void definePrivateKernelMethod (const char *name, RexxBehaviour *behaviour, PCPPM entryPoint, size_t arguments, bool named_arguments=false)
 

Private Attributes

RexxStackliveStack
 
RexxStackflattenStack
 
RexxSaveStacksaveStack
 
RexxIdentityTablesaveTable
 
RexxTablemarkTable
 
RexxIdentityTableold2new
 
RexxIdentityTableuninitTable
 
size_t pendingUninits
 
bool processingUninits
 
MemorySegmentPoolfirstPool
 
MemorySegmentPoolcurrentPool
 
OldSpaceSegmentSet oldSpaceSegments
 
NormalSegmentSet newSpaceNormalSegments
 
LargeSegmentSet newSpaceLargeSegments
 
char * image_buffer
 
size_t image_offset
 
size_t relocation
 
bool dumpEnable
 
bool saveimage
 
bool restoreimage
 
bool checkSetOK
 
bool orphanCheck
 
size_t objOffset
 
RexxEnvelopeenvelope
 
RexxStackoriginalLiveStack
 
MemoryStatsimageStats
 
size_t allocations
 
size_t collections
 
WeakReferenceweakReferenceList
 

Static Private Attributes

static RexxDirectoryglobalStrings = OREF_NULL
 
static SysMutex flattenMutex
 
static SysMutex unflattenMutex
 
static SysMutex envelopeMutex
 

Additional Inherited Members

- Protected Member Functions inherited from RexxVirtualBase
virtual ~RexxVirtualBase ()
 
virtual void baseVirtual ()
 

Detailed Description

Definition at line 169 of file RexxMemory.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
saveArray_ENV 
saveArray_KERNEL 
saveArray_NAME_STRINGS 
saveArray_TRUE 
saveArray_FALSE 
saveArray_NIL 
saveArray_GLOBAL_STRINGS 
saveArray_CLASS 
saveArray_PBEHAV 
saveArray_PACKAGES 
saveArray_NULLA 
saveArray_NULLPOINTER 
saveArray_SYSTEM 
saveArray_FUNCTIONS 
saveArray_COMMON_RETRIEVERS 
saveArray_highest 

Definition at line 319 of file RexxMemory.hpp.

Constructor & Destructor Documentation

◆ RexxMemory() [1/2]

◆ RexxMemory() [2/2]

RexxMemory::RexxMemory ( RESTORETYPE  restoreType)
inline

Definition at line 176 of file RexxMemory.hpp.

Member Function Documentation

◆ addUninitObject()

void RexxMemory::addUninitObject ( RexxObject obj)

◆ addWeakReference()

void RexxMemory::addWeakReference ( WeakReference ref)

◆ allocateImageBuffer()

char * RexxMemory::allocateImageBuffer ( size_t  size)

Definition at line 1080 of file RexxMemory.cpp.

References oldObject().

Referenced by SystemInterpreter::loadImage().

◆ buildVirtualFunctionTable()

void RexxMemory::buildVirtualFunctionTable ( )
static

Definition at line 173 of file VirtualFunctionTable.cpp.

References getVftPointer(), RESTOREIMAGE, T_AbstractCode, T_Activation, T_ActivationFrameBuffer, T_Activity, T_AddressInstruction, T_Array, T_ArrayClass, T_AssignmentInstruction, T_AttributeGetterCode, T_AttributeSetterCode, T_Behaviour, T_BinaryOperatorTerm, T_Buffer, T_BufferClass, T_CallInstruction, T_Class, T_ClassClass, T_ClassDirective, T_Clause, T_CommandHandler, T_CommandInstruction, T_CompoundElement, T_CompoundVariableTerm, T_ConstantGetterCode, T_CPPCode, T_Directory, T_DirectoryClass, T_DoBlock, T_DoInstruction, T_DotVariableTerm, T_DropInstruction, T_ElseInstruction, T_EndIfInstruction, T_EndInstruction, T_Envelope, T_ExitInstruction, T_ExposeInstruction, T_ExtensionDirective, T_ForwardInstruction, T_FunctionCallTerm, T_GuardInstruction, T_HashTable, T_IdentityTable, T_IdentityTableClass, T_IfInstruction, T_IndirectVariableTerm, T_Instruction, T_Integer, T_IntegerClass, T_InternalStack, T_InterpreterInstance, T_InterpretInstruction, T_LabelInstruction, T_LeaveInstruction, T_LibraryDirective, T_LibraryPackage, T_List, T_ListClass, T_ListTable, T_ListTerm, T_LogicalTerm, T_Memory, T_Message, T_MessageClass, T_MessageInstruction, T_MessageSendTerm, T_Method, T_MethodClass, T_MutableBuffer, T_MutableBufferClass, T_NativeActivation, T_NativeMethod, T_NativeRoutine, T_NilObject, T_NopInstruction, T_NumberString, T_NumberStringClass, T_NumericInstruction, T_Object, T_ObjectClass, T_OptionsInstruction, T_OtherwiseInstruction, T_Package, T_PackageClass, T_ParseInstruction, T_ParseTrigger, T_Pointer, T_PointerClass, T_ProcedureInstruction, T_Queue, T_QueueClass, T_QueueInstruction, T_RaiseInstruction, T_RegisteredRoutine, T_Relation, T_RelationClass, T_ReplyInstruction, T_RequiresDirective, T_ReturnInstruction, T_RexxBlock, T_RexxBlockClass, T_RexxCode, T_RexxContext, T_RexxContextClass, T_RexxSource, T_RexxText, T_RexxTextClass, T_Routine, T_RoutineClass, T_SayInstruction, T_SecurityManager, T_SelectInstruction, T_SignalInstruction, T_SmartBuffer, T_SourceLiteral, T_Stack, T_StackFrame, T_StackFrameClass, T_Stem, T_StemClass, T_StemVariableTerm, T_String, T_StringClass, T_Supplier, T_SupplierClass, T_Table, T_TableClass, T_ThenInstruction, T_Token, T_TraceInstruction, T_UnaryOperatorTerm, T_UpperInstruction, T_UseInstruction, T_Variable, T_VariableDictionary, T_VariableTerm, T_WeakReference, T_WeakReferenceClass, and virtualFunctionTable.

Referenced by initialize().

◆ bumpMarkWord()

void RexxMemory::bumpMarkWord ( )
inlineprivate

Definition at line 343 of file RexxMemory.hpp.

References MarkMask, and markWord.

Referenced by collect(), and saveImage().

◆ checkAllocs()

void RexxMemory::checkAllocs ( )

◆ checkLiveStack()

void RexxMemory::checkLiveStack ( )
inlineprivate

Definition at line 340 of file RexxMemory.hpp.

References RexxStack::checkRoom(), liveStack, and liveStackFull().

Referenced by pushLiveStack().

◆ checkSetOref()

◆ checkUninit()

◆ checkUninitQueue()

void RexxMemory::checkUninitQueue ( )
inline

Definition at line 200 of file RexxMemory.hpp.

References pendingUninits, processingUninits, runUninits(), and verboseMessage().

Referenced by RexxActivation::run().

◆ checkWeakReferences()

void RexxMemory::checkWeakReferences ( )

◆ clearSaveStack()

void RexxMemory::clearSaveStack ( )
inline

Definition at line 269 of file RexxMemory.hpp.

References saveStack, RexxStack::size, and RexxStack::stack.

Referenced by collectAndUninit().

◆ closeLocks()

void RexxMemory::closeLocks ( )
static

Definition at line 2281 of file RexxMemory.cpp.

References SysMutex::close(), envelopeMutex, flattenMutex, and unflattenMutex.

Referenced by Interpreter::processShutdown().

◆ collect()

◆ collectAndUninit()

void RexxMemory::collectAndUninit ( bool  clearStack)

Force a last-gasp garbage collection and running of the uninits during interpreter instance shutdown. This is an attempt to ensure that all objects with uninit methods get a chance to clean up prior to termination.

Definition at line 491 of file RexxMemory.cpp.

References clearSaveStack(), collect(), runUninits(), and verboseMessage().

Referenced by lastChanceUninit(), and InterpreterInstance::terminate().

◆ create()

void RexxMemory::create ( )
static

◆ createImage()

void RexxMemory::createImage ( const char *  imageTarget)
static

Initialize the Rexx memory environment during an image built.

Parameters
imageTargetThe location to save the created image file.

Definition at line 146 of file Setup.cpp.

References A_COUNT, RexxString::abbrev(), RexxInteger::abs(), RexxNumberString::abs(), RexxString::abs(), PackageClass::addClass(), PackageClass::addPackage(), PackageClass::addPublicClass(), PackageClass::addPublicRoutine(), PackageClass::addRoutine(), RexxHashTableCollection::allAt(), RexxRelation::allIndex(), RexxDirectory::allIndexes(), RexxList::allIndexes(), RexxQueue::allIndexes(), RexxStem::allIndexes(), RexxHashTableCollection::allIndexes(), RexxArray::allIndexes(), RexxDirectory::allItems(), RexxList::allItems(), RexxStem::allItems(), RexxHashTableCollection::allItems(), RexxArray::allItems(), RexxInteger::andOp(), RexxNumberString::andOp(), RexxString::andOp(), RexxList::append(), RexxMutableBuffer::append(), RexxQueue::append(), RexxArray::appendRexx(), RexxMessage::arguments(), RexxQueue::at(), RexxDirectory::atRexx(), RexxSupplier::available(), RexxString::b2x(), BASEIMAGELOAD, RexxString::bitAnd(), RexxString::bitOr(), RexxString::bitXor(), RexxStem::bracket(), RexxStem::bracketEqual(), RexxString::c2d(), RexxString::c2x(), RoutineClass::callRexx(), RoutineClass::callWithRexx(), RexxString::caselessAbbrev(), RexxString::caselessChangeStr(), RexxMutableBuffer::caselessChangeStr(), RexxString::caselessCompare(), RexxString::caselessCompareToRexx(), RexxString::caselessCountStrRexx(), RexxMutableBuffer::caselessCountStrRexx(), RexxString::caselessEquals(), RexxMutableBuffer::caselessLastPos(), RexxString::caselessLastPosRexx(), RexxMutableBuffer::caselessMatch(), RexxString::caselessMatch(), RexxMutableBuffer::caselessMatchChar(), RexxString::caselessMatchChar(), RexxMutableBuffer::caselessPos(), RexxString::caselessPosRexx(), RexxMutableBuffer::caselessWordPos(), RexxString::caselessWordPos(), RexxInteger::ceiling(), RexxNumberString::ceiling(), RexxString::ceiling(), RexxString::center(), RexxString::changeStr(), RexxMutableBuffer::changeStr(), CLASS_CREATE, RexxInteger::classObject(), RexxNumberString::classObject(), RexxObject::classObject(), RexxList::classOf(), RexxString::compare(), RexxString::compareToRexx(), RexxMessage::completed(), RexxObject::concatBlank(), RexxString::concatBlank(), RexxObject::concatRexx(), RexxString::concatRexx(), RexxString::copies(), RexxBlock::copyRexx(), RexxContext::copyRexx(), RexxObject::copyRexx(), RexxString::countStrRexx(), RexxMutableBuffer::countStrRexx(), CPPM, create(), RexxArray::createInstance(), RexxBlock::createInstance(), RexxBuffer::createInstance(), RexxContext::createInstance(), RexxDirectory::createInstance(), RexxIdentityTable::createInstance(), RexxList::createInstance(), RexxMessage::createInstance(), RexxMethod::createInstance(), RexxMutableBuffer::createInstance(), RexxNumberString::createInstance(), RexxObject::createInstance(), PackageClass::createInstance(), RexxPointer::createInstance(), RexxQueue::createInstance(), RexxRelation::createInstance(), RoutineClass::createInstance(), StackFrameClass::createInstance(), RexxStem::createInstance(), RexxString::createInstance(), RexxText::createInstance(), RexxSupplier::createInstance(), RexxTable::createInstance(), WeakReference::createInstance(), Interpreter::createInterpreterInstance(), RexxActivity::createNewActivationStack(), createStrings(), ActivityManager::currentActivity, RexxString::d2c(), RexxInteger::d2c(), RexxNumberString::d2c(), RexxString::d2x(), RexxInteger::d2x(), RexxNumberString::d2x(), RexxString::dataType(), RexxString::decodeBase64(), RexxClass::defaultNameRexx(), RexxObject::defaultNameRexx(), RexxClass::defineClassMethod(), defineKernelMethod(), RexxClass::defineMethod(), RexxClass::defineMethods(), definePrivateKernelMethod(), defineProtectedKernelMethod(), RexxClass::deleteMethod(), RexxArray::deleteRexx(), RexxString::delstr(), RexxString::delWord(), RexxMutableBuffer::delWord(), PackageClass::digits(), RexxArray::dimension(), RexxInteger::divide(), RexxNumberString::divide(), RexxString::divide(), RexxArray::empty(), RexxDirectory::empty(), RexxList::empty(), RexxStem::empty(), RexxHashTableCollection::empty(), enableOrefChecks(), RexxString::encodeBase64(), RexxClass::enhanced(), RexxDirectory::entryRexx(), RexxClass::equal(), RexxInteger::equal(), RexxNumberString::equal(), RexxObject::equal(), RexxPointer::equal(), RexxString::equal(), RexxString::equals(), RexxActivity::error(), RexxMessage::errorCondition(), RexxArray::fill(), PackageClass::findClassRexx(), PackageClass::findRoutineRexx(), RexxArray::firstItem(), RexxList::firstItem(), RexxArray::firstRexx(), RexxList::firstRexx(), RexxQueue::firstRexx(), RexxInteger::floor(), RexxNumberString::floor(), RexxString::floor(), PackageClass::form(), RexxInteger::format(), RexxString::format(), RexxNumberString::formatRexx(), PackageClass::fuzz(), RexxContext::getArgs(), StackFrameClass::getArguments(), RexxClass::getBaseClass(), RexxMutableBuffer::getBufferSize(), PackageClass::getClasses(), RexxContext::getCondition(), RexxContext::getDigits(), RexxContext::getDigitsPropagate(), RexxArray::getDimensions(), RexxContext::getExecutable(), StackFrameClass::getExecutable(), RexxContext::getForm(), RexxContext::getFuzz(), getGlobalName(), RexxClass::getId(), PackageClass::getImportedClasses(), PackageClass::getImportedPackages(), PackageClass::getImportedRoutines(), SystemInterpreter::getInternalSystemName(), RexxBlock::getKind(), RexxContext::getLine(), StackFrameClass::getLine(), RexxClass::getMetaClass(), PackageClass::getMethods(), RexxContext::getName(), PackageClass::getName(), StackFrameClass::getName(), RexxContext::getNamedArgs(), RexxBlock::getPackage(), RexxContext::getPackage(), BaseExecutable::getPackage(), RexxContext::getParentContextObject(), PackageClass::getPublicClasses(), PackageClass::getPublicRoutines(), RexxBlock::getRawExecutable(), RexxHashTableCollection::getRexx(), RexxArray::getRexx(), PackageClass::getRoutines(), RexxContext::getRS(), RexxBlock::getSource(), PackageClass::getSource(), PackageClass::getSourceLineRexx(), PackageClass::getSourceSize(), RexxContext::getStackFrames(), RexxClass::getSubClasses(), RexxClass::getSuperClass(), RexxClass::getSuperClasses(), SystemInterpreter::getSystemName(), SystemInterpreter::getSystemVersion(), StackFrameClass::getTarget(), StackFrameClass::getTraceLine(), StackFrameClass::getType(), RexxBlock::getVariables(), RexxContext::getVariables(), Interpreter::getVersionNumber(), RexxDirectory::hasEntry(), RexxMessage::hasError(), RexxInteger::hashCode(), RexxNumberString::hashCode(), RexxObject::hashCode(), RexxList::hasIndex(), RexxQueue::hasindex(), RexxStem::hasIndex(), RexxDirectory::hasIndex(), RexxHashTableCollection::hasIndexRexx(), RexxArray::hasIndexRexx(), RexxArray::hasItem(), RexxDirectory::hasItem(), RexxList::hasItem(), RexxStem::hasItem(), RexxRelation::hasItem(), RexxHashTableCollection::hasItemRexx(), RexxObject::hasMethodRexx(), RexxObject::identityHashRexx(), RexxSupplier::index(), RexxArray::index(), RexxList::index(), RexxQueue::index(), RexxStem::index(), RexxDirectory::indexRexx(), RexxHashTableCollection::indexRexx(), RexxClass::inherit(), RexxObject::init(), ActivityManager::init(), Interpreter::init(), PackageManager::initialize(), RexxActivity::initializeThreadContext(), RexxSupplier::initRexx(), RexxQueue::insert(), RexxMutableBuffer::insert(), RexxString::insert(), RexxList::insertRexx(), RexxArray::insertRexx(), RexxObject::instanceMethodRexx(), RexxObject::instanceMethodsRexx(), RexxInteger::integerDivide(), RexxNumberString::integerDivide(), RexxString::integerDivide(), IntegerEight, IntegerFive, IntegerFour, IntegerMinusOne, IntegerNine, IntegerOne, IntegerSeven, IntegerSix, IntegerThree, IntegerTwo, IntegerZero, RexxString::isASCIIRexx(), RexxArray::isEmpty(), RexxDirectory::isEmpty(), RexxList::isEmpty(), RexxStem::isEmpty(), RexxHashTableCollection::isEmpty(), RexxInteger::isGreaterOrEqual(), RexxNumberString::isGreaterOrEqual(), RexxString::isGreaterOrEqual(), RexxInteger::isGreaterThan(), RexxNumberString::isGreaterThan(), RexxString::isGreaterThan(), RexxMethod::isGuardedRexx(), RexxObject::isInstanceOfRexx(), RexxInteger::isLessOrEqual(), RexxNumberString::isLessOrEqual(), RexxString::isLessOrEqual(), RexxInteger::isLessThan(), RexxNumberString::isLessThan(), RexxString::isLessThan(), RexxPointer::isNull(), RexxMethod::isPrivateRexx(), RexxMethod::isProtectedRexx(), RexxClass::isSubclassOf(), RexxArray::itemsRexx(), RexxDirectory::itemsRexx(), RexxList::itemsRexx(), RexxStem::itemsRexx(), RexxTable::itemsRexx(), kernel_public, RexxArray::lastItem(), RexxList::lastItem(), RexxMutableBuffer::lastPos(), RexxString::lastPosRexx(), RexxArray::lastRexx(), RexxList::lastRexx(), RexxQueue::lastRexx(), RexxString::left(), RexxMutableBuffer::lengthRexx(), RexxString::lengthRexx(), RexxMethod::loadExternalMethod(), RoutineClass::loadExternalRoutine(), PackageClass::loadLibrary(), PackageClass::loadPackage(), RexxLocal::local(), Interpreter::logicError(), RexxMutableBuffer::lower(), RexxString::lowerRexx(), RexxObject::makeArrayRexx(), RexxObject::makeString(), RexxObject::makeStringRexx(), RexxMutableBuffer::match(), RexxString::match(), RexxMutableBuffer::matchChar(), RexxString::matchChar(), RexxInteger::Max(), RexxNumberString::Max(), RexxString::Max(), memoryObject, RexxMessage::messageName(), RexxMessage::messageTarget(), RexxClass::method(), RexxClass::methods(), RexxInteger::Min(), RexxNumberString::Min(), RexxString::Min(), RexxInteger::minus(), RexxNumberString::minus(), RexxString::minus(), RexxClass::mixinclass(), RexxInteger::multiply(), RexxNumberString::multiply(), RexxString::multiply(), RexxMutableBuffer::mydelete(), new_directory(), new_integer(), new_string(), RexxMethod::newFileRexx(), RoutineClass::newFileRexx(), RexxArray::newRexx(), RexxIdentityTable::newRexx(), RexxList::newRexx(), RexxMessage::newRexx(), RexxMethod::newRexx(), RexxMutableBufferClass::newRexx(), RexxQueue::newRexx(), RexxRelation::newRexx(), RoutineClass::newRexx(), RexxStem::newRexx(), RexxString::newRexx(), RexxSupplierClass::newRexx(), RexxTable::newRexx(), RexxBlock::newRexx(), RexxBuffer::newRexx(), RexxContext::newRexx(), RexxPointer::newRexx(), StackFrameClass::newRexx(), WeakReference::newRexx(), RexxClass::newRexx(), RexxObject::newRexx(), PackageClass::newRexx(), RexxDirectory::newRexx(), RexxSupplier::next(), RexxList::next(), RexxQueue::next(), RexxArray::nextRexx(), RexxClass::notEqual(), RexxInteger::notEqual(), RexxNumberString::notEqual(), RexxString::notEqual(), RexxObject::notEqual(), RexxPointer::notEqual(), RexxMessage::notify(), RexxInteger::notOp(), RexxNumberString::notOp(), RexxString::notOp(), RexxObject::objectName(), RexxObject::objectNameEquals(), RexxArray::of(), RexxQueue::ofRexx(), OREF_NULL, RexxInteger::orOp(), RexxNumberString::orOp(), RexxString::orOp(), RexxMutableBuffer::overlay(), RexxString::overlay(), RexxQueue::peek(), RexxInteger::plus(), RexxNumberString::plus(), RexxString::plus(), RexxString::posRexx(), RexxMutableBuffer::posRexx(), RexxInteger::power(), RexxNumberString::power(), RexxString::power(), RexxList::previous(), RexxQueue::previous(), RexxArray::previousRexx(), RexxQueue::pullRexx(), RexxQueue::pushRexx(), RexxList::put(), RexxQueue::put(), RexxRelation::put(), RexxDirectory::put(), RexxArray::putRexx(), RexxHashTableCollection::putRexx(), RexxClass::queryMixinClass(), RexxQueue::queueRexx(), RC_OK, RexxInteger::remainder(), RexxNumberString::remainder(), RexxString::remainder(), RexxList::remove(), RexxQueue::remove(), RexxStem::remove(), RexxRelation::removeAll(), RexxArray::removeItem(), RexxDirectory::removeItem(), RexxList::removeItem(), RexxStem::removeItem(), RexxRelation::removeItemRexx(), RexxHashTableCollection::removeItemRexx(), RexxHashTableCollection::removeRexx(), RexxArray::removeRexx(), RexxDirectory::removeRexx(), RexxMutableBuffer::replaceAt(), RexxString::replaceAt(), RexxStem::request(), RexxObject::requestRexx(), CPPCode::resolveExportedMethod(), RexxActivity::resolveProgramName(), RexxMessage::result(), ActivityManager::returnActivity(), RexxString::reverse(), RexxString::right(), RexxInteger::round(), RexxNumberString::round(), RexxString::round(), RexxObject::run(), RoutineClass::runProgram(), saveImage(), RexxList::section(), RexxQueue::section(), RexxArray::sectionRexx(), RexxMessage::send(), RexxObject::send(), RexxObject::sendWith(), RexxContext::setArgs(), RexxMutableBuffer::setBufferSize(), RexxDirectory::setEntry(), RexxMethod::setGuardedRexx(), setMarkTable(), RexxDirectory::setMethod(), RexxObject::setMethod(), RexxMethod::setPrivateRexx(), RexxMethod::setProtectedRexx(), RexxClass::setRexxDefined(), RexxMethod::setSecurityManager(), PackageClass::setSecurityManager(), RoutineClass::setSecurityManager(), RexxMethod::setUnguardedRexx(), RexxInteger::sign(), RexxNumberString::Sign(), RexxString::sign(), RexxArray::sizeRexx(), BaseExecutable::source(), RexxString::space(), RexxMutableBuffer::space(), RexxArray::stableSortRexx(), RexxArray::stableSortWithRexx(), RexxMessage::start(), RexxObject::start(), RexxObject::startWith(), RexxClass::strictEqual(), RexxInteger::strictEqual(), RexxNumberString::strictEqual(), RexxObject::strictEqual(), RexxString::strictEqual(), RexxInteger::strictGreaterOrEqual(), RexxNumberString::strictGreaterOrEqual(), RexxString::strictGreaterOrEqual(), RexxInteger::strictGreaterThan(), RexxNumberString::strictGreaterThan(), RexxString::strictGreaterThan(), RexxInteger::strictLessOrEqual(), RexxNumberString::strictLessOrEqual(), RexxString::strictLessOrEqual(), RexxInteger::strictLessThan(), RexxNumberString::strictLessThan(), RexxString::strictLessThan(), RexxInteger::strictNotEqual(), RexxNumberString::strictNotEqual(), RexxString::strictNotEqual(), RexxObject::strictNotEqual(), RexxObject::stringRexx(), RexxString::strip(), RexxString::subchar(), RexxMutableBuffer::subchar(), RexxClass::subclass(), RexxString::substr(), RexxMutableBuffer::substr(), RexxMutableBuffer::subWord(), RexxString::subWord(), RexxMutableBuffer::subWords(), RexxString::subWords(), RexxDirectory::supplier(), RexxList::supplier(), RexxQueue::supplier(), RexxStem::supplier(), RexxHashTableCollection::supplier(), RexxArray::supplier(), T_NilObject, TheArrayBehaviour, TheArrayClass, TheArrayClassBehaviour, TheBufferBehaviour, TheBufferClass, TheBufferClassBehaviour, TheClassBehaviour, TheClassClass, TheClassClassBehaviour, TheCommonRetrievers, TheDirectoryBehaviour, TheDirectoryClass, TheDirectoryClassBehaviour, TheEnvironment, TheFalseObject, TheFunctionsDirectory, TheIdentityTableBehaviour, TheIdentityTableClass, TheIdentityTableClassBehaviour, TheIntegerBehaviour, TheIntegerClass, TheIntegerClassBehaviour, TheKernel, TheListBehaviour, TheListClass, TheListClassBehaviour, TheMessageBehaviour, TheMessageClass, TheMessageClassBehaviour, TheMethodBehaviour, TheMethodClass, TheMethodClassBehaviour, TheMutableBufferBehaviour, TheMutableBufferClass, TheMutableBufferClassBehaviour, TheNilObject, TheNullArray, TheNullPointer, TheNumberStringBehaviour, TheNumberStringClass, TheNumberStringClassBehaviour, TheObjectBehaviour, TheObjectClass, TheObjectClassBehaviour, ThePackageBehaviour, ThePackageClass, ThePackageClassBehaviour, ThePointerBehaviour, ThePointerClass, ThePointerClassBehaviour, TheQueueBehaviour, TheQueueClass, TheQueueClassBehaviour, TheRelationBehaviour, TheRelationClass, TheRelationClassBehaviour, TheRexxBlockBehaviour, TheRexxBlockClass, TheRexxBlockClassBehaviour, TheRexxContextBehaviour, TheRexxContextClass, TheRexxContextClassBehaviour, TheRexxTextBehaviour, TheRexxTextClass, TheRexxTextClassBehaviour, TheRoutineBehaviour, TheRoutineClass, TheRoutineClassBehaviour, TheStackFrameBehaviour, TheStackFrameClass, TheStackFrameClassBehaviour, TheStemBehaviour, TheStemClass, TheStemClassBehaviour, TheStringBehaviour, TheStringClass, TheStringClassBehaviour, TheSupplierBehaviour, TheSupplierClass, TheSupplierClassBehaviour, TheSystem, TheTableBehaviour, TheTableClass, TheTableClassBehaviour, TheTrueObject, TheWeakReferenceBehaviour, TheWeakReferenceClass, TheWeakReferenceClassBehaviour, RexxStem::toDirectory(), RexxArray::toString(), PackageClass::trace(), RexxString::translate(), RexxMutableBuffer::translate(), RexxString::trunc(), RexxInteger::trunc(), RexxNumberString::trunc(), RexxClass::uninherit(), RexxHashTableCollection::uniqueIndexes(), RexxObject::unknownRexx(), RexxObject::unsetMethod(), RexxMutableBuffer::upper(), RexxString::upperRexx(), RexxSupplier::value(), WeakReference::value(), RexxList::value(), VARIABLE_RC, VARIABLE_RESULT, VARIABLE_SELF, VARIABLE_SIGL, VARIABLE_SUPER, RexxMutableBuffer::verify(), RexxString::verify(), RexxMutableBuffer::word(), RexxString::word(), RexxMutableBuffer::wordIndex(), RexxString::wordIndex(), RexxMutableBuffer::wordLength(), RexxString::wordLength(), RexxMutableBuffer::wordPos(), RexxString::wordPos(), RexxMutableBuffer::words(), RexxString::words(), RexxString::x2b(), RexxString::x2c(), RexxString::x2d(), RexxInteger::xorOp(), RexxNumberString::xorOp(), and RexxString::xorOp().

Referenced by initialize().

◆ createLocks()

void RexxMemory::createLocks ( )
static

Definition at line 2268 of file RexxMemory.cpp.

References SysMutex::create(), envelopeMutex, flattenMutex, and unflattenMutex.

Referenced by create(), and Interpreter::processStartup().

◆ createStrings()

void RexxMemory::createStrings ( )
static

Definition at line 47 of file GlobalNames.cpp.

References globalStrings, and new_directory().

Referenced by createImage().

◆ defineKernelMethod()

void RexxMemory::defineKernelMethod ( const char *  name,
RexxBehaviour behaviour,
PCPPM  entryPoint,
size_t  arguments,
bool  named_arguments = false 
)
staticprivate

Definition at line 92 of file Setup.cpp.

References RexxInternalObject::behaviour, and RexxBehaviour::define().

Referenced by createImage().

◆ definePrivateKernelMethod()

void RexxMemory::definePrivateKernelMethod ( const char *  name,
RexxBehaviour behaviour,
PCPPM  entryPoint,
size_t  arguments,
bool  named_arguments = false 
)
staticprivate

Definition at line 122 of file Setup.cpp.

References RexxInternalObject::behaviour, RexxBehaviour::define(), and RexxMethod::setPrivate().

Referenced by createImage().

◆ defineProtectedKernelMethod()

void RexxMemory::defineProtectedKernelMethod ( const char *  name,
RexxBehaviour behaviour,
PCPPM  entryPoint,
size_t  arguments,
bool  named_arguments = false 
)
staticprivate

◆ disableOrefChecks()

void RexxMemory::disableOrefChecks ( )
inline

Definition at line 267 of file RexxMemory.hpp.

References checkSetOK.

Referenced by RexxTable::addOffset(), RexxEnvelope::flattenReference(), initialize(), and saveImage().

◆ discardHoldObject()

void RexxMemory::discardHoldObject ( RexxInternalObject obj)

Definition at line 1649 of file RexxMemory.cpp.

References RexxStack::push(), RexxIdentityTable::remove(), saveStack, and saveTable.

Referenced by discardHoldObject().

◆ discardObject()

void RexxMemory::discardObject ( RexxInternalObject obj)
inline

Definition at line 212 of file RexxMemory.hpp.

References RexxIdentityTable::remove(), and saveTable.

Referenced by discardObject().

◆ dump()

◆ dumpImageStats()

◆ dumpMemoryProfile()

void RexxMemory::dumpMemoryProfile ( )

◆ dumpObject()

void RexxMemory::dumpObject ( RexxObject objectRef,
FILE *  outfile 
)

Definition at line 263 of file RexxMemory.cpp.

References RexxInternalObject::getObjectSize(), and logMemoryCheck().

Referenced by checkSetOref(), and orphanCheckMark().

◆ enableOrefChecks()

void RexxMemory::enableOrefChecks ( )
inline

Definition at line 268 of file RexxMemory.hpp.

References checkSetOK.

Referenced by RexxTable::addOffset(), createImage(), RexxEnvelope::flattenReference(), and restore().

◆ flatten()

void RexxMemory::flatten ( RexxEnvelope env)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 978 of file RexxMemory.cpp.

◆ getFlattenStack()

RexxStack * RexxMemory::getFlattenStack ( void  )

◆ getGlobalName()

RexxString * RexxMemory::getGlobalName ( const char *  value)
static

Add a string to the global name table.

Parameters
valueThe new value to add.
Returns
The single instance of this string.

Definition at line 2302 of file RexxMemory.cpp.

References RexxDirectory::at(), globalStrings, new_string(), OREF_NULL, RexxDirectory::put(), and RexxInternalObject::stringValue().

Referenced by createImage(), RexxBehaviour::define(), and saveImage().

◆ getGlobalStrings()

RexxDirectory* RexxMemory::getGlobalStrings ( )
inline

Definition at line 285 of file RexxMemory.hpp.

References globalStrings.

Referenced by RexxSource::globalSetup().

◆ gutCheck()

◆ holdObject()

RexxObject * RexxMemory::holdObject ( RexxInternalObject obj)

Definition at line 1658 of file RexxMemory.cpp.

References RexxStack::push(), and saveStack.

Referenced by holdObject(), and GlobalProtectedObject::~GlobalProtectedObject().

◆ initialize()

void RexxMemory::initialize ( bool  restoringImage,
const char *  imageTarget 
)

Initialize the memory object, including getting the initial memory pool allocations.

Parameters
restoringImageTrue if we are initializing during an image restore, false if we need to build the initial image environemnt (i.e., called via rexximage during a build).
imageTargetThe location to store the image if this is a save operation.

Definition at line 172 of file RexxMemory.cpp.

References OldSpaceSegmentSet::allocateObject(), allocations, buildVirtualFunctionTable(), collections, createImage(), MemorySegmentPool::createPool(), currentPool, disableOrefChecks(), firstPool, NormalSegmentSet::getInitialSet(), globalStrings, liveStack, markTable, memoryObject, new_identity_table(), newSpaceLargeSegments, newSpaceNormalSegments, oldSpaceSegments, OREF_NULL, originalLiveStack, restore(), restoreImage(), restoringImage(), SegmentDeadSpace, RexxInternalObject::setBehaviour(), TheMemoryBehaviour, uninitTable, and variableCache.

Referenced by Interpreter::startInterpreter().

◆ inObjectStorage()

bool RexxMemory::inObjectStorage ( RexxObject obj)
private

◆ inSharedObjectStorage()

bool RexxMemory::inSharedObjectStorage ( RexxObject obj)
private

◆ isPendingUninit()

bool RexxMemory::isPendingUninit ( RexxObject obj)

Definition at line 626 of file RexxMemory.cpp.

References RexxIdentityTable::get(), OREF_NULL, and uninitTable.

◆ killOrphans()

◆ lastChanceUninit()

void RexxMemory::lastChanceUninit ( )

Force a last-gasp garbage collection and running of the uninits during interpreter instance shutdown. This is an attempt to ensure that all objects with uninit methods get a chance to clean up prior to termination.

Definition at line 510 of file RexxMemory.cpp.

References collectAndUninit(), RexxHashTableCollection::empty(), and uninitTable.

Referenced by Interpreter::terminateInterpreter().

◆ live()

◆ liveGeneral()

◆ liveStackFull()

void RexxMemory::liveStackFull ( )

Definition at line 1359 of file RexxMemory.cpp.

References RexxStack::copyEntries(), liveStack, originalLiveStack, and RexxStack::size.

Referenced by checkLiveStack().

◆ logObjectStats()

void RexxMemory::logObjectStats ( RexxObject obj)
inline

Definition at line 264 of file RexxMemory.hpp.

References imageStats, and MemoryStats::logObject().

Referenced by saveImageMark().

◆ logVerboseOutput()

void RexxMemory::logVerboseOutput ( const char *  message,
void *  sub1,
void *  sub2 
)

Definition at line 243 of file RexxMemory.cpp.

References logMemoryCheck().

Referenced by verboseMessage().

◆ makeProxy()

RexxObject * RexxMemory::makeProxy ( RexxEnvelope env)
virtual

Reimplemented from RexxInternalObject.

Definition at line 988 of file RexxMemory.cpp.

References new_proxy().

◆ mark()

◆ markGeneral()

◆ markObjects()

void RexxMemory::markObjects ( void  )

◆ markObjectsMain()

void RexxMemory::markObjectsMain ( RexxObject rootObject)

◆ memoryPoolAdded()

void RexxMemory::memoryPoolAdded ( MemorySegmentPool pool)

Add a new pool to the memory set.

Parameters
poolThe new pool.

Definition at line 2207 of file RexxMemory.cpp.

References currentPool.

Referenced by MemorySegmentPool::newLargeSegment(), and MemorySegmentPool::newSegment().

◆ newLargeSegment()

MemorySegment * RexxMemory::newLargeSegment ( size_t  requestLength,
size_t  minLength 
)

◆ newObject() [1/2]

RexxObject* RexxMemory::newObject ( size_t  size)
inline

Definition at line 190 of file RexxMemory.hpp.

References newObject(), and T_Object.

Referenced by new_object(), and newObject().

◆ newObject() [2/2]

◆ newObjects()

◆ newSegment()

◆ objectReferenceOK()

bool RexxMemory::objectReferenceOK ( RexxObject o)
private

◆ oldObject()

◆ operator RexxObject *()

RexxMemory::operator RexxObject * ( )
inline

Definition at line 178 of file RexxMemory.hpp.

◆ operator=()

RexxObject* RexxMemory::operator= ( DeadObject d)
inline

Definition at line 179 of file RexxMemory.hpp.

◆ orphanCheckMark()

◆ popLiveStack()

RexxObject* RexxMemory::popLiveStack ( )
inlineprivate

Definition at line 342 of file RexxMemory.hpp.

References RexxStack::fastPop(), and liveStack.

Referenced by killOrphans(), markObjectsMain(), orphanCheckMark(), and saveImage().

◆ pushLiveStack()

void RexxMemory::pushLiveStack ( RexxObject obj)
inlineprivate

◆ pushSaveStack()

void RexxMemory::pushSaveStack ( RexxObject obj)
inline

Definition at line 265 of file RexxMemory.hpp.

References RexxStack::push(), and saveStack.

Referenced by newObject(), and newObjects().

◆ queryDump()

bool RexxMemory::queryDump ( )
inline

Definition at line 220 of file RexxMemory.hpp.

References dumpEnable.

◆ reclaim()

RexxObject * RexxMemory::reclaim ( )

Definition at line 1009 of file RexxMemory.cpp.

References collect(), and OREF_NULL.

◆ removeHold()

void RexxMemory::removeHold ( RexxInternalObject obj)
inline

Definition at line 213 of file RexxMemory.hpp.

References RexxSaveStack::remove(), and saveStack.

◆ removeSavedObject()

void RexxMemory::removeSavedObject ( RexxObject obj)
inline

Definition at line 266 of file RexxMemory.hpp.

References RexxSaveStack::remove(), and saveStack.

◆ removeUninitObject()

void RexxMemory::removeUninitObject ( RexxObject obj)

Definition at line 598 of file RexxMemory.cpp.

References RexxIdentityTable::remove(), and uninitTable.

Referenced by RexxInternalObject::removedUninit().

◆ reSize()

void RexxMemory::reSize ( RexxObject shrinkObj,
size_t  requestSize 
)

◆ restore()

◆ restoreImage()

◆ restoreMark()

void RexxMemory::restoreMark ( RexxObject markObject,
RexxObject **  pMarkObject 
)
inlineprivate

Definition at line 344 of file RexxMemory.hpp.

References relocation.

Referenced by markGeneral().

◆ restoreObjectMark()

void RexxMemory::restoreObjectMark ( RexxObject markObject,
RexxObject **  pMarkObject 
)
inlineprivate

Definition at line 354 of file RexxMemory.hpp.

References markWord, objOffset, and RexxInternalObject::setObjectLive().

Referenced by markGeneral().

◆ restoreStrings()

void RexxMemory::restoreStrings ( RexxArray stringArray)
static

Definition at line 92 of file GlobalNames.cpp.

References RexxArray::data().

Referenced by restoreImage().

◆ restoringImage()

bool RexxMemory::restoringImage ( )
inline

Definition at line 218 of file RexxMemory.hpp.

References restoreimage.

Referenced by initialize(), and RexxBehaviour::liveGeneral().

◆ returnFlattenStack()

void RexxMemory::returnFlattenStack ( void  )

Definition at line 2173 of file RexxMemory.cpp.

References flattenMutex, flattenStack, and SysMutex::release().

Referenced by RexxEnvelope::pack().

◆ runUninits()

◆ saveImage()

◆ saveImageMark()

◆ saveObject()

RexxObject* RexxMemory::saveObject ( RexxInternalObject saveObj)
inline

Definition at line 211 of file RexxMemory.hpp.

References RexxIdentityTable::add(), and saveTable.

Referenced by saveImage(), and saveObject().

◆ saveStrings()

RexxArray * RexxMemory::saveStrings ( )
static

Definition at line 64 of file GlobalNames.cpp.

References new_array().

Referenced by saveImage().

◆ savingImage()

bool RexxMemory::savingImage ( )
inline

◆ scavengeSegmentSets()

◆ setDump()

RexxObject * RexxMemory::setDump ( RexxObject selection)

◆ setEnvelope()

void RexxMemory::setEnvelope ( RexxEnvelope _envelope)

◆ setMarkTable()

void RexxMemory::setMarkTable ( RexxTable marktable)
inline

Definition at line 225 of file RexxMemory.hpp.

References markTable.

Referenced by createImage().

◆ setObjectOffset()

void RexxMemory::setObjectOffset ( size_t  offset)

◆ setOref()

◆ setOrphanCheck()

void RexxMemory::setOrphanCheck ( bool  orphancheck)
inline

Definition at line 226 of file RexxMemory.hpp.

References orphanCheck.

◆ setParms()

RexxObject * RexxMemory::setParms ( RexxObject deadSegs,
RexxObject notUsed 
)

Definition at line 1669 of file RexxMemory.cpp.

References OREF_NULL.

◆ setUpMemoryTables()

◆ shutdown()

void RexxMemory::shutdown ( )

◆ temporaryObject()

◆ unflattenMark()

void RexxMemory::unflattenMark ( RexxObject markObject,
RexxObject **  pMarkObject 
)
inlineprivate

Definition at line 349 of file RexxMemory.hpp.

References envelope, and RexxVirtualBase::unflatten().

Referenced by markGeneral().

◆ verboseMessage() [1/4]

◆ verboseMessage() [2/4]

void RexxMemory::verboseMessage ( const char *  message,
const char *  sub1,
size_t  sub2 
)
inline

Definition at line 258 of file RexxMemory.hpp.

References logVerboseOutput().

◆ verboseMessage() [3/4]

void RexxMemory::verboseMessage ( const char *  message,
size_t  sub1 
)
inline

Definition at line 246 of file RexxMemory.hpp.

References logVerboseOutput().

◆ verboseMessage() [4/4]

void RexxMemory::verboseMessage ( const char *  message,
size_t  sub1,
size_t  sub2 
)
inline

Definition at line 252 of file RexxMemory.hpp.

References logVerboseOutput().

Member Data Documentation

◆ allocations

size_t RexxMemory::allocations
private

Definition at line 409 of file RexxMemory.hpp.

Referenced by collect(), initialize(), markObjectsMain(), and newObject().

◆ checkSetOK

bool RexxMemory::checkSetOK
private

Definition at line 398 of file RexxMemory.hpp.

Referenced by checkSetOref(), disableOrefChecks(), and enableOrefChecks().

◆ collections

size_t RexxMemory::collections
private

Definition at line 410 of file RexxMemory.hpp.

Referenced by collect(), and initialize().

◆ commonRetrievers

RexxDirectory * RexxMemory::commonRetrievers = OREF_NULL
static

Definition at line 308 of file RexxMemory.hpp.

◆ currentPool

MemorySegmentPool* RexxMemory::currentPool
private

◆ dumpEnable

bool RexxMemory::dumpEnable
private

◆ envelope

RexxEnvelope* RexxMemory::envelope
private

Definition at line 405 of file RexxMemory.hpp.

Referenced by live(), liveGeneral(), markGeneral(), RexxMemory(), setEnvelope(), and unflattenMark().

◆ envelopeMutex

SysMutex RexxMemory::envelopeMutex
staticprivate

Definition at line 416 of file RexxMemory.hpp.

Referenced by closeLocks(), createLocks(), and setEnvelope().

◆ environment

RexxDirectory * RexxMemory::environment = OREF_NULL
static

Definition at line 306 of file RexxMemory.hpp.

◆ exportedMethods

PCPPM RexxMemory::exportedMethods[]
static

Definition at line 299 of file RexxMemory.hpp.

◆ firstPool

MemorySegmentPool* RexxMemory::firstPool
private

Definition at line 387 of file RexxMemory.hpp.

Referenced by dump(), initialize(), RexxMemory(), and shutdown().

◆ flattenMutex

SysMutex RexxMemory::flattenMutex
staticprivate

Definition at line 414 of file RexxMemory.hpp.

Referenced by closeLocks(), createLocks(), getFlattenStack(), and returnFlattenStack().

◆ flattenStack

RexxStack* RexxMemory::flattenStack
private

Definition at line 376 of file RexxMemory.hpp.

Referenced by getFlattenStack(), and returnFlattenStack().

◆ functionsDir

RexxDirectory * RexxMemory::functionsDir = OREF_NULL
static

Definition at line 307 of file RexxMemory.hpp.

◆ globalStrings

RexxDirectory * RexxMemory::globalStrings = OREF_NULL
staticprivate

◆ image_buffer

char* RexxMemory::image_buffer
private

Definition at line 392 of file RexxMemory.hpp.

Referenced by restoreImage(), saveImage(), and saveImageMark().

◆ image_offset

size_t RexxMemory::image_offset
private

Definition at line 393 of file RexxMemory.hpp.

Referenced by saveImage(), and saveImageMark().

◆ imageStats

MemoryStats* RexxMemory::imageStats
private

Definition at line 407 of file RexxMemory.hpp.

Referenced by logObjectStats(), and saveImage().

◆ kernel

RexxDirectory * RexxMemory::kernel = OREF_NULL
static

Definition at line 309 of file RexxMemory.hpp.

◆ liveStack

RexxStack* RexxMemory::liveStack
private

◆ markReason

int RexxMemory::markReason

Definition at line 302 of file RexxMemory.hpp.

Referenced by killOrphans(), restoreImage(), and saveImage().

◆ markTable

RexxTable* RexxMemory::markTable
private

Definition at line 379 of file RexxMemory.hpp.

Referenced by initialize(), live(), liveGeneral(), setMarkTable(), and setUpMemoryTables().

◆ markWord

◆ newSpaceLargeSegments

LargeSegmentSet RexxMemory::newSpaceLargeSegments
private

◆ newSpaceNormalSegments

NormalSegmentSet RexxMemory::newSpaceNormalSegments
private

◆ objOffset

size_t RexxMemory::objOffset
private

Definition at line 402 of file RexxMemory.hpp.

Referenced by markGeneral(), restoreObjectMark(), RexxMemory(), and setObjectOffset().

◆ old2new

RexxIdentityTable* RexxMemory::old2new
private

Definition at line 382 of file RexxMemory.hpp.

Referenced by gutCheck(), live(), liveGeneral(), saveImage(), setOref(), and setUpMemoryTables().

◆ oldSpaceSegments

OldSpaceSegmentSet RexxMemory::oldSpaceSegments
private

Definition at line 389 of file RexxMemory.hpp.

Referenced by dump(), gutCheck(), initialize(), inSharedObjectStorage(), and oldObject().

◆ originalLiveStack

RexxStack* RexxMemory::originalLiveStack
private

Definition at line 406 of file RexxMemory.hpp.

Referenced by initialize(), liveStackFull(), and markObjects().

◆ orphanCheck

bool RexxMemory::orphanCheck
private

Definition at line 401 of file RexxMemory.hpp.

Referenced by markGeneral(), markObjects(), RexxMemory(), and setOrphanCheck().

◆ pendingUninits

size_t RexxMemory::pendingUninits
private

Definition at line 384 of file RexxMemory.hpp.

Referenced by checkUninit(), checkUninitQueue(), and runUninits().

◆ processingUninits

bool RexxMemory::processingUninits
private

Definition at line 385 of file RexxMemory.hpp.

Referenced by checkUninitQueue(), and runUninits().

◆ protectedObjects

◆ relocation

size_t RexxMemory::relocation
private

Definition at line 394 of file RexxMemory.hpp.

Referenced by restoreImage(), and restoreMark().

◆ restoreimage

bool RexxMemory::restoreimage
private

Definition at line 397 of file RexxMemory.hpp.

Referenced by gutCheck(), markGeneral(), restoreImage(), and restoringImage().

◆ saveimage

bool RexxMemory::saveimage
private

Definition at line 396 of file RexxMemory.hpp.

Referenced by markGeneral(), saveImage(), and savingImage().

◆ saveStack

◆ saveTable

◆ system

RexxDirectory * RexxMemory::system = OREF_NULL
static

Definition at line 310 of file RexxMemory.hpp.

◆ unflattenMutex

SysMutex RexxMemory::unflattenMutex
staticprivate

Definition at line 415 of file RexxMemory.hpp.

Referenced by closeLocks(), createLocks(), and setObjectOffset().

◆ uninitTable

◆ variableCache

RexxVariable* RexxMemory::variableCache

◆ virtualFunctionTable

◆ weakReferenceList

WeakReference* RexxMemory::weakReferenceList
private

Definition at line 411 of file RexxMemory.hpp.

Referenced by addWeakReference(), checkWeakReferences(), and RexxMemory().


The documentation for this class was generated from the following files: