From 094258e7cb1cb06db105c5c8d067e58e4a40d22b Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Thu, 21 Jan 2010 00:44:26 +0100 Subject: 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... :) --- src/adblock/adblockmanager.h | 2 +- src/adblock/adblockrule.cpp | 19 +++++++++++++------ src/adblock/adblockrule.h | 8 +++++--- 3 files changed, 19 insertions(+), 10 deletions(-) (limited to 'src') 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 #include +#include // Forward Includes class QNetworkRequest; class WebPage; -class QStringList; // Definitions typedef QList 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 #include #include #include +// 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 +#include +#include // 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; }; -- cgit v1.2.1