示例#1
0
文件: mymem.c 项目: bert/pcb-update
/* ---------------------------------------------------------------------------
 * 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");
    }
}
示例#2
0
文件: mymem.c 项目: majenkotech/pcb
/*!
 * \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));
}
示例#3
0
文件: buffer.c 项目: bgamari/geda-pcb
/* ---------------------------------------------------------------------------
 * clears the contents of the paste buffer
 */
void
ClearBuffer (BufferType *Buffer)
{
  if (Buffer && Buffer->Data)
    {
      FreeDataMemory (Buffer->Data);
      Buffer->Data->pcb = PCB;
    }
}