RexxList Class Reference

#include <ListClass.hpp>

Inheritance diagram for RexxList:
[legend]

Public Member Functions

void * operator new (size_t)
 
void * operator new (size_t size, void *objectPtr)
 
 RexxList (RESTORETYPE restoreType)
 
 RexxList ()
 
void init ()
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
RexxObjectcopy ()
 
RexxArraymakeArray ()
 
RexxArrayallItems ()
 
RexxArrayallIndexes ()
 
RexxArrayrequestArray ()
 
RexxObjectvalue (RexxObject *)
 
RexxObjectremove (RexxObject *)
 
RexxObjectprimitiveRemove (LISTENTRY *)
 
size_t firstIndex ()
 
size_t lastIndex ()
 
size_t nextIndex (size_t i)
 
size_t previousIndex (size_t i)
 
RexxObjectgetValue (size_t i)
 
RexxObjectfirstRexx ()
 
RexxObjectlastRexx ()
 
RexxObjectnext (RexxObject *)
 
RexxObjectprevious (RexxObject *)
 
RexxObjecthasIndex (RexxObject *)
 
RexxSuppliersupplier ()
 
RexxObjectitemsRexx ()
 
size_t items ()
 
RexxObjectinsert (RexxObject *, RexxObject *)
 
RexxObjectput (RexxObject *, RexxObject *)
 
RexxObjectsection (RexxObject *, RexxObject *)
 
RexxObjectsectionSubclass (LISTENTRY *, size_t)
 
RexxObjectfirstItem ()
 
RexxObjectlastItem ()
 
RexxObjectinsertRexx (RexxObject *, RexxObject *)
 
void partitionBuffer (size_t, size_t)
 
RexxArraymakeArrayIndices ()
 
size_t getFree ()
 
RexxObjectadd (RexxObject *, RexxObject *)
 
RexxObjectremoveFirst ()
 
RexxObjectremoveLast ()
 
RexxObjectremoveFirstItem ()
 
RexxObjectremoveLastItem ()
 
RexxObjectremoveIndex (size_t i)
 
LISTENTRYgetEntry (RexxObject *, RexxObject *)
 
LISTENTRYgetEntry (size_t)
 
RexxObjectindexOfValue (RexxObject *)
 
RexxObjectempty ()
 
RexxObjectisEmpty ()
 
RexxObjectindex (RexxObject *)
 
RexxObjecthasItem (RexxObject *)
 
RexxObjectremoveItem (RexxObject *)
 
RexxObjectremoveObject (RexxObject *)
 
void addLast (RexxObject *value)
 
void addFirst (RexxObject *value)
 
size_t getSize ()
 
RexxObjectappend (RexxObject *)
 
RexxArrayweakReferenceArray ()
 
RexxListnewRexx (RexxObject **, size_t, size_t)
 
RexxListclassOf (RexxObject **, size_t, size_t)
 
- Public Member Functions inherited from RexxObject
void * operator new (size_t, RexxClass *)
 
void * operator new (size_t, RexxClass *, RexxObject **, size_t, size_t)
 
void * operator new (size_t size, void *objectPtr)
 
void operator delete (void *, void *)
 
void operator delete (void *)
 
void operator delete (void *, RexxClass *)
 
void operator delete (void *, RexxClass *, RexxObject **, size_t)
 
RexxObjectnewRexx (RexxObject **arguments, size_t argCount, size_t named_argCount)
 
RexxObjectnewObject ()
 
 operator RexxInternalObject * ()
 
 RexxObject ()
 
 RexxObject (RESTORETYPE restoreType)
 
void initializeNewObject (size_t size, size_t mark, void *vft, RexxBehaviour *b)
 
void initializeNewObject (size_t mark, void *vft, RexxBehaviour *b)
 
virtual ~RexxObject ()
 
virtual RexxObjectdefMethod (RexxString *, RexxMethod *, RexxString *a=OREF_NULL)
 
