break;
#ifdef WITH_NTFS_3G
case BLOB_IN_NTFS_VOLUME:
- if (old->ntfs_loc) {
- new->ntfs_loc = memdup(old->ntfs_loc,
- sizeof(struct ntfs_location));
- if (new->ntfs_loc == NULL)
- goto out_free;
- new->ntfs_loc->path = STRDUP(old->ntfs_loc->path);
- new->ntfs_loc->attr_name = NULL;
- if (new->ntfs_loc->path == NULL)
- goto out_free;
- if (new->ntfs_loc->attr_name_nchars != 0) {
- new->ntfs_loc->attr_name =
- utf16le_dup(old->ntfs_loc->attr_name);
- if (new->ntfs_loc->attr_name == NULL)
- goto out_free;
- }
- }
+ new->ntfs_loc = clone_ntfs_location(old->ntfs_loc);
+ if (!new->ntfs_loc)
+ goto out_free;
break;
#endif
}
break;
#ifdef WITH_NTFS_3G
case BLOB_IN_NTFS_VOLUME:
- if (blob->ntfs_loc) {
- FREE(blob->ntfs_loc->path);
- FREE(blob->ntfs_loc->attr_name);
- FREE(blob->ntfs_loc);
- }
+ if (blob->ntfs_loc)
+ free_ntfs_location(blob->ntfs_loc);
break;
#endif
- default:
- break;
}
}
return tstrcmp(blob1->file_on_disk, blob2->file_on_disk);
#ifdef WITH_NTFS_3G
case BLOB_IN_NTFS_VOLUME:
- return tstrcmp(blob1->ntfs_loc->path, blob2->ntfs_loc->path);
+ return cmp_ntfs_locations(blob1->ntfs_loc, blob2->ntfs_loc);
#endif
default:
/* No additional sorting order defined for this resource