/* --------------------------------------------------------------------------- * free memory used by PCB */ void FreePCBMemory (PCBTypePtr PCBPtr) { int i; if (PCBPtr) { MYFREE (PCBPtr->Name); MYFREE (PCBPtr->Filename); MYFREE (PCBPtr->PrintFilename); if (PCBPtr->Data) FreeDataMemory (PCBPtr->Data); MYFREE (PCBPtr->Data); /* release font symbols */ for (i = 0; i <= MAX_FONTPOSITION; i++) MYFREE (PCBPtr->Font.Symbol[i].Line); FreeLibraryMemory (&PCBPtr->NetlistLib); FreeAttributeListMemory (&PCBPtr->Attributes); /* clear struct */ memset (PCBPtr, 0, sizeof (PCBType)); } else { fprintf (stderr, "Warning: Tried to FreePCBMemory(null)\n"); } }
/*! * \brief Free the memory used by PCB. */ void FreePCBMemory (PCBType *pcb) { int i; if (pcb == NULL) { return; } free (pcb->Name); free (pcb->Filename); free (pcb->PrintFilename); FreeDataMemory (pcb->Data); free (pcb->Data); /* release font symbols */ for (i = 0; i <= MAX_FONTPOSITION; i++) { free (pcb->Font.Symbol[i].Line); } FreeLibraryMemory (&pcb->NetlistLib); NetlistChanged (0); FreeAttributeListMemory (&pcb->Attributes); /* clear struct */ memset (pcb, 0, sizeof (PCBType)); }
/* --------------------------------------------------------------------------- * clears the contents of the paste buffer */ void ClearBuffer (BufferType *Buffer) { if (Buffer && Buffer->Data) { FreeDataMemory (Buffer->Data); Buffer->Data->pcb = PCB; } }