#include "pool.h"
#include "util.h"
+#include "dirpool.h"
#define DIR_BLOCK 127
-typedef struct _Dirpool {
- Id *dirs;
- int ndirs;
- Id *dirtraverse;
-} Dirpool;
-
void
-dirpool_create(Dirpool *dp)
+dirpool_init(Dirpool *dp)
{
memset(dp, 0, sizeof(*dp));
}
void
+dirpool_free(Dirpool *dp)
+{
+ sat_free(dp->dirs);
+ sat_free(dp->dirtraverse);
+}
+
+void
dirpool_make_dirtraverse(Dirpool *dp)
{
Id parent, i, *dirtraverse;
if (!dp->ndirs)
{
+ if (!create)
+ return 0;
dp->ndirs = 2;
dp->dirs = sat_extend_resize(dp->dirs, dp->ndirs, sizeof(Id), DIR_BLOCK);
dp->dirs[0] = 0;