free: Release the specified object and clean up its memory usage
Description
This generic function is available for explicitly releasing
the memory associated with the given object.
It is intended for use on external pointer objects
which do not have an automatic finalizer
function/routine that cleans up the memory that is used
by the native object.
This is the case, for example, for an XMLInternalDocument.
We cannot free it with a finalizer in all cases as we may have
a reference to a node in the associated document tree.
So the user must explicitly release the XMLInternalDocument object
to free the memory it occupies.
Usage
free(obj)
Arguments
obj
the object whose memory is to be released,
typically an external pointer object or object
that contains a slot that is an external pointer.
Value
An updated version of the object with the external address set to NIL.
This is up to the individual methods.
Details
The methods will generally call a C routine to free the native
memory.