Next Prev Up Top Contents Index

with-dynamic-foreign-objects

Macro
Summary

Allocates memory for a list of foreign objects, executes a list of forms which may use the objects across the scope of the macro, and then deallocates the foreign objects.

Package

fli

Signature

with-dynamic-foreign-objects bindings &body body => last

bindings ::= (( var foreign-type )*)

body ::= form *

Arguments

bindings

A list of variable bindings.

var

A symbol to be bound to a foreign type.

foreign-type

A foreign type descriptor to be bound to the variable var .

body

A list of forms to be executed with bindings in effect.

form

A form to be executed.

Values

last

The value of the last form in body .

Description

The function with-dynamic-foreign-objects binds variables according to the list bindings , and then executes body . Each element of bindings is a list which binds a symbol to a pointer which points to a locally allocated instance of a foreign type. The lifetime of the bound foreign objects, and hence the allocation of the memory they take up, is within the scope of the with-dynamic-foreign-objects function.

Any object created with allocate-dynamic-foreign-object within body will automatically be deallocated once the scope of the with-dynamic-foreign-objects function has been left.

Only standard foreign types can be bound using bindings . Foreign pointer types should be allocated using allocate-dynamic-foreign-object .

Example

An example using with-dynamic-foreign-objects and allocate-dynamic-foreign-object is given in An example of dynamic memory allocation.

See Also

allocate-dynamic-foreign-object

free-foreign-object

with-coerced-pointer


LispWorks Foreign Language Interface User Guide and Reference Manual - 14 Dec 2001

Next Prev Up Top Contents Index