The somUninit method performs the inverse of object initialization. Class implementors that introduce instance data that points to allocated storage should override somUninit so allocated storage can be freed when an object is freed.
This method is called automatically by somFree to clean up anything necessary (such as extra storage dynamically allocated to the object) before somFree releases the storage allocated to the object itself.
Code responsible for freeing an object must first know that there will be no further references to this object. Once this is known, this code would normally invoke somFree (which calls somUninit). In cases where somRenew was used to create an object instance, however, somFree cannot be called (e.g., the storage containing the object may simply be a location on the stack), and in this case, somUninit must be called explicitly.
When overriding this method, always call the parent-class versions of this method after doing your own un-initialization. Furthermore, just as with somInit, because your method may be called multiple times (due to multiple inheritance), you should zero out references to memory that is freed, and check for zeros before freeing memory and calling the parent methods.