Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=67d1992f2d0cea2350e2e4e9f9a810e335c33d64
commit 67d1992f2d0cea2350e2e4e9f9a810e335c33d64 Author: Michel Hermier <herm...@frugalware.org> Date: Fri Oct 17 08:56:22 2014 +0200 libpacman: More package/package_node initialisation rework. diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp index 38bc458..8e42895 100644 --- a/lib/libpacman/package.cpp +++ b/lib/libpacman/package.cpp @@ -48,13 +48,19 @@ using namespace libpacman; -Package::Package(Database *database) - : m_database(database), m_reason(PM_PKG_REASON_EXPLICIT) +Package::Package(Database *database = 0) + : m_database(database) + , m_reason(PM_PKG_REASON_EXPLICIT) +{ } + +Package::Package(package_node *package_node) + : Package() { + m_package_node = package_node; } Package::Package(const char *name, const char *version) - : m_reason(PM_PKG_REASON_EXPLICIT) + : Package() { if(!_pacman_strempty(name)) { flags |= PM_PACKAGE_FLAG_NAME; @@ -399,19 +405,12 @@ bool PackageMatcher::match(const Package *package, int mask = ~0) const } package_node::package_node(const char *name) - : m_name(strdup(name)) -{ } - -package_node::package_node(package_node &&o) - : m_name(o.m_name), m_packages(std::move(o.m_packages)) { - o.m_name = NULL; + STRNCPY(m_name, name, PKG_NAME_LEN); } package_node::~package_node() -{ - free(m_name); -} +{ } bool package_node::operator < (const package_node &o) const { diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h index a68a6e7..8c24f35 100644 --- a/lib/libpacman/package.h +++ b/lib/libpacman/package.h @@ -105,6 +105,7 @@ public: \ public: Package(libpacman::Database *database = 0); + Package(libpacman::package_node *package_node); Package(const char *name, const char *version); protected: virtual ~Package(); @@ -142,7 +143,7 @@ public: libpacman::Database *m_database; unsigned int flags; - package_node *m_node; + package_node *m_package_node; char m_name[PKG_NAME_LEN]; char m_version[PKG_VERSION_LEN]; char m_description[PKG_DESC_LEN]; @@ -208,14 +209,13 @@ private: { public: package_node(const char *name); - package_node(package_node &&o); ~package_node(); bool operator < (const package_node &o) const; const char *name() const; private: - char *m_name/*[PKG_NAME_LEN]*/; + char m_name[PKG_NAME_LEN]; flib::set<libpacman::Package *> m_packages; }; _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git