datablockFreePtr(cur);
static void realDoDroppedFile(char *buf){  char *lastpart = NULL;  if (buf[0] == 0)    return;  buf = fixbuf(buf);  if (buf[0] == 0)    return;  if (curFiles == NULL) {    curFiles = clCalloc(sizeof(struct DataBlockKeeper), 1);  }  if (clIsDirectory(buf)) {    struct DataBlockEnumeration *dbe = dbeLoadDirectory(buf);    struct DataBlockEnumerationIterator *dbi;    struct DataBlock *cur;    dbi = dbe->newenumiter(dbe);    assert(dbi);    while ( ( cur = dbe->istar(dbe, dbi) ) ) {      curFiles->db[curFiles->size++] = *cur;      addAndProcessDataBlock(distmatglob, cur);      stringstackPush(labels, dbe->ilabel(dbe, dbi));      dbe->istep(dbe, dbi);      datablockFreePtr(cur);    }  } else {    curFiles->db[curFiles->size++] =  fileToDataBlock(buf);    lastpart = findLastPart(buf);    stringstackPush(labels, lastpart);  }  //clFree(buf);}