.TH LIBNORMALFORM_FREE 3 LIBNORMALFORM .SH NAME libnormalform_free \- Release a reference .SH SYNOPSIS .nf #include void libnormalform_free(/* LIBNORMALFORM_SENTENCE | struct libnormalform_term */ *\fIobj\fP); .fi .PP Link with .IR -lnormalform . .SH DESCRIPTION The .BR libnormalform_free () function can operate on both the type .I LIBNORMALFORM_SENTENCE * and the type .IR "struct libnormalform_term *" . The function recursively deallocates .IR obj , however sence .I LIBNORMALFORM_SENTENCE * is reference counted, .IR obj , if it is a .IR "LIBNORMALFORM_SENTENCE *" , and any .IR "LIBNORMALFORM_SENTENCE *" stored in side it, will have it's reference count decreased by one, and the object is only deallocated (recursively) once the the reference count reaches 0. .PP No action is taken if .I obj is .IR NULL . .SH RETURN VALUE None. .SH ERRORS None. .SH ATTRIBUTES For an explanation of the terms used in this section, see .BR attributes (7) and .IR "info \(dq(libc)POSIX Safety Concepts\(dq" . .TS allbox; lb lb lb l l l. Interface Attribute Value T{ .BR libnormalform_free () T} Thread safety MT-Safe race:\fIobj\fP T{ .BR libnormalform_free () T} Async-signal safety AS-Unsafe heap T{ .BR libnormalform_free () T} Async-cancel safety AC-Unsafe heap .TE .SH SEE ALSO .BR libnormalform (7), .BR libnormalform_ref (3), .BR libnormalform_free (3)