From 1e5616fa3cc73ccce5b8880d6e6ffc73aae5c91d Mon Sep 17 00:00:00 2001 From: Tomas Mlcoch Date: Tue, 3 Jun 2014 13:55:45 +0200 Subject: [PATCH] Refactored cr_package_from_header - removed unnecessary params --- src/parsehdr.c | 14 +------------- src/parsehdr.h | 18 +----------------- src/parsepkg.c | 19 +++++++++++++++---- 3 files changed, 17 insertions(+), 34 deletions(-) diff --git a/src/parsehdr.c b/src/parsehdr.c index 5c5ecc5..20e6134 100644 --- a/src/parsehdr.c +++ b/src/parsehdr.c @@ -138,11 +138,7 @@ cr_compare_dependency(const char *dep1, const char *dep2) cr_Package * -cr_package_from_header(Header hdr, gint64 mtime, gint64 size, - const char *checksum, const char *checksum_type, - const char *location_href, const char *location_base, - int changelog_limit, gint64 hdr_start, gint64 hdr_end, - GError **err) +cr_package_from_header(Header hdr, int changelog_limit, GError **err) { cr_Package *pkg; @@ -168,7 +164,6 @@ cr_package_from_header(Header hdr, gint64 mtime, gint64 size, // Fill package structure - pkg->pkgId = cr_safe_string_chunk_insert(pkg->chunk, checksum); pkg->name = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_NAME)); gint64 is_src = headerGetNumber(hdr, RPMTAG_SOURCEPACKAGE); @@ -191,7 +186,6 @@ cr_package_from_header(Header hdr, gint64 mtime, gint64 size, pkg->summary = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_SUMMARY)); pkg->description = cr_safe_string_chunk_insert_null(pkg->chunk, headerGetString(hdr, RPMTAG_DESCRIPTION)); pkg->url = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_URL)); - pkg->time_file = mtime; if (headerGet(hdr, RPMTAG_BUILDTIME, td, flags)) { pkg->time_build = rpmtdGetNumber(td); } @@ -200,19 +194,13 @@ cr_package_from_header(Header hdr, gint64 mtime, gint64 size, pkg->rpm_group = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_GROUP)); pkg->rpm_buildhost = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_BUILDHOST)); pkg->rpm_sourcerpm = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_SOURCERPM)); - pkg->rpm_header_start = hdr_start; - pkg->rpm_header_end = hdr_end; pkg->rpm_packager = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_PACKAGER)); - pkg->size_package = size; if (headerGet(hdr, RPMTAG_SIZE, td, flags)) { pkg->size_installed = rpmtdGetNumber(td); } if (headerGet(hdr, RPMTAG_ARCHIVESIZE, td, flags)) { pkg->size_archive = rpmtdGetNumber(td); } - pkg->location_href = cr_safe_string_chunk_insert(pkg->chunk, location_href); - pkg->location_base = cr_safe_string_chunk_insert(pkg->chunk, location_base); - pkg->checksum_type = cr_safe_string_chunk_insert(pkg->chunk, checksum_type); rpmtdFreeData(td); rpmtdFree(td); diff --git a/src/parsehdr.h b/src/parsehdr.h index 3068d6f..568a3fb 100644 --- a/src/parsehdr.h +++ b/src/parsehdr.h @@ -37,28 +37,12 @@ extern "C" { /** Read data from header and return filled cr_Package structure. * All const char * params could be NULL. * @param hdr Header - * @param mtime mtime of rpm file - * @param size size of rpm file (in bytes) - * @param checksum checksum of rpm file - * @param checksum_type used checksum algorithm - * @param location_href location of package inside repository - * @param location_base location (url) of repository * @param changelog_limit number of changelog entries - * @param hdr_start start byte of header - * @param hdr_end last byte of header * @param err GError ** - * @return cr_Package + * @return Newly allocated cr_Package or NULL on error */ cr_Package *cr_package_from_header(Header hdr, - gint64 mtime, - gint64 size, - const char *checksum, - const char *checksum_type, - const char *location_href, - const char *location_base, int changelog_limit, - gint64 hdr_start, - gint64 hdr_end, GError **err); /** @} */ diff --git a/src/parsepkg.c b/src/parsepkg.c index 2275c98..c7fd6ca 100644 --- a/src/parsepkg.c +++ b/src/parsepkg.c @@ -195,13 +195,24 @@ cr_package_from_rpm(const char *filename, // Get package object - pkg = cr_package_from_header(hdr, mtime, size, checksum, checksum_type_str, - location_href, location_base, changelog_limit, - hdr_r.start, hdr_r.end, &tmp_err); + pkg = cr_package_from_header(hdr, changelog_limit, &tmp_err); + + + // Fill missing values + + pkg->pkgId = cr_safe_string_chunk_insert(pkg->chunk, checksum); + pkg->checksum_type = cr_safe_string_chunk_insert(pkg->chunk, checksum_type_str); + pkg->time_file = mtime; + pkg->size_package = size; + pkg->location_href = cr_safe_string_chunk_insert(pkg->chunk, location_href); + pkg->location_base = cr_safe_string_chunk_insert(pkg->chunk, location_base); + pkg->rpm_header_start = hdr_r.start; + pkg->rpm_header_end = hdr_r.end; + free(checksum); headerFree(hdr); - if (tmp_err) { + if (!pkg) { g_propagate_prefixed_error(err, tmp_err, "Error while checksum calculation:"); return NULL; -- 2.7.4