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

Reply via email to