/* --------------------------------------------------------------------------- * frees memory used by an element */ void FreeElementMemory (ElementType *element) { if (element == NULL) return; ELEMENTNAME_LOOP (element); { free (textstring); } END_LOOP; PIN_LOOP (element); { free (pin->Name); free (pin->Number); } END_LOOP; PAD_LOOP (element); { free (pad->Name); free (pad->Number); } END_LOOP; g_list_free_full (element->Pin, (GDestroyNotify)FreePin); g_list_free_full (element->Pad, (GDestroyNotify)FreePad); g_list_free_full (element->Line, (GDestroyNotify)FreeLine); g_list_free_full (element->Arc, (GDestroyNotify)FreeArc); FreeAttributeListMemory (&element->Attributes); memset (element, 0, sizeof (ElementType)); }
/* --------------------------------------------------------------------------- * frees memory used by an element */ void FreeElementMemory (ElementTypePtr Element) { if (Element) { ELEMENTNAME_LOOP (Element); { MYFREE (textstring); } END_LOOP; PIN_LOOP (Element); { MYFREE (pin->Name); MYFREE (pin->Number); } END_LOOP; PAD_LOOP (Element); { MYFREE (pad->Name); MYFREE (pad->Number); } END_LOOP; MYFREE (Element->Pin); MYFREE (Element->Pad); MYFREE (Element->Line); MYFREE (Element->Arc); FreeAttributeListMemory (&Element->Attributes); memset (Element, 0, sizeof (ElementType)); } }