diff -r 829d6711b316 -r e2ddf497b914 librazor/razor.c --- a/librazor/razor.c Wed Jul 09 10:11:13 2008 -0400 +++ b/librazor/razor.c Wed Jan 07 18:00:06 2009 +0000 @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include @@ -101,18 +100,13 @@ const char *filename) { struct razor_set_section *s, *sections; - struct stat stat; struct array *array; const char *pool; - int fd, i; + int i; - fd = open(filename, O_RDONLY); - if (fstat(fd, &stat) < 0) + *header = razor_file_get_contents(filename, header_size); + if (!*header) return -1; - *header = mmap(NULL, stat.st_size, PROT_READ, MAP_PRIVATE, fd, 0); - if (*header == MAP_FAILED) - return -1; - *header_size = stat.st_size; sections = (void *) *header + sizeof **header; pool = (void *) sections + (*header)->num_sections * sizeof *sections; @@ -131,7 +125,6 @@ array->size = s->size; array->alloc = s->size; } - close(fd); return 0; } @@ -180,7 +173,7 @@ assert (set != NULL); if (set->header) { - munmap(set->header, set->header_size); + razor_file_free_contents(set->header, set->header_size); } else { for (i = 0; i < ARRAY_SIZE(razor_sections); i++) { a = (void *) set + razor_sections[i].offset; @@ -189,7 +182,8 @@ } if (set->details_header) { - munmap(set->details_header, set->details_header_size); + razor_file_free_contents(set->details_header, + set->details_header_size); } else { for (i = 0; i < ARRAY_SIZE(razor_details_sections); i++) { a = (void *) set + razor_details_sections[i].offset; @@ -198,7 +192,8 @@ } if (set->files_header) { - munmap(set->files_header, set->files_header_size); + razor_file_free_contents(set->files_header, + set->files_header_size); } else { for (i = 0; i < ARRAY_SIZE(razor_files_sections); i++) { a = (void *) set + razor_files_sections[i].offset;