diff -r 8cbc438cc298 -r 2d8fecb8f024 librazor/rpm.c --- a/librazor/rpm.c Thu Feb 16 17:33:47 2012 +0000 +++ b/librazor/rpm.c Fri Mar 23 20:24:09 2012 +0000 @@ -602,28 +602,24 @@ } RAZOR_EXPORT struct razor_rpm * -razor_rpm_open(const char *filename, struct razor_atomic *atomic) +razor_rpm_open(const char *filename, struct razor_error **error) { struct razor_rpm *rpm; struct rpm_header_index *base, *index; - struct razor_error *error = NULL; unsigned int count, i, nindex, hsize; const char *name, *prefix; - char *s; assert (filename != NULL); rpm = zalloc(sizeof *rpm); if (rpm == NULL) { - razor_atomic_abort(atomic, "Not enough memory"); + razor_set_error(error, NULL, "Not enough memory"); return NULL; } memset(rpm, 0, sizeof *rpm); - rpm->map = razor_file_get_contents(filename, &rpm->size, 0, &error); + rpm->map = razor_file_get_contents(filename, &rpm->size, 0, error); if (!rpm->map) { - razor_atomic_abort(atomic, razor_error_get_msg(error)); - razor_error_free(error); free(rpm); return NULL; } @@ -654,10 +650,8 @@ &count); if (name) { razor_rpm_close(rpm); - s = razor_concat(filename, - ": Old filenames not supported", NULL); - razor_atomic_abort(atomic, s); - free(s); + razor_set_error(error, filename, + "Old filenames not supported"); return NULL; } } @@ -676,11 +670,8 @@ &count); if (prefix) { razor_rpm_close(rpm); - s = razor_concat(filename, - ": Default prefix not supported", - NULL); - razor_atomic_abort(atomic, s); - free(s); + razor_set_error(error, filename, + "Default prefix not supported"); return NULL; } }