
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)