Go to file
Giuseppe D'Angelo 5c9ba41f71 QRegularExpression: optimize global match
PCRE doesn't like illegal Unicode sequences (it's explicitely
documented in pcreunicode(3) that they trigger undefined behaviour,
and the program may crash). Therefore, we always let PCRE check
the validity of both the pattern and the subject string.

However, when performing global matching, the subject string
can be checked only once: subsequent matches can safely skip the check
and avoid a huge performance hit of scanning the whole subject
string for each match (!).

This patch implements that behaviour internally -- it's still
not possible for the user to skip the sanity check. On large
subject strings, this gives a terrific performance benefit.

Change-Id: Ia44cf18782e07966c9cd6ec4ccfef081ed131763
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-12 15:12:23 +02:00
bin Fixed syncqt to ignore all lines that define Qt namespace 2012-04-11 01:42:12 +02:00
config.tests Fix scopes on iconv related pro/pri files 2012-03-27 21:14:35 +02:00
dist add change log entry for QTBUG-23895 2012-04-03 10:45:02 +02:00
doc/src Add macros for assuming and unreachable code 2012-03-24 19:07:22 +01:00
examples Fix multicast join/leave when binding to QHostAddress::Any. 2012-04-02 12:49:38 +02:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs device: Add device support for Trident's Shiner 2012-04-12 04:15:28 +02:00
qmake qmake vc(x)project generator: fix VC++ Express detection 2012-04-12 04:15:05 +02:00
src QRegularExpression: optimize global match 2012-04-12 15:12:23 +02:00
tests Build manual tests. 2012-04-12 14:50:39 +02:00
tools Rename the 'declarative debug support' to 'qml debug support' 2012-03-31 16:33:04 +02:00
util replace hardcoded values with a surrogate handling methods 2012-04-11 01:42:12 +02:00
.gitattributes Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
.gitignore Add imports directory to ignore list 2012-04-11 01:42:12 +02:00
.tag Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
configure Use Clang by default on Mac OS 10.8 and above. 2012-04-12 14:26:59 +02:00
configure.bat Remove Q_BYTE_ORDER and -*-endian arguments from configures 2012-03-02 14:48:00 +01:00
header.BSD Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.FDL Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.LGPL Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.LGPL-ONLY Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
INSTALL Remove Symbian specific code from qtbase. 2012-01-31 07:08:31 +01:00
LGPL_EXCEPTION.txt Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.LGPL Update contact information in license headers. 2012-01-23 04:04:33 +01:00
LICENSE.PREVIEW.COMMERCIAL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
qtbase.pro device: Add -device and -device-option to configure 2012-03-27 05:35:57 +02:00
sync.profile Add qprocessordetection.h 2012-02-08 12:33:11 +01:00