virtual RexxStringdefaultName ()
 
virtual RexxObjectunknown (RexxString *msg, RexxArray *args, RexxDirectory *named_args)
 
virtual RexxIntegerhasMethod (RexxString *msg)
 
bool hasUninitMethod ()
 
RexxObjectinit ()
 
void uninit ()
 
HashCode hash ()
 
bool truthValue (int)
 
virtual bool logicalValue (logical_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)
 
RexxNumberStringnumberString ()
 
RexxIntegerintegerValue (size_t)
 
RexxStringmakeString ()
 
RexxTextmakeText ()
 
void copyIntoTail (RexxCompoundTail *buffer)
 
RexxStringstringValue ()
 
RexxTexttextValue ()
 
RexxStringrequestString ()
 
RexxStringrequestStringNoNOSTRING ()
 
RexxTextrequestText ()
 
RexxIntegerrequestInteger (size_t)
 
bool requestNumber (wholenumber_t &, size_t)
 
bool requestUnsignedNumber (stringsize_t &, size_t)
 
RexxArrayrequestArray ()
 
RexxDirectoryrequestDirectory ()
 
RexxStringrequiredString (RexxString *kind, size_t)
 
RexxStringrequiredString (RexxString *kind, const char *)
 
RexxStringrequiredString ()
 
RexxIntegerrequiredInteger (RexxString *kind, size_t, size_t)
 
wholenumber_t requiredNumber (RexxString *kind, size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
stringsize_t requiredPositive (RexxString *kind, size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
stringsize_t requiredNonNegative (RexxString *kind, size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
bool isEqual (RexxObject *)
 
bool isInstanceOf (RexxClass *)
 
RexxObjectisInstanceOfRexx (RexxClass *)
 
RexxObjectisNilRexx ()
 
RexxMethodinstanceMethod (RexxString *)
 
RexxSupplierinstanceMethods (RexxClass *)
 
RexxMethodinstanceMethodRexx (RexxString *)
 
RexxSupplierinstanceMethodsRexx (RexxClass *)
 
RexxObjectdynamicTargetRexx (RexxObject **arguments, size_t argCount, size_t named_argCount)
 
RexxStringobjectName ()
 
RexxObjectobjectNameEquals (RexxObject *)
 
RexxClassclassObject ()
 
RexxObjectsetMethod (RexxString *, RexxMethod *, RexxString *a=OREF_NULL)
 
RexxObjectunsetMethod (RexxString *)
 
RexxObjectrequestRexx (RexxString *)
 
RexxMessagestart (RexxObject **, size_t, size_t)
 
RexxMessagestartWith (RexxObject *, RexxArray *, RexxObject **, size_t)
 
RexxObjectsend (RexxObject **, size_t, size_t)
 
RexxObjectsendWith (RexxObject *, RexxArray *, RexxObject **, size_t)
 
RexxMessagestartCommon (RexxObject *message, RexxObject **arguments, size_t argCount, size_t named_argCount)
 
RexxStringoref ()
 
RexxObjectpmdict ()
 
RexxObjectrun (RexxObject **, size_t, size_t)
 
bool messageSend (RexxString *, RexxObject **, size_t, size_t, ProtectedObject &, bool processUnknown=true, bool dynamicTarget=true)
 
bool messageSend (RexxString *, RexxObject **, size_t, size_t, RexxObject *, ProtectedObject &, bool processUnknown=true, bool dynamicTarget=true)
 
RexxMethodcheckPrivate (RexxMethod *, RexxErrorCodes &)
 
RexxMethodcheckPackage (RexxMethod *, RexxErrorCodes &)
 
void processUnknown (RexxErrorCodes, RexxString *, RexxObject **, size_t, size_t, ProtectedObject &)
 
void processProtectedMethod (RexxString *, RexxMethod *, RexxObject **, size_t, size_t, ProtectedObject &)
 
void sendMessage (RexxString *, RexxArray *, RexxDirectory *, ProtectedObject &)
 
void sendMessage (RexxString *message, RexxObject **args, size_t argCount, size_t named_argCount, ProtectedObject &result)
 
void sendMessage (RexxString *message, ProtectedObject &result)
 
void sendMessage (RexxString *message, RexxObject *argument1, ProtectedObject &result)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, ProtectedObject &)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, ProtectedObject &)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, ProtectedObject &)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, ProtectedObject &)
 
