void XFS_Free(XFSArchive *xa) { if (xa != NULL) { if (xa->lpHeader != NULL) delete xa->lpHeader; XFSFileEntry *xe; XFSFileEntry *xn; xe = xa->lpFileTable; if (xe != NULL) { //chain delete do { xn = (XFSFileEntry *)xe->lpNext; delete xe; xe = xn; } while (xn != NULL); } delete xa; } }