fslot-value-typed

Function

Package: ff

Arguments: type allocation object &rest slot-names

Access a slot from an object. The type must be

The allocation must be one of :foreign, :foreign-static-gc, :lisp, :c or nil. If the allocation is nil then the allocation type will be computed from the object argument. Note that an allocation type of :foreign or :foreign-static-gc will yield identical results, so you can specify either.

The slot-names are symbols or integers. Symbols name the slots to access. Integers are used to specify array indices.

The symbol naming a slot can either be the exact symbol used when the type was defined, or it can be a keyword package symbol with the same symbol-name as the one used to define the slot.

The value accessed must be a primitive value. It cannot be a structure or a whole array.

The special slot-name asterisk '*' is used to denote dereferencing a pointer. If a slot has the type (* foo) then you use the * slot name to indicate that you want to follow the pointer to the foo-typed object. If the object is an array, then the asterisk will access the first element of the array (the element at index zero).

When the allocation argument is given (i.e. not nil), and the slot names are all constants, then this function will be open coded by the compiler if the optimize-fslot-value-switch is true.

See ftype.htm for information on foreign types in Allegro CL and foreign-functions.htm for general information on foreign functions in Allegro CL.

The documentation is described in introduction.htm and the index is in index.htm.

Copyright (c) 1998-2000, Franz Inc. Berkeley, CA., USA. All rights reserved.

Created 2000.10.5.