VA Smalltalk supports external language entry points that can be used instead of hand-written code. See Entry points.
• The call-in is not performed from a user primitive, so the EsDefineUserPrimitiveEnvironment macro must be used before any VA Smalltalk API calls are made.
• The calls to EsSaveObject are necessary because the EsU32ToInteger, EsI64ToInteger, EsU64ToInteger and EsUPtrToInteger calls can result in a garbage collection.
• The object result from EsSendMessage is a Smalltalk object, so it must be converted back to C format before being returned.
|