Date: Fri, 30 Aug 2013 19:23:57 GMT From: mattbw@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r256749 - soc2013/mattbw/backend/query Message-ID: <201308301923.r7UJNvQM015787@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mattbw Date: Fri Aug 30 19:23:57 2013 New Revision: 256749 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=256749 Log: Fix GetDepends/GetRequires availability error. This was due to an inverted comparison to NULL. In addition, some of the GetDepends/GetRequires code has been factored out into another function. Modified: soc2013/mattbw/backend/query/depends.c Modified: soc2013/mattbw/backend/query/depends.c ============================================================================== --- soc2013/mattbw/backend/query/depends.c Fri Aug 30 18:29:25 2013 (r256748) +++ soc2013/mattbw/backend/query/depends.c Fri Aug 30 19:23:57 2013 (r256749) @@ -30,8 +30,9 @@ #include "id.h" /* query_id, query_id_... */ #include "match.h" /* query_match_... */ -static struct pkg *id_to_package(gchar *package_id, struct pkgdb *db, unsigned int load_flags); +static bool emit_dependency(struct pkg_dep *dep, PkBackend *backend, struct pkgdb *db, unsigned int load_flags); static gchar *dep_to_package_id(struct pkg_dep *dep); +static struct pkg *id_to_package(gchar *package_id, struct pkgdb *db, unsigned int load_flags); bool query_depends_emit(PkBackend *backend, struct pkg *pkg, depends_get_ptr get, @@ -48,36 +49,43 @@ dep = NULL; while (get(pkg, &dep) == EPKG_OK) { - gchar *package_id; - struct pkg *package; - + success = emit_dependency(dep, backend, db, load_flags); + if (!success) { + break; + } + } - package_id = dep_to_package_id(dep); + return success; +} - /* - * Does this dependency correspond to a package in our - * database? - */ - - package = id_to_package(package_id, db, load_flags); - if (package == NULL) { - emit_package(pkg, backend, - pkgutils_pkg_current_state(pkg)); - success = true; - } else { - success = (pk_backend_package(backend, - PK_INFO_ENUM_UNKNOWN, - package_id, - "Could not find this package.")); - } +static bool +emit_dependency(struct pkg_dep *dep, PkBackend *backend, struct pkgdb *db, + unsigned int load_flags) +{ + bool success; + gchar *package_id; + struct pkg *package; - g_free(package_id); + package_id = dep_to_package_id(dep); - if (!success) { - break; - } + /* + * Does this dependency correspond to a package in our + * database? + */ + + package = id_to_package(package_id, db, load_flags); + if (package != NULL) { + emit_package(package, backend, + pkgutils_pkg_current_state(package)); + success = true; + } else { + success = (pk_backend_package(backend, + PK_INFO_ENUM_UNKNOWN, + package_id, + "Could not find this package.")); } + g_free(package_id); return success; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308301923.r7UJNvQM015787>