Memory Free Functions

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 pctxtargument is used to hold a context pointer to keep track of global parameters. The pvalueargument is a pointer to a variable of the type containing the memory to be freed.