| Allegro CL version 8.2 New since 8.2 release. |
Determines how the foreign interface will respond to a structure passed into def-foreign-call as an argument, or returned from the same in the returning keyword argument. The argument or return value can be specified C style as by value (without a *) or by reference (with a *). Allegro CL previously only supported by reference so by value specifications were silently converted to by reference specifications. Since both are now supported, existing code which depended on that silent conversion must be handled correctly and this variable controls that handling. Note that by reference specification (with a *) will always be made by reference and by value specification (without a *) will be made by value or by reference depending on the value of this variable or, alternatively, by the value of the pass-structs-by-value argument to def-foreign-call.
See Passing structures by value in foreign-functions.htm for more information.
This variable can have the following values:
nil
- structs passed by value are converted
to pass-by-reference when seen, silently, as was the old behavior.
:warn
- structs passed by value are
converted to pass-by-reference when seen, and in addition a warning is
issued. This is the default value.
t
- structs specified as passed by value are
actually passed by value, making the interface consistent with C
calling conventions.
Copyright (c) 1998-2016, Franz Inc. Oakland, CA., USA. All rights reserved.
This page is new in the 8.2 release.
Created 2016.6.21.
| Allegro CL version 8.2 New since 8.2 release. |