Set the destroy method callback for a data type
int SLclass_set_destroy_function (cl, destroy_fun)
SLang_Class_Type *cl
void (*destroy_fun) (unsigned char, VOID_STAR);
SLclass_set_destroy_function
is used to set the destroy
callback for a data type. The data type's class cl
must have
been previously obtained via a call to SLclass_allocate_class
.
When called, destroy_fun
will be passed two arguments: a
unsigned char which represents the data type, and the address of the
object to be destroyed.
SLclass_set_destroy_function
returns zero upon success, and
-1
upon failure.
The destroy method for SLANG_STRING_TYPE
looks like:
static void string_destroy (unsigned char type, VOID_STAR ptr)
{
char *s = *(char **) ptr;
if (s != NULL) SLang_free_slstring (*(char **) s);
}
Data types of class SLANG_CLASS_TYPE_SCALAR do not require a destroy callback. However, other classes do.
SLclass_allocate_class, SLclass_register_class