dtclose.c 472 B

12345678910111213141516171819202122232425262728
  1. #include <cdt/dthdr.h>
  2. #include <stdlib.h>
  3. /* Close a dictionary
  4. **
  5. ** Written by Kiem-Phong Vo (05/25/96)
  6. */
  7. int dtclose(Dt_t* dt)
  8. {
  9. if(!dt || dt->nview > 0 ) /* can't close if being viewed */
  10. return -1;
  11. if(dt->view) /* turn off viewing */
  12. dtview(dt,NULL);
  13. /* release all allocated data */
  14. (void)dt->meth->searchf(dt, NULL, DT_CLEAR);
  15. if(dtsize(dt) > 0)
  16. return -1;
  17. if(dt->data->ntab > 0)
  18. free(dt->data->htab);
  19. free(dt->data);
  20. free(dt);
  21. return 0;
  22. }