Memory free functions allow memory associated with a specific typed variable instance to be freed. Their use is not required to free memory - the run-time function rtxMemFree can be called directly with a context variable to free all memory associated with a context. There are applications, however, where freeing the memory contents of a specific variable are desirable.
Memory free functions are not generated for all types - only those that contain fields that use dynamic memory. This includes types that contain elements or attributes that reference other types that use dynamic memory. The format of a generated memory free function is as follows:
[<ns>]Free_<typeName>
where <typeName>
is the name of the XSD
type for which the function is being generated and
<ns>
is an optional namespace setting
that can be used to disambiguate names from multiple sources (note:
this should not be confused with XML namespaces which are
different).
The calling sequence for each generated memory free function is as follows:
<freeFunc> (OSCTXT* pctxt, <typeName>* pvalue)
In this definition, <freeFunc> denotes the formatted function name defined above.
The pctxt
argument is used to hold a context pointer
to keep track of global parameters. The pvalue
argument
is a pointer to a variable of the type containing the memory to be
freed.