OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Lars Knoll <lars@trolltech.com> | 2 * Copyright (C) 2006 Lars Knoll <lars@trolltech.com> |
3 * Copyright (C) 2007, 2011, 2012 Apple Inc. All rights reserved. | 3 * Copyright (C) 2007, 2011, 2012 Apple Inc. All rights reserved. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 | 49 |
50 static std::unique_ptr<LineBreakIteratorPool> create() { | 50 static std::unique_ptr<LineBreakIteratorPool> create() { |
51 return WTF::wrapUnique(new LineBreakIteratorPool); | 51 return WTF::wrapUnique(new LineBreakIteratorPool); |
52 } | 52 } |
53 | 53 |
54 icu::BreakIterator* take(const AtomicString& locale) { | 54 icu::BreakIterator* take(const AtomicString& locale) { |
55 icu::BreakIterator* iterator = 0; | 55 icu::BreakIterator* iterator = 0; |
56 for (size_t i = 0; i < m_pool.size(); ++i) { | 56 for (size_t i = 0; i < m_pool.size(); ++i) { |
57 if (m_pool[i].first == locale) { | 57 if (m_pool[i].first == locale) { |
58 iterator = m_pool[i].second; | 58 iterator = m_pool[i].second; |
59 m_pool.remove(i); | 59 m_pool.erase(i); |
60 break; | 60 break; |
61 } | 61 } |
62 } | 62 } |
63 | 63 |
64 if (!iterator) { | 64 if (!iterator) { |
65 UErrorCode openStatus = U_ZERO_ERROR; | 65 UErrorCode openStatus = U_ZERO_ERROR; |
66 bool localeIsEmpty = locale.isEmpty(); | 66 bool localeIsEmpty = locale.isEmpty(); |
67 iterator = icu::BreakIterator::createLineInstance( | 67 iterator = icu::BreakIterator::createLineInstance( |
68 localeIsEmpty ? icu::Locale(currentTextBreakLocaleID()) | 68 localeIsEmpty ? icu::Locale(currentTextBreakLocaleID()) |
69 : icu::Locale(locale.utf8().data()), | 69 : icu::Locale(locale.utf8().data()), |
(...skipping 16 matching lines...) Expand all Loading... |
86 ASSERT(!m_vendedIterators.contains(iterator)); | 86 ASSERT(!m_vendedIterators.contains(iterator)); |
87 m_vendedIterators.set(iterator, locale); | 87 m_vendedIterators.set(iterator, locale); |
88 return iterator; | 88 return iterator; |
89 } | 89 } |
90 | 90 |
91 void put(icu::BreakIterator* iterator) { | 91 void put(icu::BreakIterator* iterator) { |
92 DCHECK(m_vendedIterators.contains(iterator)); | 92 DCHECK(m_vendedIterators.contains(iterator)); |
93 | 93 |
94 if (m_pool.size() == capacity) { | 94 if (m_pool.size() == capacity) { |
95 delete (m_pool[0].second); | 95 delete (m_pool[0].second); |
96 m_pool.remove(0); | 96 m_pool.erase(0); |
97 } | 97 } |
98 | 98 |
99 m_pool.push_back(Entry(m_vendedIterators.take(iterator), iterator)); | 99 m_pool.push_back(Entry(m_vendedIterators.take(iterator), iterator)); |
100 } | 100 } |
101 | 101 |
102 private: | 102 private: |
103 LineBreakIteratorPool() {} | 103 LineBreakIteratorPool() {} |
104 | 104 |
105 static const size_t capacity = 4; | 105 static const size_t capacity = 4; |
106 | 106 |
(...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
932 "$Tel1 $TelV $Tel0;" // Telugu Virama (backward) | 932 "$Tel1 $TelV $Tel0;" // Telugu Virama (backward) |
933 "$Kan1 $KanV $Kan0;" // Kannada Virama (backward) | 933 "$Kan1 $KanV $Kan0;" // Kannada Virama (backward) |
934 "$Mal1 $MalV $Mal0;" // Malayalam Virama (backward) | 934 "$Mal1 $MalV $Mal0;" // Malayalam Virama (backward) |
935 "!!safe_reverse;" | 935 "!!safe_reverse;" |
936 "!!safe_forward;"; | 936 "!!safe_forward;"; |
937 | 937 |
938 return setUpIteratorWithRules(kRules, string, length); | 938 return setUpIteratorWithRules(kRules, string, length); |
939 } | 939 } |
940 | 940 |
941 } // namespace blink | 941 } // namespace blink |
OLD | NEW |