diff options
author | Andrea Diamantini <adjam7@gmail.com> | 2010-01-21 00:44:26 +0100 |
---|---|---|
committer | Andrea Diamantini <adjam7@gmail.com> | 2010-01-21 00:44:26 +0100 |
commit | 094258e7cb1cb06db105c5c8d067e58e4a40d22b (patch) | |
tree | 38fa0c493faef23e610397fe6dc68f893f5f09cb /src/adblock | |
parent | Some leaks fixed in new code (diff) | |
download | rekonq-094258e7cb1cb06db105c5c8d067e58e4a40d22b.tar.xz |
Save memory!
With this commit, we save (at least) 3 bytes for each AdBlockRule defined
(and probably more than 3!).
In my installation I have about 100 rules... :)
Diffstat (limited to 'src/adblock')
-rw-r--r-- | src/adblock/adblockmanager.h | 2 | ||||
-rw-r--r-- | src/adblock/adblockrule.cpp | 19 | ||||
-rw-r--r-- | src/adblock/adblockrule.h | 8 |
3 files changed, 19 insertions, 10 deletions
diff --git a/src/adblock/adblockmanager.h b/src/adblock/adblockmanager.h index c07a9492..f01aaca0 100644 --- a/src/adblock/adblockmanager.h +++ b/src/adblock/adblockmanager.h @@ -110,11 +110,11 @@ // Qt Includes #include <QObject> #include <QNetworkReply> +#include <QStringList> // Forward Includes class QNetworkRequest; class WebPage; -class QStringList; // Definitions typedef QList<AdBlockRule> AdBlockRuleList; diff --git a/src/adblock/adblockrule.cpp b/src/adblock/adblockrule.cpp index c6fe47c9..9f86ffee 100644 --- a/src/adblock/adblockrule.cpp +++ b/src/adblock/adblockrule.cpp @@ -52,17 +52,22 @@ * ============================================================ */ +// Self Includes #include "adblockrule.h" +// Qt Includes +#include <QStringList> #include <QDebug> #include <QRegExp> #include <QUrl> +// Defines #define QL1S(x) QLatin1String(x) #define QL1C(x) QLatin1Char(x) AdBlockRule::AdBlockRule(const QString &filter) + : m_optionMatchRule(false) { bool isRegExpRule = false; @@ -75,11 +80,13 @@ AdBlockRule::AdBlockRule(const QString &filter) isRegExpRule = true; } - int options = parsedLine.indexOf( QL1C('$'), 0); - if (options >= 0) + int optionsNumber = parsedLine.indexOf( QL1C('$'), 0); + QStringList options; + + if (optionsNumber >= 0) { - m_options = parsedLine.mid(options + 1).split(QL1C(',')); - parsedLine = parsedLine.left(options); + options = parsedLine.mid(optionsNumber + 1).split(QL1C(',')); + parsedLine = parsedLine.left(optionsNumber); } if(!isRegExpRule) @@ -87,10 +94,10 @@ AdBlockRule::AdBlockRule(const QString &filter) m_regExp = QRegExp(parsedLine, Qt::CaseInsensitive, QRegExp::RegExp2); - if (m_options.contains( QL1S("match-case") )) + if ( options.contains( QL1S("match-case") )) { m_regExp.setCaseSensitivity(Qt::CaseSensitive); - m_options.removeOne( QL1S("match-case") ); + m_optionMatchRule = true; } } diff --git a/src/adblock/adblockrule.h b/src/adblock/adblockrule.h index 7c4c4161..35715051 100644 --- a/src/adblock/adblockrule.h +++ b/src/adblock/adblockrule.h @@ -55,11 +55,11 @@ #define ADBLOCKRULE_H // Qt Includes -#include <QStringList> +#include <QRegExp> +#include <QString> // Forward Includes class QUrl; -class QRegExp; class AdBlockRule @@ -73,7 +73,9 @@ private: QString convertPatternToRegExp(const QString &wildcardPattern); QRegExp m_regExp; - QStringList m_options; + + // Rule Options + bool m_optionMatchRule; }; |