RexxObjectsendMessage (RexxString *, RexxArray *, RexxDirectory *=OREF_NULL)
 
RexxObjectsendMessage (RexxString *message, RexxObject **args, size_t argCount, size_t named_argCount)
 
RexxObjectsendMessage (RexxString *message)
 
RexxObjectsendMessage (RexxString *message, RexxObject *argument1)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *)
 
RexxObjectdefMethods (RexxDirectory *)
 
void setObjectVariable (RexxString *, RexxObject *, RexxObject *)
 
RexxObjectgetObjectVariable (RexxString *)
 
RexxObjectgetObjectVariable (RexxString *, RexxObject *)
 
void addObjectVariables (RexxVariableDictionary *)
 
void copyObjectVariables (RexxObject *newObject)
 
RexxObjectsuperScope (RexxObject *)
 
RexxMethodsuperMethod (RexxString *, RexxObject *)
 
RexxObjectmdict ()
 
RexxObjectsetMdict (RexxObject *)
 
RexxBehaviourbehaviourObject ()
 
const char * idString ()
 
RexxStringid ()
 
RexxMethodmethodLookup (RexxString *name)
 
RexxVariableDictionarygetObjectVariables (RexxObject *)
 
void guardOn (RexxActivity *activity, RexxObject *scope)
 
void guardOff (RexxActivity *activity, RexxObject *scope)
 
RexxObjectequal (RexxObject *)
 
RexxObjectnotEqual (RexxObject *other)
 
RexxObjectstrictEqual (RexxObject *)
 
RexxObjectstrictNotEqual (RexxObject *other)
 
RexxIntegeridentityHashRexx ()
 
RexxObjecthashCode ()
 
RexxStringstringRexx ()
 
RexxStringconcatRexx (RexxObject *)
 
RexxStringconcatBlank (RexxObject *)
 
RexxObjectmakeStringRexx ()
 
RexxObjectmakeArrayRexx ()
 
RexxStringdefaultNameRexx ()
 
RexxObjectcopyRexx ()
 
RexxObjectunknownRexx (RexxString *, RexxArray *, RexxObject **, size_t)
 
RexxObjecthasMethodRexx (RexxString *)
 
void * getCSelf ()
 
void * getCSelf (RexxObject *scope)
 
bool equalValue (RexxObject *other)
 
virtual wholenumber_t compareTo (RexxObject *)
 
 koper (operator_plus) koper(operator_minus) koper(operator_multiply) koper(operator_divide) koper(operator_integerDivide) koper(operator_remainder) koper(operator_power) koper(operator_abuttal) koper(operator_concat) koper(operator_concatBlank) koper(operator_equal) koper(operator_notEqual) koper(operator_isGreaterThan) koper(operator_isBackslashGreaterThan) koper(operator_isLessThan) koper(operator_isBackslashLessThan) koper(operator_isGreaterOrEqual) koper(operator_isLessOrEqual) koper(operator_strictEqual) koper(operator_strictNotEqual) koper(operator_strictGreaterThan) koper(operator_strictBackslashGreaterThan) koper(operator_strictLessThan) koper(operator_strictBackslashLessThan) koper(operator_strictGreaterOrEqual) koper(operator_strictLessOrEqual) koper(operator_lessThanGreaterThan) koper(operator_greaterThanLessThan) koper(operator_and) koper(operator_or) koper(operator_xor) koper(operator_not) RexxVariableDictionary *objectVariables
 
