xmfree (s->objfile->md, s->debugformat); xmfree (s->objfile->md, s);
xfree (s->debugformat); xfree (s);
free_symtab (struct symtab *s){  int i, n;  struct blockvector *bv;  switch (s->free_code)    {    case free_nothing:      /* All the contents are part of a big block of memory (an obstack),         and some other symtab is in charge of freeing that block.         Therefore, do nothing.  */      break;    case free_contents:      /* Here all the contents were malloc'ed structure by structure         and must be freed that way.  */      /* First free the blocks (and their symbols.  */      bv = BLOCKVECTOR (s);      n = BLOCKVECTOR_NBLOCKS (bv);      for (i = 0; i < n; i++)	free_symtab_block (s->objfile, BLOCKVECTOR_BLOCK (bv, i));      /* Free the blockvector itself.  */      xmfree (s->objfile->md, bv);      /* Also free the linetable.  */    case free_linetable:      /* Everything will be freed either by our `free_func'         or by some other symtab, except for our linetable.         Free that now.  */      if (LINETABLE (s))	xmfree (s->objfile->md, LINETABLE (s));      break;    }  /* If there is a single block of memory to free, free it.  */  if (s->free_func != NULL)    s->free_func (s);  /* Free source-related stuff */  if (s->line_charpos != NULL)    xmfree (s->objfile->md, s->line_charpos);  if (s->fullname != NULL)    xmfree (s->objfile->md, s->fullname);  if (s->debugformat != NULL)    xmfree (s->objfile->md, s->debugformat);  xmfree (s->objfile->md, s);}