The object reference for the first class instance
in the list of all valid ABL and .NET class instances created
in the current ABL session. If there are no class instances in the
current session, this attribute returns the Unknown value (?).
Data
type: Progress.Lang.Object
Access: Read-only
Applies
to:
SESSION system handle
Once
you get the first object reference in the list, you can use the NEXT-SIBLING
property in the Progress.Lang.Object class to get the next entry in
the list of ABL and .NET object references.
There are
two points worth noting about this attribute with garbage collection
enabled:
- The object references maintained by the FIRST-OBJECT
attribute and the NEXT-SIBLING property do not count as references
for garbage collection. That is, if a class instance is referenced
only on the session object chain, it is available for automatic
garbage collection.
- When an ABL object that inherits from a .NET object is
on the session object chain, it can have circular references that
prevent it from being deleted (as with pure ABL objects). When there
are no more ABL references to such an ABL-derived .NET object,
the object is removed from the object chain, but may still be instantiated
because of references to it from .NET. If the application
re-obtains a reference to the object in ABL by getting it from .NET,
the reference is again placed on the object chain.
Note: To obtain the first .NET form or ABL FormProxy
object in the list of all valid form objects created in the current
ABL session, use the FIRST-FORM attribute.