- 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 ()
 
void setInRexxPackage ()
 
bool isInRexxPackage ()
 
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 RexxObjectmakeProxy (RexxEnvelope *)
 
virtual RexxObjectevaluate (RexxActivation *, RexxExpressionStack *)
 
virtual RexxObjectgetValue (RexxActivation *)
 
virtual RexxObjectgetValue (RexxVariableDictionary *)
 
virtual RexxObjectgetRealValue (RexxActivation *)
 
virtual RexxObjectgetRealValue (RexxVariableDictionary *)
 
virtual HashCode getHashValue ()
 
HashCode identityHash ()
 
virtual RexxStringprimitiveMakeString ()
 
virtual RexxTextprimitiveMakeText ()
 
virtual RexxObjectdynamicTarget (RexxObject **arguments, size_t count, size_t named_count)
 
void hasUninit ()
 
void removedUninit ()
 
void printObject ()
 
RexxObjectclone ()
 
- Public Member Functions inherited from RexxVirtualBase
virtual RexxObjectunflatten (RexxEnvelope *)
 

Static Public Member Functions

static void createInstance ()
 
- Static Public Member Functions inherited from RexxObject
static void decodeMessageName (RexxObject *target, RexxObject *message, RexxString *&messageName, RexxObject *&startScope)
 
static void createInstance ()
 
- Static Public Member Functions inherited from RexxInternalObject
static size_t getObjectHeaderSize ()
 

Static Public Attributes

static RexxClassclassInstance = OREF_NULL
 
- Static Public Attributes inherited from RexxObject
static PCPPM operatorMethods []
 
static RexxClassclassInstance = OREF_NULL
 

Protected Attributes

RexxListTabletable
 
size_t first
 
size_t last
 
size_t count
 
size_t size
 
size_t free
 

Friends

class RexxListTable
 

Additional Inherited Members

- Public Attributes inherited from RexxInternalObject
ObjectHeader header
 
RexxBehaviourbehaviour
 
- Protected Member Functions inherited from RexxVirtualBase
virtual ~RexxVirtualBase ()
 
virtual void baseVirtual ()
 

Detailed Description

Definition at line 63 of file ListClass.hpp.

Constructor & Destructor Documentation

◆ RexxList() [1/2]

RexxList::RexxList ( RESTORETYPE  restoreType)
inline

Definition at line 68 of file ListClass.hpp.

◆ RexxList() [2/2]

RexxList::RexxList ( )
inline

Definition at line 69 of file ListClass.hpp.

Referenced by classOf(), newRexx(), and section().

Member Function Documentation

◆ add()

◆ addFirst()

◆ addLast()

◆ allIndexes()

RexxArray * RexxList::allIndexes ( void  )

Return an array containing all elements contained in the list, in sorted order.

Returns
An array with the list elements.

Definition at line 938 of file ListClass.cpp.

References count, ENTRY_POINTER, first, new_array(), new_integer(), listentry::next, and RexxArray::put().

Referenced by RexxMemory::createImage().

◆ allItems()

RexxArray * RexxList::allItems ( void  )

Return an array containing all elements contained in the list, in sorted order.

Returns
An array with the list elements.

Definition at line 888 of file ListClass.cpp.

References count, ENTRY_POINTER, first, new_array(), listentry::next, RexxArray::put(), and listentry::value.

Referenced by RexxMemory::createImage(), and makeArray().

◆ append()

◆ classOf()

RexxList * RexxList::classOf ( RexxObject **  args,
size_t  argCount,
size_t  named_argCount 
)

◆ copy()

RexxObject * RexxList::copy ( void  )
virtual

Reimplemented from RexxObject.

Definition at line 78 of file ListClass.cpp.

References RexxInternalObject::copy(), RexxObject::copy(), OrefSet, and table.

