Either an instance of or a pointer to an FLI structure.
The name of the slot of object to be accessed.
The type of object . Specifying type makes accessing the object faster. If the specified type is different to the actual type, foreign-slot-value
returns the value of the object in the format of type where possible.
This option is only important when dealing with slots which are aggregate FLI types, and cannot be returned by value.
If set to t
, foreign-slot-value
makes a copy of the aggregate slot of the object pointed to by pointer and returns the copy.
If set to nil
, foreign-slot-value
returns the aggregate slot of the object directly.
If set to error
then foreign-slot-value
signals an error. This is the default value for copy-foreign-object .
The function foreign-slot-value
returns the value of a slot in a specified object. An error is signaled if the slot is an aggregate type and copy-foreign-object is not set accordingly
The function foreign-slot-value
can be used with setf
to set the value of a slot in a structure, as shown in the example below.
In the following example a foreign structure is defined, an instance of the structure is made with my-pos
pointing to the instance, and foreign-slot-value
is used to set the y
slot of the object to 10.
(fli:define-c-struct POS
(x :int)
(y :int)
(z :int))
(setq my-pos (fli:allocate-foreign-object :type 'POS))
(setf (fli:foreign-slot-value my-pos 'y) 10)
The next line returns the value of the y
slot at my-pos
, which is 10.
(fli:foreign-slot-value my-pos 'y)