Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=cfpm.git;a=commitdiff;h=16760e82a94d63aca00b5e9431515601398282b5
commit 16760e82a94d63aca00b5e9431515601398282b5 Author: Priyank <priy...@frugalware.org> Date: Mon Jun 8 12:49:29 2009 +0530 changes in List, PackageList, GroupList * new member: bool freeable (decides whether the internal PM_LIST* should be freed or no) * new constructors to set freeable property at init * this is done because certain functions of libpacman return pointers to internal lists that shouldn't be freed. diff --git a/pm.cc b/pm.cc index 8363e68..a0e2268 100644 --- a/pm.cc +++ b/pm.cc @@ -432,17 +432,27 @@ void* List::getData() void List::free() { - pacman_list_free(list); + if ( freeable ) + { + pacman_list_free(list); + } + return; } PackageList::PackageList() { list = NULL; + freeable = false; } PackageList::PackageList(PM_LIST *l) { - list = l; + ( l ) && ( list = l ) && ( freeable = true ); +} + +PackageList::PackageList(PM_LIST *l,bool freelist) +{ + ( l ) && ( list = l ) && ( freeable = freelist ); } Package* PackageList::getData() @@ -460,11 +470,17 @@ Package* PackageList::getData() GroupList::GroupList() { list = NULL; + freeable = false; } GroupList::GroupList(PM_LIST *l) { - list = l; + ( l ) && ( list = l ) && ( freeable = true ); +} + +GroupList::GroupList(PM_LIST *l,bool freelist) +{ + ( l ) && ( list = l ) && ( freeable = freelist ); } Group* GroupList::getData() diff --git a/pm.hh b/pm.hh index 1f9dff0..5f44893 100644 --- a/pm.hh +++ b/pm.hh @@ -96,7 +96,8 @@ namespace PM class List { protected: - PM_LIST *list; + PM_LIST *list; + bool freeable; public: List(); @@ -114,6 +115,7 @@ namespace PM public: PackageList(); PackageList(PM_LIST *l); + PackageList(PM_LIST *l,bool freelist); Package *getData(); }; @@ -122,6 +124,7 @@ namespace PM public: GroupList(); GroupList(PM_LIST *l); + GroupList(PM_LIST *l,bool freelist); Group *getData(); }; } _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git