◆ createInstance()

void RexxList::createInstance ( )
static

Create initial class object at bootstrap time.

Definition at line 60 of file ListClass.cpp.

References CLASS_CREATE.

Referenced by RexxMemory::createImage().

◆ empty()

RexxObject * RexxList::empty ( )

Empty all of the items from a list.

Returns
No return value.

Definition at line 908 of file ListClass.cpp.

References ENTRY_POINTER, first, LIST_END, OREF_NULL, and primitiveRemove().

Referenced by RexxMemory::createImage().

◆ firstIndex()

◆ firstItem()

RexxObject * RexxList::firstItem ( void  )

Definition at line 682 of file ListClass.cpp.

References ENTRY_POINTER, first, LIST_END, and TheNilObject.

Referenced by RexxMemory::createImage(), and RexxQueue::peek().

◆ firstRexx()

RexxObject * RexxList::firstRexx ( void  )

Definition at line 712 of file ListClass.cpp.

References first, LIST_END, new_integer(), and TheNilObject.

Referenced by RexxMemory::createImage(), and indexOfValue().

◆ flatten()

void RexxList::flatten ( RexxEnvelope envelope)
virtual

Reimplemented from RexxObject.

Definition at line 171 of file ListClass.cpp.

References cleanUpFlatten, flatten_reference, and setUpFlatten.

◆ getEntry() [1/2]

◆ getEntry() [2/2]

LISTENTRY * RexxList::getEntry ( size_t  item_index)

Resolve a low-level index into a list entry value.

Parameters
item_indexThe target index.
Returns
A LISTENTRY value, or NULL if not found.

Definition at line 230 of file ListClass.cpp.

References ENTRY_POINTER, NOT_ACTIVE, listentry::previous, and size.

◆ getFree()

◆ getSize()

◆ getValue()

◆ hasIndex()

RexxObject * RexxList::hasIndex ( RexxObject _index)

Definition at line 845 of file ListClass.cpp.

References getEntry(), IntegerOne, TheFalseObject, and TheTrueObject.

Referenced by RexxMemory::createImage().

◆ hasItem()

RexxObject * RexxList::hasItem ( RexxObject target)

Tests whether there is an object with the given value in the list.

Parameters
targetThe target value.
Returns
.true if there is a match, .false otherwise.

Definition at line 994 of file ListClass.cpp.

References ARG_ONE, count, ENTRY_POINTER, RexxObject::equalValue(), first, listentry::next, requiredArgument(), TheFalseObject, TheTrueObject, and listentry::value.

Referenced by RexxSource::addPackage(), SysInterpreterInstance::addSearchExtension(), RexxSource::argList(), and RexxMemory::createImage().

◆ index()

RexxObject * RexxList::index ( RexxObject target)

Return the index of the first item with a matching value in the list. Returns .nil if the object is not found.

Parameters
targetThe target object.
Returns
The index of the item, or .nil.

Definition at line 964 of file ListClass.cpp.

References ARG_ONE, count, ENTRY_POINTER, RexxObject::equalValue(), first, new_integer(), listentry::next, requiredArgument(), TheNilObject, and listentry::value.

Referenced by RexxMemory::createImage().

◆ indexOfValue()

RexxObject * RexxList::indexOfValue ( RexxObject _value)

Definition at line 1082 of file ListClass.cpp.

References firstRexx(), lastRexx(), next(), OREF_NULL, TheNilObject, and value().

◆ init()

void RexxList::init ( void  )

Definition at line 66 of file ListClass.cpp.

References first, INITIAL_LIST_SIZE, last, LIST_END, partitionBuffer(), and size.

Referenced by operator new(), and RexxQueue::operator new().

◆ insert()

◆ insertRexx()

RexxObject * RexxList::insertRexx ( RexxObject _value,
RexxObject _index 
)

Definition at line 518 of file ListClass.cpp.

References ARG_ONE, insert(), and requiredArgument().

