# HG changeset patch # User J. Ali Harlow # Date 1329503710 0 # Node ID 2e896ad9754b5dc797d24ba8c7c343f1f8f7ea2f # Parent 0c8bdd8dc94291e2d09df3a6652135d4daa78bdd razor_rpm_open() should take an error parameter, not an atomic diff -r 0c8bdd8dc942 -r 2e896ad9754b librazor/razor.h --- a/librazor/razor.h Thu Feb 16 17:44:25 2012 +0000 +++ b/librazor/razor.h Fri Feb 17 18:35:10 2012 +0000 @@ -453,7 +453,7 @@ void razor_relocations_destroy(struct razor_relocations *relocations); struct razor_rpm *razor_rpm_open(const char *filename, - struct razor_atomic *atomic); + struct razor_error **error); void razor_rpm_get_details(struct razor_rpm *rpm, ...); void razor_rpm_set_relocations(struct razor_rpm *rpm, struct razor_relocations *relocations); diff -r 0c8bdd8dc942 -r 2e896ad9754b librazor/rpm.c --- a/librazor/rpm.c Thu Feb 16 17:44:25 2012 +0000 +++ b/librazor/rpm.c Fri Feb 17 18:35:10 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; } } diff -r 0c8bdd8dc942 -r 2e896ad9754b src/main.c --- a/src/main.c Thu Feb 16 17:44:25 2012 +0000 +++ b/src/main.c Fri Feb 17 18:35:10 2012 +0000 @@ -699,6 +699,7 @@ struct razor_importer *importer; struct razor_set *set; struct razor_rpm *rpm; + struct razor_error *error=NULL; struct razor_atomic *atomic; int len, imported_count = 0; char filename[256]; @@ -724,14 +725,13 @@ continue; snprintf(filename, sizeof filename, "%s/%s", dirname, de->d_name); - atomic = razor_atomic_open("Read RPM"); - rpm = razor_rpm_open(filename, atomic); - if (rpm == NULL) - fprintf(stderr, "%s\n", - razor_atomic_get_error_msg(atomic)); - razor_atomic_destroy(atomic); - if (rpm == NULL) + rpm = razor_rpm_open(filename, &error); + if (rpm == NULL) { + fprintf(stderr, "%s\n", razor_error_get_msg(error)); + razor_error_free(error); + error=NULL; continue; + } if (razor_importer_add_rpm(importer, rpm)) { fprintf(stderr, "couldn't import %s\n", filename); break; @@ -830,6 +830,7 @@ struct razor_package *package; struct razor_property *property; struct razor_rpm *rpm; + struct razor_error *error=NULL; const char *name, *version, *arch, *summary, *desc, *url, *license; const char *preunprog, *preun, *postunprog, *postun; const char *install_prefix; @@ -856,9 +857,11 @@ s = rpm_filename(name, version, arch); file = razor_concat("rpms/", s, NULL); free(s); - rpm = razor_rpm_open(file, atomic); + rpm = razor_rpm_open(file, &error); free(file); if (rpm == NULL) { + razor_atomic_abort(atomic, razor_error_get_msg(error)); + razor_error_free(error); razor_package_iterator_destroy(pkg_iter); razor_importer_destroy(importer); return NULL; @@ -917,6 +920,7 @@ const char *name, *version, *arch; char *file, *s; struct razor_rpm *rpm; + struct razor_error *error=NULL; razor_package_get_details(set, package, RAZOR_DETAIL_NAME, &name, @@ -930,11 +934,12 @@ s = rpm_filename(name, version, arch); file = razor_concat("rpms/", s, NULL); free(s); - rpm = razor_rpm_open(file, atomic); + rpm = razor_rpm_open(file, &error); free(file); if (rpm == NULL) { - fprintf(stderr, "%s\n", - razor_atomic_get_error_msg(atomic)); + razor_atomic_abort(atomic, razor_error_get_msg(error)); + fprintf(stderr, "%s\n", razor_error_get_msg(error)); + razor_error_free(error); return -1; } if (relocations) diff -r 0c8bdd8dc942 -r 2e896ad9754b src/rpm.c --- a/src/rpm.c Thu Feb 16 17:44:25 2012 +0000 +++ b/src/rpm.c Fri Feb 17 18:35:10 2012 +0000 @@ -447,16 +447,13 @@ create_set_from_command_line(int argc, const char *argv[]) { struct razor_importer *importer; - struct razor_atomic *atomic; struct razor_rpm *rpm; int i; importer = razor_importer_create(); for (i = 0; i < argc; i++) { - atomic = razor_atomic_open("Read RPM"); - rpm = razor_rpm_open(argv[i], atomic); - razor_atomic_destroy(atomic); + rpm = razor_rpm_open(argv[i], NULL); if (rpm == NULL) continue; if (razor_importer_add_rpm(importer, rpm))