| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r
ights reserved. | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r
ights reserved. |
| 3 * Copyright (C) 2005 Alexey Proskuryakov. | 3 * Copyright (C) 2005 Alexey Proskuryakov. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 1264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1275 setUpFullyClippedStack(m_fullyClippedStack, m_node); | 1275 setUpFullyClippedStack(m_fullyClippedStack, m_node); |
| 1276 m_offset = endOffset; | 1276 m_offset = endOffset; |
| 1277 m_handledNode = false; | 1277 m_handledNode = false; |
| 1278 m_handledChildren = !endOffset; | 1278 m_handledChildren = !endOffset; |
| 1279 | 1279 |
| 1280 m_startNode = startNode; | 1280 m_startNode = startNode; |
| 1281 m_startOffset = startOffset; | 1281 m_startOffset = startOffset; |
| 1282 m_endNode = endNode; | 1282 m_endNode = endNode; |
| 1283 m_endOffset = endOffset; | 1283 m_endOffset = endOffset; |
| 1284 | 1284 |
| 1285 #ifndef NDEBUG | 1285 #if ENABLE(ASSERT) |
| 1286 // Need this just because of the assert. | 1286 // Need this just because of the assert. |
| 1287 m_positionNode = endNode; | 1287 m_positionNode = endNode; |
| 1288 #endif | 1288 #endif |
| 1289 | 1289 |
| 1290 m_lastTextNode = nullptr; | 1290 m_lastTextNode = nullptr; |
| 1291 m_lastCharacter = '\n'; | 1291 m_lastCharacter = '\n'; |
| 1292 | 1292 |
| 1293 m_havePassedStartNode = false; | 1293 m_havePassedStartNode = false; |
| 1294 | 1294 |
| 1295 advance(); | 1295 advance(); |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1749 { | 1749 { |
| 1750 if (!m_buffer.isEmpty()) | 1750 if (!m_buffer.isEmpty()) |
| 1751 return m_buffer[index]; | 1751 return m_buffer[index]; |
| 1752 return m_textIterator.characterAt(index); | 1752 return m_textIterator.characterAt(index); |
| 1753 } | 1753 } |
| 1754 | 1754 |
| 1755 // -------- | 1755 // -------- |
| 1756 | 1756 |
| 1757 static const size_t minimumSearchBufferSize = 8192; | 1757 static const size_t minimumSearchBufferSize = 8192; |
| 1758 | 1758 |
| 1759 #ifndef NDEBUG | 1759 #if ENABLE(ASSERT) |
| 1760 static bool searcherInUse; | 1760 static bool searcherInUse; |
| 1761 #endif | 1761 #endif |
| 1762 | 1762 |
| 1763 static UStringSearch* createSearcher() | 1763 static UStringSearch* createSearcher() |
| 1764 { | 1764 { |
| 1765 // Provide a non-empty pattern and non-empty text so usearch_open will not f
ail, | 1765 // Provide a non-empty pattern and non-empty text so usearch_open will not f
ail, |
| 1766 // but it doesn't matter exactly what it is, since we don't perform any sear
ches | 1766 // but it doesn't matter exactly what it is, since we don't perform any sear
ches |
| 1767 // without setting both the pattern and the text. | 1767 // without setting both the pattern and the text. |
| 1768 UErrorCode status = U_ZERO_ERROR; | 1768 UErrorCode status = U_ZERO_ERROR; |
| 1769 String searchCollatorName = currentSearchLocaleID() + String("@collation=sea
rch"); | 1769 String searchCollatorName = currentSearchLocaleID() + String("@collation=sea
rch"); |
| 1770 UStringSearch* searcher = usearch_open(&newlineCharacter, 1, &newlineCharact
er, 1, searchCollatorName.utf8().data(), 0, &status); | 1770 UStringSearch* searcher = usearch_open(&newlineCharacter, 1, &newlineCharact
er, 1, searchCollatorName.utf8().data(), 0, &status); |
| 1771 ASSERT(status == U_ZERO_ERROR || status == U_USING_FALLBACK_WARNING || statu
s == U_USING_DEFAULT_WARNING); | 1771 ASSERT(status == U_ZERO_ERROR || status == U_USING_FALLBACK_WARNING || statu
s == U_USING_DEFAULT_WARNING); |
| 1772 return searcher; | 1772 return searcher; |
| 1773 } | 1773 } |
| 1774 | 1774 |
| 1775 static UStringSearch* searcher() | 1775 static UStringSearch* searcher() |
| 1776 { | 1776 { |
| 1777 static UStringSearch* searcher = createSearcher(); | 1777 static UStringSearch* searcher = createSearcher(); |
| 1778 return searcher; | 1778 return searcher; |
| 1779 } | 1779 } |
| 1780 | 1780 |
| 1781 static inline void lockSearcher() | 1781 static inline void lockSearcher() |
| 1782 { | 1782 { |
| 1783 #ifndef NDEBUG | 1783 #if ENABLE(ASSERT) |
| 1784 ASSERT(!searcherInUse); | 1784 ASSERT(!searcherInUse); |
| 1785 searcherInUse = true; | 1785 searcherInUse = true; |
| 1786 #endif | 1786 #endif |
| 1787 } | 1787 } |
| 1788 | 1788 |
| 1789 static inline void unlockSearcher() | 1789 static inline void unlockSearcher() |
| 1790 { | 1790 { |
| 1791 #ifndef NDEBUG | 1791 #if ENABLE(ASSERT) |
| 1792 ASSERT(searcherInUse); | 1792 ASSERT(searcherInUse); |
| 1793 searcherInUse = false; | 1793 searcherInUse = false; |
| 1794 #endif | 1794 #endif |
| 1795 } | 1795 } |
| 1796 | 1796 |
| 1797 inline SearchBuffer::SearchBuffer(const String& target, FindOptions options) | 1797 inline SearchBuffer::SearchBuffer(const String& target, FindOptions options) |
| 1798 : m_options(options) | 1798 : m_options(options) |
| 1799 , m_prefixLength(0) | 1799 , m_prefixLength(0) |
| 1800 , m_numberOfCharactersJustAppended(0) | 1800 , m_numberOfCharactersJustAppended(0) |
| 1801 , m_atBreak(true) | 1801 , m_atBreak(true) |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2220 resultEnd = collapseTo; | 2220 resultEnd = collapseTo; |
| 2221 return; | 2221 return; |
| 2222 } | 2222 } |
| 2223 } | 2223 } |
| 2224 | 2224 |
| 2225 CharacterIterator computeRangeIterator(inputStart, inputEnd, iteratorFlagsFo
rFindPlainText); | 2225 CharacterIterator computeRangeIterator(inputStart, inputEnd, iteratorFlagsFo
rFindPlainText); |
| 2226 calculateCharacterSubrange(computeRangeIterator, matchStart, matchLength, re
sultStart, resultEnd); | 2226 calculateCharacterSubrange(computeRangeIterator, matchStart, matchLength, re
sultStart, resultEnd); |
| 2227 } | 2227 } |
| 2228 | 2228 |
| 2229 } | 2229 } |
| OLD | NEW |