Referenced by RexxMemory::createImage().

◆ isEmpty()

RexxObject * RexxList::isEmpty ( )

Test if a list is empty.

Returns
True if the list is empty, false otherwise

Definition at line 926 of file ListClass.cpp.

References count, TheFalseObject, and TheTrueObject.

Referenced by RexxMemory::createImage().

◆ items()

◆ itemsRexx()

RexxObject * RexxList::itemsRexx ( void  )

Definition at line 1148 of file ListClass.cpp.

References count, and new_integer().

Referenced by RexxMemory::createImage().

◆ lastIndex()

size_t RexxList::lastIndex ( )
inline

Definition at line 85 of file ListClass.hpp.

References last.

Referenced by InterpreterInstance::findActivity(), and ActivityManager::findActivity().

◆ lastItem()

RexxObject * RexxList::lastItem ( void  )

Definition at line 697 of file ListClass.cpp.

References ENTRY_POINTER, last, LIST_END, and TheNilObject.

Referenced by RexxMemory::createImage(), and RexxActivation::termination().

◆ lastRexx()

RexxObject * RexxList::lastRexx ( void  )

Definition at line 728 of file ListClass.cpp.

References last, LIST_END, new_integer(), and TheNilObject.

Referenced by RexxMemory::createImage(), and indexOfValue().

◆ live()

void RexxList::live ( size_t  liveMark)
virtual

Reimplemented from RexxObject.

Definition at line 153 of file ListClass.cpp.

References memory_mark, and table.

◆ liveGeneral()

void RexxList::liveGeneral ( int  reason)
virtual

Reimplemented from RexxObject.

Definition at line 162 of file ListClass.cpp.

References memory_mark_general, and table.

◆ makeArray()

RexxArray * RexxList::makeArray ( void  )
virtual

◆ makeArrayIndices()

RexxArray * RexxList::makeArrayIndices ( )

Definition at line 1112 of file ListClass.cpp.

References count, ENTRY_POINTER, first, new_array(), new_integer(), listentry::next, and RexxArray::put().

Referenced by supplier().

◆ newRexx()

◆ next()

◆ nextIndex()

size_t RexxList::nextIndex ( size_t  _index)

A low-level next() method for internal usage. This works directly off the index values without needing to create object instances. This is critical for some of the internal data structures implemented as lists.

Parameters
_indexThe target item index.
Returns
The index of the next item, or LIST_END if there is no next item.

Definition at line 804 of file ListClass.cpp.

References getEntry(), LIST_END, and listentry::next.

Referenced by ClassDirective::addDependencies(), Interpreter::haltAllActivities(), InterpreterInstance::haltAllActivities(), ClassDirective::install(), ExtensionDirective::install(), RexxSource::processInstall(), RexxClass::removeSubclass(), RexxSource::resolveDependencies(), SysInterpreterInstance::resolveProgramName(), RexxMessage::sendNotification(), and InterpreterInstance::traceAllActivities().

◆ operator new() [1/2]

void* RexxList::operator new ( size_t  size,
void *  objectPtr 
)
inline

Definition at line 67 of file ListClass.hpp.

◆ operator new() [2/2]

void * RexxList::operator new ( size_t  size)

◆ partitionBuffer()

void RexxList::partitionBuffer ( size_t  first_entry,
size_t  entry_count 
)

◆ previous()

◆ previousIndex()

size_t RexxList::previousIndex ( size_t  _index)

A low-level previous() method for internal usage. This works directly off the index values without needing to create object instances. This is critical for some of the internal data structures implemented as lists.

Parameters
_indexThe target item index.
Returns
The index of the previous item, or LIST_END if there is no previous item.

Definition at line 830 of file ListClass.cpp.

References getEntry(), LIST_END, and listentry::previous.

Referenced by InterpreterInstance::findActivity(), and ActivityManager::findActivity().

