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/adblockrule.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'src/adblock/adblockrule.cpp') 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; } } -- cgit v1.2.1