razor_rpm_open() should take an error parameter, not an atomic
authorJ. Ali Harlow <ali@juiblex.co.uk>
Fri Feb 17 18:35:10 2012 +0000 (2012-02-17)
changeset 4262e896ad9754b
parent 425 0c8bdd8dc942
child 427 08b9c2e3cb37
razor_rpm_open() should take an error parameter, not an atomic
librazor/razor.h
librazor/rpm.c
src/main.c
src/rpm.c
     1.1 --- a/librazor/razor.h	Thu Feb 16 17:44:25 2012 +0000
     1.2 +++ b/librazor/razor.h	Fri Feb 17 18:35:10 2012 +0000
     1.3 @@ -453,7 +453,7 @@
     1.4  void razor_relocations_destroy(struct razor_relocations *relocations);
     1.5  
     1.6  struct razor_rpm *razor_rpm_open(const char *filename,
     1.7 -				 struct razor_atomic *atomic);
     1.8 +				 struct razor_error **error);
     1.9  void razor_rpm_get_details(struct razor_rpm *rpm, ...);
    1.10  void razor_rpm_set_relocations(struct razor_rpm *rpm,
    1.11  			       struct razor_relocations *relocations);
     2.1 --- a/librazor/rpm.c	Thu Feb 16 17:44:25 2012 +0000
     2.2 +++ b/librazor/rpm.c	Fri Feb 17 18:35:10 2012 +0000
     2.3 @@ -602,28 +602,24 @@
     2.4  }
     2.5  
     2.6  RAZOR_EXPORT struct razor_rpm *
     2.7 -razor_rpm_open(const char *filename, struct razor_atomic *atomic)
     2.8 +razor_rpm_open(const char *filename, struct razor_error **error)
     2.9  {
    2.10  	struct razor_rpm *rpm;
    2.11  	struct rpm_header_index *base, *index;
    2.12 -	struct razor_error *error = NULL;
    2.13  	unsigned int count, i, nindex, hsize;
    2.14  	const char *name, *prefix;
    2.15 -	char *s;
    2.16  
    2.17  	assert (filename != NULL);
    2.18  
    2.19  	rpm = zalloc(sizeof *rpm);
    2.20  	if (rpm == NULL) {
    2.21 -		razor_atomic_abort(atomic, "Not enough memory");
    2.22 +		razor_set_error(error, NULL, "Not enough memory");
    2.23  		return NULL;
    2.24  	}
    2.25  	memset(rpm, 0, sizeof *rpm);
    2.26  
    2.27 -	rpm->map = razor_file_get_contents(filename, &rpm->size, 0, &error);
    2.28 +	rpm->map = razor_file_get_contents(filename, &rpm->size, 0, error);
    2.29  	if (!rpm->map) {
    2.30 -		razor_atomic_abort(atomic, razor_error_get_msg(error));
    2.31 -		razor_error_free(error);
    2.32  		free(rpm);
    2.33  		return NULL;
    2.34  	}
    2.35 @@ -654,10 +650,8 @@
    2.36  					      &count);
    2.37  		if (name) {
    2.38  			razor_rpm_close(rpm);
    2.39 -			s = razor_concat(filename,
    2.40 -					 ": Old filenames not supported", NULL);
    2.41 -			razor_atomic_abort(atomic, s);
    2.42 -			free(s);
    2.43 +			razor_set_error(error, filename,
    2.44 +					"Old filenames not supported");
    2.45  			return NULL;
    2.46  		}
    2.47  	}
    2.48 @@ -676,11 +670,8 @@
    2.49  						&count);
    2.50  		if (prefix) {
    2.51  			razor_rpm_close(rpm);
    2.52 -			s = razor_concat(filename,
    2.53 -					 ": Default prefix not supported",
    2.54 -					 NULL);
    2.55 -			razor_atomic_abort(atomic, s);
    2.56 -			free(s);
    2.57 +			razor_set_error(error, filename,
    2.58 +					"Default prefix not supported");
    2.59  			return NULL;
    2.60  		}
    2.61  	}
     3.1 --- a/src/main.c	Thu Feb 16 17:44:25 2012 +0000
     3.2 +++ b/src/main.c	Fri Feb 17 18:35:10 2012 +0000
     3.3 @@ -699,6 +699,7 @@
     3.4  	struct razor_importer *importer;
     3.5  	struct razor_set *set;
     3.6  	struct razor_rpm *rpm;
     3.7 +	struct razor_error *error=NULL;
     3.8  	struct razor_atomic *atomic;
     3.9  	int len, imported_count = 0;
    3.10  	char filename[256];
    3.11 @@ -724,14 +725,13 @@
    3.12  			continue;
    3.13  		snprintf(filename, sizeof filename,
    3.14  			 "%s/%s", dirname, de->d_name);
    3.15 -		atomic = razor_atomic_open("Read RPM");
    3.16 -		rpm = razor_rpm_open(filename, atomic);
    3.17 -		if (rpm == NULL)
    3.18 -			fprintf(stderr, "%s\n",
    3.19 -				razor_atomic_get_error_msg(atomic));
    3.20 -		razor_atomic_destroy(atomic);
    3.21 -		if (rpm == NULL)
    3.22 +		rpm = razor_rpm_open(filename, &error);
    3.23 +		if (rpm == NULL) {
    3.24 +			fprintf(stderr, "%s\n", razor_error_get_msg(error));
    3.25 +			razor_error_free(error);
    3.26 +			error=NULL;
    3.27  			continue;
    3.28 +		}
    3.29  		if (razor_importer_add_rpm(importer, rpm)) {
    3.30  			fprintf(stderr, "couldn't import %s\n", filename);
    3.31  			break;
    3.32 @@ -830,6 +830,7 @@
    3.33   	struct razor_package *package;
    3.34  	struct razor_property *property;
    3.35  	struct razor_rpm *rpm;
    3.36 +	struct razor_error *error=NULL;
    3.37  	const char *name, *version, *arch, *summary, *desc, *url, *license;
    3.38  	const char *preunprog, *preun, *postunprog, *postun;
    3.39  	const char *install_prefix;
    3.40 @@ -856,9 +857,11 @@
    3.41  		s = rpm_filename(name, version, arch);
    3.42  		file = razor_concat("rpms/", s, NULL);
    3.43  		free(s);
    3.44 -		rpm = razor_rpm_open(file, atomic);
    3.45 +		rpm = razor_rpm_open(file, &error);
    3.46  		free(file);
    3.47  		if (rpm == NULL) {
    3.48 +			razor_atomic_abort(atomic, razor_error_get_msg(error));
    3.49 +			razor_error_free(error);
    3.50  			razor_package_iterator_destroy(pkg_iter);
    3.51  			razor_importer_destroy(importer);
    3.52  			return NULL;
    3.53 @@ -917,6 +920,7 @@
    3.54  	const char *name, *version, *arch;
    3.55  	char *file, *s;
    3.56  	struct razor_rpm *rpm;
    3.57 +	struct razor_error *error=NULL;
    3.58  
    3.59  	razor_package_get_details(set, package,
    3.60  				  RAZOR_DETAIL_NAME, &name,
    3.61 @@ -930,11 +934,12 @@
    3.62  	s = rpm_filename(name, version, arch);
    3.63  	file = razor_concat("rpms/", s, NULL);
    3.64  	free(s);
    3.65 -	rpm = razor_rpm_open(file, atomic);
    3.66 +	rpm = razor_rpm_open(file, &error);
    3.67  	free(file);
    3.68  	if (rpm == NULL) {
    3.69 -		fprintf(stderr, "%s\n",
    3.70 -			razor_atomic_get_error_msg(atomic));
    3.71 +		razor_atomic_abort(atomic, razor_error_get_msg(error));
    3.72 +		fprintf(stderr, "%s\n", razor_error_get_msg(error));
    3.73 +		razor_error_free(error);
    3.74  		return -1;
    3.75  	}
    3.76  	if (relocations)
     4.1 --- a/src/rpm.c	Thu Feb 16 17:44:25 2012 +0000
     4.2 +++ b/src/rpm.c	Fri Feb 17 18:35:10 2012 +0000
     4.3 @@ -447,16 +447,13 @@
     4.4  create_set_from_command_line(int argc, const char *argv[])
     4.5  {
     4.6  	struct razor_importer *importer;
     4.7 -	struct razor_atomic *atomic;
     4.8  	struct razor_rpm *rpm;
     4.9  	int i;
    4.10  
    4.11  	importer = razor_importer_create();
    4.12  
    4.13  	for (i = 0; i < argc; i++) {
    4.14 -		atomic = razor_atomic_open("Read RPM");
    4.15 -		rpm = razor_rpm_open(argv[i], atomic);
    4.16 -		razor_atomic_destroy(atomic);
    4.17 +		rpm = razor_rpm_open(argv[i], NULL);
    4.18  		if (rpm == NULL)
    4.19  			continue;
    4.20  		if (razor_importer_add_rpm(importer, rpm))