◆ primitiveRemove()

◆ put()

◆ remove()

RexxObject * RexxList::remove ( RexxObject _index)

Definition at line 630 of file ListClass.cpp.

References getEntry(), IntegerOne, and primitiveRemove().

Referenced by RexxMemory::createImage().

◆ removeFirst()

◆ removeFirstItem()

◆ removeIndex()

RexxObject* RexxList::removeIndex ( size_t  i)
inline

Definition at line 113 of file ListClass.hpp.

References ENTRY_POINTER, and primitiveRemove().

Referenced by RexxClass::removeSubclass(), and RexxSource::resolveDependencies().

◆ removeItem()

◆ removeLast()

RexxObject* RexxList::removeLast ( )
inline

Definition at line 110 of file ListClass.hpp.

References ENTRY_POINTER, last, LIST_END, primitiveRemove(), and TheNilObject.

◆ removeLastItem()

RexxObject* RexxList::removeLastItem ( )
inline

Definition at line 112 of file ListClass.hpp.

References ENTRY_POINTER, last, LIST_END, OREF_NULL, and primitiveRemove().

◆ removeObject()

RexxObject * RexxList::removeObject ( RexxObject target)

Removes an item from the collection using Object identity comparisons. This is used in some special circumstances when we don't want to have the equals method called, which can cause some exceptions or false positives. This is used primarily for managing the local reference save lists.

Parameters
targetThe target value.
Returns
The target item.

Definition at line 1058 of file ListClass.cpp.

References ARG_ONE, count, ENTRY_POINTER, first, listentry::next, primitiveRemove(), requiredArgument(), TheNilObject, and listentry::value.

◆ requestArray()

RexxArray * RexxList::requestArray ( )

Definition at line 857 of file ListClass.cpp.

References isOfClass, makeArray(), and RexxObject::sendMessage().

◆ section()

◆ sectionSubclass()

RexxObject * RexxList::sectionSubclass ( LISTENTRY element,
size_t  counter 
)

◆ supplier()

RexxSupplier * RexxList::supplier ( void  )

Definition at line 1131 of file ListClass.cpp.

References makeArray(), makeArrayIndices(), and new_supplier().

Referenced by RexxMemory::createImage().

◆ value()

RexxObject * RexxList::value ( RexxObject _index)

Definition at line 246 of file ListClass.cpp.

References getEntry(), IntegerOne, OREF_NULL, TheNilObject, and listentry::value.

Referenced by RexxMemory::createImage(), and indexOfValue().

◆ weakReferenceArray()

RexxArray * RexxList::weakReferenceArray ( )

Not really part of normal list operation, but classes maintain their subclasses as a list of weak references so that subclasses can get garbage collected when no longer needed. When the class needs to iterate over the subclasses, it needs to resolve which weak references are still valid. This method will check the weak references and remove any stale entries. Then it will return an array of the dereferenced objects.

Returns
An array of the dereferenced objects.

Definition at line 1170 of file ListClass.cpp.

References RexxArray::append(), count, ENTRY_POINTER, firstIndex(), WeakReference::get(), if(), new_array(), listentry::next, OREF_NULL, primitiveRemove(), and listentry::value.

Referenced by RexxClass::getSubClasses().

Friends And Related Function Documentation

◆ RexxListTable

friend class RexxListTable
friend

Definition at line 64 of file ListClass.hpp.

Member Data Documentation

◆ classInstance

RexxClass * RexxList::classInstance = OREF_NULL
static

Definition at line 134 of file ListClass.hpp.

◆ count

◆ first

◆ free

size_t RexxList::free
protected

Definition at line 143 of file ListClass.hpp.

Referenced by getFree(), partitionBuffer(), and primitiveRemove().

◆ last

◆ size

size_t RexxList::size
protected

Definition at line 142 of file ListClass.hpp.

Referenced by getEntry(), getFree(), and init().

◆ table


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