← Back to team overview

linuxdcpp-team team mailing list archive

[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2558: Save some memory in queue frame

 

------------------------------------------------------------
revno: 2558
committer: Jacek Sieka <arnetheduck@xxxxxxxxx>
branch nick: dcplusplus
timestamp: Sat 2011-06-18 15:02:01 +0200
message:
  Save some memory in queue frame
modified:
  win32/QueueFrame.cpp
  win32/QueueFrame.h


--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk

Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'win32/QueueFrame.cpp'
--- win32/QueueFrame.cpp	2011-06-18 12:49:10 +0000
+++ win32/QueueFrame.cpp	2011-06-18 13:02:01 +0000
@@ -171,7 +171,7 @@
 
 QueueFrame::QueueItemInfo* QueueFrame::getItemInfo(const string& target) {
 	string path = Util::getFilePath(target);
-	auto items = directories.equal_range(path);
+	auto items = directories.equal_range(&path);
 	for(auto i = items.first; i != items.second; ++i) {
 		if(i->second->getTarget() == target) {
 			return i->second;
@@ -249,8 +249,8 @@
 
 	const string& dir = ii->getPath();
 
-	bool updateDir = (directories.find(dir) == directories.end());
-	directories.insert(make_pair(dir, ii));
+	bool updateDir = (directories.find(&dir) == directories.end());
+	directories.insert(make_pair(&dir, ii));
 
 	if(updateDir) {
 		addDirectory(dir, ii->isSet(QueueItem::FLAG_USER_LIST));
@@ -286,7 +286,7 @@
 
 	files->clear();
 	auto i = showTree->getChecked()
-		? directories.equal_range(getSelectedDir())
+		? directories.equal_range(&getSelectedDir())
 		: make_pair(directories.begin(), directories.end());
 
 	for(auto j = i.first; j != i.second; ++j) {
@@ -595,7 +595,7 @@
 
 	next = parent;
 
-	while((dirs->getChild(next) == NULL) && (directories.find(getDir(next)) == directories.end())) {
+	while((dirs->getChild(next) == NULL) && (directories.find(&getDir(next)) == directories.end())) {
 		delete dirs->getData(next);
 		parent = dirs->getParent(next);
 
@@ -667,7 +667,7 @@
 	}
 	const string& dir = getDir(ht);
 
-	auto p = directories.equal_range(dir);
+	auto p = directories.equal_range(&dir);
 
 	for(auto i = p.first; i != p.second; ++i) {
 		QueueItemInfo* ii = i->second;
@@ -765,7 +765,7 @@
 	if(dii->getIsBundle()) {
 		QueueManager::getInstance()->removeBundle(TTHValue(dii->getDir()));
 	} else {
-		auto dp = directories.equal_range(dii->getDir());
+		auto dp = directories.equal_range(&dii->getDir());
 		for(auto i = dp.first; i != dp.second; ++i) {
 			QueueManager::getInstance()->remove(i->second->getTarget());
 		}
@@ -809,7 +809,7 @@
 		child = dirs->getNextSibling(child);
 	}
 	const string& name = getDir(ht);
-	auto dp = directories.equal_range(name);
+	auto dp = directories.equal_range(&name);
 	for(auto i = dp.first; i != dp.second; ++i) {
 		QueueManager::getInstance()->setPriority(i->second->getTarget(), p);
 	}
@@ -1068,7 +1068,7 @@
 	queueItems--;
 	dcassert(queueItems >= 0);
 
-	auto i = directories.equal_range(ii->getPath());
+	auto i = directories.equal_range(&ii->getPath());
 	auto j = i.first;
 	for(; j != i.second; ++j) {
 		if(j->second == ii)
@@ -1076,7 +1076,7 @@
 	}
 	dcassert(j != i.second);
 	directories.erase(j);
-	if(directories.count(ii->getPath()) == 0) {
+	if(directories.count(&ii->getPath()) == 0) {
 		removeDirectory(ii->getPath(), ii->isSet(QueueItem::FLAG_USER_LIST));
 		if(isCurDir(ii->getPath()))
 			curDir.clear();

=== modified file 'win32/QueueFrame.h'
--- win32/QueueFrame.h	2011-06-18 12:49:10 +0000
+++ win32/QueueFrame.h	2011-06-18 13:02:01 +0000
@@ -209,7 +209,7 @@
 
 	CheckBoxPtr showTree;
 
-	typedef unordered_multimap<string, QueueItemInfo*, noCaseStringHash, noCaseStringEq> DirectoryMap;
+	typedef unordered_multimap<const string*, QueueItemInfo*, noCaseStringHash, noCaseStringEq> DirectoryMap;
 	DirectoryMap directories;
 	typedef unordered_map<TTHValue, BundleItemInfo*> BundleInfoMap;
 	BundleInfoMap bundleInfos;