aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2015-10-04 14:37:11 -0700
committerGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2015-10-04 14:37:11 -0700
commit18f6bfe87f33008021be6647061436ebec19669c (patch)
tree8a43848449184b2f0a926a6bc5383a8339e7ca5a
parent98de173de9d694de28aea0c94c7c150ed75fb744 (diff)
Don't return in mc_foreach... loop
-rw-r--r--src/async/pop/MCPOPDeleteMessagesOperation.cpp14
-rw-r--r--src/core/provider/MCMailProvider.cpp35
-rw-r--r--src/core/provider/MCMailProvidersManager.cpp20
3 files changed, 39 insertions, 30 deletions
diff --git a/src/async/pop/MCPOPDeleteMessagesOperation.cpp b/src/async/pop/MCPOPDeleteMessagesOperation.cpp
index 40cf11f6..b57a60fa 100644
--- a/src/async/pop/MCPOPDeleteMessagesOperation.cpp
+++ b/src/async/pop/MCPOPDeleteMessagesOperation.cpp
@@ -39,23 +39,11 @@ void POPDeleteMessagesOperation::main()
return;
ErrorCode error;
-#if 0
- for(unsigned int i = 0 ; i < mMessageIndexes->rangesCount() ; i ++) {
- Range range = mMessageIndexes->allRanges()[i];
- for(unsigned int k = 0 ; k <= range.length ; k ++) {
- session()->session()->deleteMessage((unsigned int) (range.location + k), &error);
- if (error != ErrorNone) {
- setError(error);
- return;
- }
- }
- }
-#endif
mc_foreachindexset(index, mMessageIndexes) {
session()->session()->deleteMessage((unsigned int) index, &error);
if (error != ErrorNone) {
setError(error);
- return;
+ break;
}
}
session()->session()->disconnect();
diff --git a/src/core/provider/MCMailProvider.cpp b/src/core/provider/MCMailProvider.cpp
index 1055d4fa..99fc4deb 100644
--- a/src/core/provider/MCMailProvider.cpp
+++ b/src/core/provider/MCMailProvider.cpp
@@ -161,30 +161,42 @@ bool MailProvider::matchEmail(String * email)
domain = (String *) components->lastObject();
+ bool matchExcludeDomain = false;
mc_foreacharray(String, exclude, mDomainExclude) {
if (matchDomain(exclude, domain)){
- return false;
+ matchExcludeDomain = true;;
+ break;
}
}
-
+ if (matchExcludeDomain) {
+ return false;
+ }
+
+ bool matchValidDomain = false;
mc_foreacharray(String, match, mDomainMatch) {
if (matchDomain(match, domain)){
- return true;
+ matchValidDomain = true;
+ break;
}
}
-
+ if (matchValidDomain) {
+ return true;
+ }
+
return false;
}
bool MailProvider::matchMX(String * hostname)
{
+ bool result = false;
mc_foreacharray(String, match, mMxMatch) {
if (matchDomain(match, hostname)){
- return true;
+ result = true;
+ break;
}
}
-
- return false;
+
+ return result;
}
bool MailProvider::matchDomain(String * match, String * domain)
@@ -272,6 +284,7 @@ String * MailProvider::importantFolderPath()
bool MailProvider::isMainFolder(String * folderPath, String * prefix)
{
+ bool result = false;
mc_foreachhashmapValue(String, path, mMailboxPaths) {
String * fullPath;
@@ -282,11 +295,13 @@ bool MailProvider::isMainFolder(String * folderPath, String * prefix)
fullPath = path;
}
- if (fullPath->isEqual(folderPath))
- return true;
+ if (fullPath->isEqual(folderPath)) {
+ result = true;
+ break;
+ }
}
- return false;
+ return result;
}
String * MailProvider::description()
diff --git a/src/core/provider/MCMailProvidersManager.cpp b/src/core/provider/MCMailProvidersManager.cpp
index 0d7938e4..a5f7891a 100644
--- a/src/core/provider/MCMailProvidersManager.cpp
+++ b/src/core/provider/MCMailProvidersManager.cpp
@@ -30,22 +30,28 @@ MailProvidersManager * MailProvidersManager::sharedManager()
MailProvider * MailProvidersManager::providerForEmail(String * email)
{
+ MailProvider * result = NULL;
mc_foreachhashmapValue(MailProvider, provider, mProviders) {
- if (provider->matchEmail(email))
- return provider;
+ if (provider->matchEmail(email)) {
+ result = provider;
+ break;
+ }
}
- return NULL;
+ return result;
}
MailProvider * MailProvidersManager::providerForMX(String * hostname)
{
+ MailProvider * result = NULL;
mc_foreachhashmapValue(MailProvider, provider, mProviders) {
- if (provider->matchMX(hostname))
- return provider;
+ if (provider->matchMX(hostname)) {
+ result = provider;
+ break;
+ }
}
-
- return NULL;
+
+ return result;
}
MailProvider * MailProvidersManager::providerForIdentifier(String * identifier)