<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>65809</bug_id>
          
          <creation_ts>2011-08-06 00:41:44 -0700</creation_ts>
          <short_desc>Move the shared LineBreakIteratorPool from ThreadGlobalData into its own ThreadSpecific</short_desc>
          <delta_ts>2011-08-06 19:39:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>447586</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-08-06 00:41:44 -0700</bug_when>
    <thetext>Move the shared LineBreakIteratorPool from ThreadGlobalData into its own ThreadSpecific</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447587</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-08-06 00:42:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/9338442&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447588</commentid>
    <comment_count>2</comment_count>
      <attachid>103145</attachid>
    <who name="">mitz</who>
    <bug_when>2011-08-06 00:54:21 -0700</bug_when>
    <thetext>Created attachment 103145
Remove ThreadGlobalData::lineBreakIteratorPool() and implement LineBreakIteratorPool::shared() using ThreadSpecific</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447606</commentid>
    <comment_count>3</comment_count>
      <attachid>103145</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-06 07:45:56 -0700</bug_when>
    <thetext>Comment on attachment 103145
Remove ThreadGlobalData::lineBreakIteratorPool() and implement LineBreakIteratorPool::shared() using ThreadSpecific

View in context: https://bugs.webkit.org/attachment.cgi?id=103145&amp;action=review

&gt; Source/WebCore/platform/text/LineBreakIteratorPoolICU.h:92
&gt; +    static WTF::ThreadSpecific&lt;LineBreakIteratorPool&gt;* staticPool;

Since this is used only in one function it could be a static local to the function rather than a static data member. If it was, the function would not need an explicit check for null and we also would have no need for LineBreakIteratorPoolICU.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447615</commentid>
    <comment_count>4</comment_count>
      <attachid>103149</attachid>
    <who name="">mitz</who>
    <bug_when>2011-08-06 09:45:08 -0700</bug_when>
    <thetext>Created attachment 103149
Remove ThreadGlobalData::lineBreakIteratorPool() and implement LineBreakIteratorPool::shared() using ThreadSpecific</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447616</commentid>
    <comment_count>5</comment_count>
      <attachid>103150</attachid>
    <who name="">mitz</who>
    <bug_when>2011-08-06 09:49:59 -0700</bug_when>
    <thetext>Created attachment 103150
Remove ThreadGlobalData::lineBreakIteratorPool() and implement LineBreakIteratorPool::shared() using ThreadSpecific</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447618</commentid>
    <comment_count>6</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-08-06 10:01:15 -0700</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/r92553&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447682</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-06 17:34:48 -0700</bug_when>
    <thetext>I know what&apos;s bad about this approach (frameworks shouldn&apos;t waste thread specific keys). What&apos;s good about it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447694</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-08-06 19:39:50 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I know what&apos;s bad about this approach (frameworks shouldn&apos;t waste thread specific keys). What&apos;s good about it?

Making the LineBreakIteratorPool actually thread-specific even in ports that don’t enable HTML5 Worker Threads. In that configuration, ThreadGlobalData is shared between all threads in the process; however, LineBreakIteratorPools still need to be per-thread.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103145</attachid>
            <date>2011-08-06 00:54:21 -0700</date>
            <delta_ts>2011-08-06 09:45:04 -0700</delta_ts>
            <desc>Remove ThreadGlobalData::lineBreakIteratorPool() and implement LineBreakIteratorPool::shared() using ThreadSpecific</desc>
            <filename>bug-65809-20110806005419.patch</filename>
            <type>text/plain</type>
            <size>12640</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNTQ0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDgtMDYgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHRoZSBzaGFyZWQgTGluZUJy
ZWFrSXRlcmF0b3JQb29sIGZyb20gVGhyZWFkR2xvYmFsRGF0YSBpbnRvIGl0cyBvd24gVGhyZWFk
U3BlY2lmaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY1ODA5CisKKyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDogQWRkZWQgTGluZUJyZWFrSXRl
cmF0b3JQb29sSUNVLmNwcC4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBE
aXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRo
cmVhZEdsb2JhbERhdGE6OmRlc3Ryb3kpOiBSZW1vdmVkIGNvZGUgdG8gY2xlYXIgdGhlIG1fbGlu
ZUJyZWFrSXRlcmF0b3JQb29sIG1lbWJlcgorICAgICAgICB2YXJpYWJsZSwgd2hpY2ggd2FzIHJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oOiBSZW1vdmVkIGxp
bmVCcmVha0l0ZXJhdG9yUG9vbCgpIGFuZCBhc3NvY2lhdGVkIG1lbWJlciB2YXJpYWJsZS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5jcHA6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpMaW5lQnJlYWtJdGVyYXRvclBvb2w6OnNoYXJlZFBvb2wpOiBDaGFu
Z2VkIHRvIHJldHVybiBhIHRocmVhZC1zcGVjaWZpYyBwb29sLgorCiAyMDExLTA4LTA1ICBOb2Vs
IEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBbQ2hyb21pdW1dIFJl
bW92ZSBIYWx0YWJsZVBsdWdpbiByZWZlcmVuY2VzIGZyb20gZ3lwIHByb2plY3QgZmlsZXMKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHNFZmwudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHNFZmwudHh0CShyZXZpc2lvbiA5MjU0MikKKysrIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHNFZmwudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNiArMTY5LDcg
QEAgRU5ESUYgKCkKIElGIChXVEZfVVNFX0lDVV9VTklDT0RFKQogICBMSVNUKEFQUEVORCBXZWJD
b3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAKKyAgICBwbGF0Zm9y
bS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L1Rl
eHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRl
cmF0b3JJQ1UuY3BwCiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDkyNTQyKQorKysgU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjc5OCw2ICsyNzk4
LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0JpZGlSdW5MaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvSHlwaGVuYXRp
b24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmggXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lQnJlYWtJdGVyYXRvclBvb2xJ
Q1UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmggXApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQkocmV2aXNpb24gOTI1NDIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJ
KHdvcmtpbmcgY29weSkKQEAgLTQzNTcsNiArNDM1Nyw3IEBACiAgICAgICAgICAgICAncGxhdGZv
cm0vdGV4dC9CaWRpQ29udGV4dC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvSHlw
aGVuYXRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmgn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcCcsCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybwkocmV2aXNpb24gOTI1NDIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwkod29ya2luZyBjb3B5KQpAQCAtMjY1Myw2ICsyNjUzLDcgQEAgbWFjIHsKIH0KIAogY29u
dGFpbnMgKENPTkZJRywgdXNlX3N5c3RlbV9pY3UpIHsKKyAgICBTT1VSQ0VTICs9IHBsYXRmb3Jt
L3RleHQvTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmNwcAogICAgIFNPVVJDRVMgKz0gcGxhdGZv
cm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDkyNTQyKQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTMxNTA5LDYgKzMxNTA5LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZp
bGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XExpbmVCcmVha0l0ZXJhdG9y
UG9vbElDVS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XExpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oIgogCQkJ
CQk+CiAJCQkJPC9GaWxlPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gOTI1NDIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg1
Myw2ICs4NTMsNyBAQAogCQkzNzJDMDBDNDEyOTYxMUYxMDA1Qzk1NzUgLyogVGV4dEJvdW5kYXJp
ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcy
QzAwQzMxMjk2MTFGMTAwNUM5NTc1IC8qIFRleHRCb3VuZGFyaWVzLmNwcCAqLzsgfTsKIAkJMzcy
QzAwRDkxMjk2MTlGODAwNUM5NTc1IC8qIEZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzJDMDBEODEyOTYxOUY4MDA1Qzk1NzUgLyog
RmluZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkzNzQ0NTcwRjBEQjA1RkE1MDBBRTA5OTIgLyogU1ZHR2x5cGhNYXAuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3NDQ1NzBFMERCMDVGQTUw
MEFFMDk5MiAvKiBTVkdHbHlwaE1hcC5oICovOyB9OworCQkzNzUwRUQ3NDEzRUQxNEYyMDBDQTlF
RUYgLyogTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3NTBFRDczMTNFRDE0RjIwMENBOUVFRiAvKiBMaW5l
QnJlYWtJdGVyYXRvclBvb2xJQ1UuY3BwICovOyB9OwogCQkzNzVDRDIzMjExOUQ0M0M4MDBBMkE4
NTkgLyogSHlwaGVuYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM3NUNEMjMxMTE5RDQzQzgwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbi5oICovOyB9
OwogCQkzNzVDRDIzQjExOUQ0NEVBMDBBMkE4NTkgLyogSHlwaGVuYXRpb25NYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzVDRDIzOTExOUQ0NEVB
MDBBMkE4NTkgLyogSHlwaGVuYXRpb25NYWMubW0gKi87IH07CiAJCTM3NkRDQ0UxMTNCNEY5NjYw
MDJFQkVGQyAvKiBUZXh0UnVuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDM3NkRDQ0UwMTNCNEY5NjYwMDJFQkVGQyAvKiBUZXh0UnVuLmNwcCAqLzsg
fTsKQEAgLTczODEsNiArNzM4Miw3IEBACiAJCTM3MkMwMEMzMTI5NjExRjEwMDVDOTU3NSAvKiBU
ZXh0Qm91bmRhcmllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
ZXh0Qm91bmRhcmllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3MkMwMEQ4
MTI5NjE5RjgwMDVDOTU3NSAvKiBGaW5kT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaW5kT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
NzQ0NTcwRTBEQjA1RkE1MDBBRTA5OTIgLyogU1ZHR2x5cGhNYXAuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHR2x5cGhNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzc1MEVENzMxM0VEMTRGMjAwQ0E5RUVGIC8qIExpbmVCcmVha0l0ZXJhdG9yUG9vbElD
VS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclBvb2xJQ1UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzU2OUUwMDEz
QUYxNzJDMDBDREJBOEUgLyogU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzU2OUUwMjEzQUYxNzJDMDBDREJBOEUgLyog
U2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzc1Q0QyMzExMTlENDNDODAwQTJBODU5IC8qIEh5cGhlbmF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEh5cGhlbmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xODMwMyw2ICsxODMwNSw3IEBACiAJCQkJQjJDM0Q5RjQwRDAwNkMxRDAwRUY2
RjI2IC8qIEJpZGlSZXNvbHZlci5oICovLAogCQkJCUE4QzQwMjkyMTM0OEIyMjIwMDYzRjFFNSAv
KiBCaWRpUnVuTGlzdC5oICovLAogCQkJCTM3NUNEMjMxMTE5RDQzQzgwMEEyQTg1OSAvKiBIeXBo
ZW5hdGlvbi5oICovLAorCQkJCTM3NTBFRDczMTNFRDE0RjIwMENBOUVFRiAvKiBMaW5lQnJlYWtJ
dGVyYXRvclBvb2xJQ1UuY3BwICovLAogCQkJCUE1QUJCNzg2MTNCOTA0QkMwMEYxOTdFMyAvKiBM
aW5lQnJlYWtJdGVyYXRvclBvb2xJQ1UuaCAqLywKIAkJCQk4OUI1RUE5RjExRTgwMDNEMDBGMjM2
N0UgLyogTGluZUVuZGluZy5jcHAgKi8sCiAJCQkJODlCNUVBQTAxMUU4MDAzRDAwRjIzNjdFIC8q
IExpbmVFbmRpbmcuaCAqLywKQEAgLTI2MTUzLDYgKzI2MTU2LDcgQEAKIAkJCQlCMUFENEU3MzEz
QTEyQTQ2MDA4NDZCMjcgLyogQ3VlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIxQUQ0
RTdCMTNBMTJBNzIwMDg0NkIyNyAvKiBDdWVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUQyMUE4MDIxM0VDRTVERjAwQkI3MDY0IC8qIFdlYlZUVFBhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkzNzUwRUQ3NDEzRUQxNEYyMDBDQTlFRUYgLyogTGluZUJyZWFrSXRlcmF0b3JQb29s
SUNVLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhy
ZWFkR2xvYmFsRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VGhyZWFkR2xvYmFsRGF0YS5jcHAJKHJldmlzaW9uIDkyNTQyKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1
LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZiBVU0UoSUNVX1VO
SUNPREUpCi0jaW5jbHVkZSAiTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmgiCiAjaW5jbHVkZSAi
VGV4dENvZGVjSUNVLmgiCiAjZW5kaWYKIApAQCAtODMsMTUgKzgyLDYgQEAgVGhyZWFkR2xvYmFs
RGF0YTo6flRocmVhZEdsb2JhbERhdGEoKQogICAgIGRlc3Ryb3koKTsKIH0KIAotI2lmIFVTRShJ
Q1VfVU5JQ09ERSkKLUxpbmVCcmVha0l0ZXJhdG9yUG9vbCYgVGhyZWFkR2xvYmFsRGF0YTo6bGlu
ZUJyZWFrSXRlcmF0b3JQb29sKCkKLXsKLSAgICBpZiAoIW1fbGluZUJyZWFrSXRlcmF0b3JQb29s
KQotICAgICAgICBtX2xpbmVCcmVha0l0ZXJhdG9yUG9vbCA9IExpbmVCcmVha0l0ZXJhdG9yUG9v
bDo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuICptX2xpbmVCcmVha0l0ZXJhdG9yUG9vbDsKLX0KLSNl
bmRpZgotCiB2b2lkIFRocmVhZEdsb2JhbERhdGE6OmRlc3Ryb3koKQogewogI2lmIFBMQVRGT1JN
KE1BQykKQEAgLTEwMiw3ICs5Miw2IEBAIHZvaWQgVGhyZWFkR2xvYmFsRGF0YTo6ZGVzdHJveSgp
CiAjaWYgVVNFKElDVV9VTklDT0RFKQogICAgIGRlbGV0ZSBtX2NhY2hlZENvbnZlcnRlcklDVTsK
ICAgICBtX2NhY2hlZENvbnZlcnRlcklDVSA9IDA7Ci0gICAgbV9saW5lQnJlYWtJdGVyYXRvclBv
b2wgPSBudWxscHRyOwogI2VuZGlmCiAKICAgICBkZWxldGUgbV9ldmVudE5hbWVzOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaAkocmV2aXNpb24gOTI1
NDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQyLDcgKzQyLDYgQEAgdXNpbmcgV1RGOjpUaHJlYWRTcGVjaWZpYzsKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEV2ZW50TmFtZXM7Ci0gICAgY2xhc3MgTGlu
ZUJyZWFrSXRlcmF0b3JQb29sOwogICAgIGNsYXNzIFRocmVhZFRpbWVyczsKIAogICAgIHN0cnVj
dCBJQ1VDb252ZXJ0ZXJXcmFwcGVyOwpAQCAtNjAsNyArNTksNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNpZiBVU0UoSUNVX1VOSUNPREUpCiAgICAgICAgIElDVUNvbnZlcnRlcldyYXBwZXIm
IGNhY2hlZENvbnZlcnRlcklDVSgpIHsgcmV0dXJuICptX2NhY2hlZENvbnZlcnRlcklDVTsgfQot
ICAgICAgICBMaW5lQnJlYWtJdGVyYXRvclBvb2wmIGxpbmVCcmVha0l0ZXJhdG9yUG9vbCgpOwog
I2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC03Nyw3ICs3NSw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogI2lmIFVTRShJQ1VfVU5JQ09ERSkKICAgICAgICAgSUNVQ29udmVydGVyV3Jh
cHBlciogbV9jYWNoZWRDb252ZXJ0ZXJJQ1U7Ci0gICAgICAgIE93blB0cjxMaW5lQnJlYWtJdGVy
YXRvclBvb2w+IG1fbGluZUJyZWFrSXRlcmF0b3JQb29sOwogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShNQUMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJh
dG9yUG9vbElDVS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9MaW5lQnJlYWtJdGVyYXRvclBvb2xJQ1UuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lQnJlYWtJdGVyYXRvclBvb2xJQ1UuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkxpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oIgorCit1c2luZyBuYW1lc3BhY2Ug
V1RGOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1RocmVhZFNwZWNpZmljPExpbmVCcmVha0l0
ZXJhdG9yUG9vbD4qIExpbmVCcmVha0l0ZXJhdG9yUG9vbDo6c3RhdGljUG9vbDsKKworfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lQnJlYWtJdGVyYXRvclBvb2xJQ1Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0
ZXJhdG9yUG9vbElDVS5oCShyZXZpc2lvbiA5MjU0MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDExICsyNywxMiBAQAogI2RlZmluZSBMaW5lQnJlYWtJdGVyYXRvclBvb2xJQ1VfaAogCiAjaW5j
bHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgotI2luY2x1ZGUgIlRocmVhZEds
b2JhbERhdGEuaCIKICNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQxLDcgKzQyLDkgQEAgY2xhc3MgTGluZUJyZWFrSXRlcmF0
b3JQb29sIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTGluZUJyZWFrSXRlcmF0b3JQb29sJiBzaGFy
ZWRQb29sKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aHJlYWRHbG9iYWxEYXRhKCkubGluZUJy
ZWFrSXRlcmF0b3JQb29sKCk7CisgICAgICAgIGlmICghc3RhdGljUG9vbCkKKyAgICAgICAgICAg
IHN0YXRpY1Bvb2wgPSBuZXcgV1RGOjpUaHJlYWRTcGVjaWZpYzxMaW5lQnJlYWtJdGVyYXRvclBv
b2w+OworICAgICAgICByZXR1cm4gKipzdGF0aWNQb29sOwogICAgIH0KIAogICAgIHN0YXRpYyBQ
YXNzT3duUHRyPExpbmVCcmVha0l0ZXJhdG9yUG9vbD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQ
dHIobmV3IExpbmVCcmVha0l0ZXJhdG9yUG9vbCk7IH0KQEAgLTg2LDEyICs4OSwxNiBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIExpbmVCcmVha0l0ZXJhdG9yUG9vbCgpIHsgfQogCisgICAgc3Rh
dGljIFdURjo6VGhyZWFkU3BlY2lmaWM8TGluZUJyZWFrSXRlcmF0b3JQb29sPiogc3RhdGljUG9v
bDsKKwogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgY2FwYWNpdHkgPSA0OwogCiAgICAgdHlwZWRl
ZiBwYWlyPEF0b21pY1N0cmluZywgVUJyZWFrSXRlcmF0b3IqPiBFbnRyeTsKICAgICB0eXBlZGVm
IFZlY3RvcjxFbnRyeSwgY2FwYWNpdHk+IFBvb2w7CiAgICAgUG9vbCBtX3Bvb2w7CiAgICAgSGFz
aE1hcDxVQnJlYWtJdGVyYXRvciosIEF0b21pY1N0cmluZz4gbV92ZW5kZWRJdGVyYXRvcnM7CisK
KyAgICBmcmllbmQgV1RGOjpUaHJlYWRTcGVjaWZpYzxMaW5lQnJlYWtJdGVyYXRvclBvb2w+Ojpv
cGVyYXRvciBMaW5lQnJlYWtJdGVyYXRvclBvb2wqKCk7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103149</attachid>
            <date>2011-08-06 09:45:08 -0700</date>
            <delta_ts>2011-08-06 09:49:55 -0700</delta_ts>
            <desc>Remove ThreadGlobalData::lineBreakIteratorPool() and implement LineBreakIteratorPool::shared() using ThreadSpecific</desc>
            <filename>bug-65809-20110806094507.patch</filename>
            <type>text/plain</type>
            <size>3952</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNTQ0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDgtMDYgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHRoZSBzaGFyZWQgTGluZUJy
ZWFrSXRlcmF0b3JQb29sIGZyb20gVGhyZWFkR2xvYmFsRGF0YSBpbnRvIGl0cyBvd24gVGhyZWFk
U3BlY2lmaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY1ODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVh
ZEdsb2JhbERhdGE6OmRlc3Ryb3kpOiBSZW1vdmVkIGNvZGUgdG8gY2xlYXIgdGhlIG1fbGluZUJy
ZWFrSXRlcmF0b3JQb29sIG1lbWJlcgorICAgICAgICB2YXJpYWJsZSwgd2hpY2ggd2FzIHJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oOiBSZW1vdmVkIGxpbmVC
cmVha0l0ZXJhdG9yUG9vbCgpIGFuZCBhc3NvY2lhdGVkIG1lbWJlciB2YXJpYWJsZS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oOgorICAgICAgICAo
V2ViQ29yZTo6TGluZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKTogQ2hhbmdlZCB0byBy
ZXR1cm4gYSB0aHJlYWQtc3BlY2lmaWMgcG9vbC4KKwogMjAxMS0wOC0wNSAgTm9lbCBHb3Jkb24g
IDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZW1vdmUgSGFs
dGFibGVQbHVnaW4gcmVmZXJlbmNlcyBmcm9tIGd5cCBwcm9qZWN0IGZpbGVzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAkocmV2aXNpb24gOTI1
NDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0lt
cGwuaD4KIAogI2lmIFVTRShJQ1VfVU5JQ09ERSkKLSNpbmNsdWRlICJMaW5lQnJlYWtJdGVyYXRv
clBvb2xJQ1UuaCIKICNpbmNsdWRlICJUZXh0Q29kZWNJQ1UuaCIKICNlbmRpZgogCkBAIC04Mywx
NSArODIsNiBAQCBUaHJlYWRHbG9iYWxEYXRhOjp+VGhyZWFkR2xvYmFsRGF0YSgpCiAgICAgZGVz
dHJveSgpOwogfQogCi0jaWYgVVNFKElDVV9VTklDT0RFKQotTGluZUJyZWFrSXRlcmF0b3JQb29s
JiBUaHJlYWRHbG9iYWxEYXRhOjpsaW5lQnJlYWtJdGVyYXRvclBvb2woKQotewotICAgIGlmICgh
bV9saW5lQnJlYWtJdGVyYXRvclBvb2wpCi0gICAgICAgIG1fbGluZUJyZWFrSXRlcmF0b3JQb29s
ID0gTGluZUJyZWFrSXRlcmF0b3JQb29sOjpjcmVhdGUoKTsKLSAgICByZXR1cm4gKm1fbGluZUJy
ZWFrSXRlcmF0b3JQb29sOwotfQotI2VuZGlmCi0KIHZvaWQgVGhyZWFkR2xvYmFsRGF0YTo6ZGVz
dHJveSgpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTAyLDcgKzkyLDYgQEAgdm9pZCBUaHJl
YWRHbG9iYWxEYXRhOjpkZXN0cm95KCkKICNpZiBVU0UoSUNVX1VOSUNPREUpCiAgICAgZGVsZXRl
IG1fY2FjaGVkQ29udmVydGVySUNVOwogICAgIG1fY2FjaGVkQ29udmVydGVySUNVID0gMDsKLSAg
ICBtX2xpbmVCcmVha0l0ZXJhdG9yUG9vbCA9IG51bGxwdHI7CiAjZW5kaWYKIAogICAgIGRlbGV0
ZSBtX2V2ZW50TmFtZXM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9i
YWxEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xv
YmFsRGF0YS5oCShyZXZpc2lvbiA5MjU0MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
cmVhZEdsb2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNiBAQCB1c2luZyBX
VEY6OlRocmVhZFNwZWNpZmljOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgRXZl
bnROYW1lczsKLSAgICBjbGFzcyBMaW5lQnJlYWtJdGVyYXRvclBvb2w7CiAgICAgY2xhc3MgVGhy
ZWFkVGltZXJzOwogCiAgICAgc3RydWN0IElDVUNvbnZlcnRlcldyYXBwZXI7CkBAIC02MCw3ICs1
OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFVTRShJQ1VfVU5JQ09ERSkKICAgICAg
ICAgSUNVQ29udmVydGVyV3JhcHBlciYgY2FjaGVkQ29udmVydGVySUNVKCkgeyByZXR1cm4gKm1f
Y2FjaGVkQ29udmVydGVySUNVOyB9Ci0gICAgICAgIExpbmVCcmVha0l0ZXJhdG9yUG9vbCYgbGlu
ZUJyZWFrSXRlcmF0b3JQb29sKCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTc3
LDcgKzc1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgVVNFKElDVV9VTklDT0RFKQog
ICAgICAgICBJQ1VDb252ZXJ0ZXJXcmFwcGVyKiBtX2NhY2hlZENvbnZlcnRlcklDVTsKLSAgICAg
ICAgT3duUHRyPExpbmVCcmVha0l0ZXJhdG9yUG9vbD4gbV9saW5lQnJlYWtJdGVyYXRvclBvb2w7
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lQnJlYWtJdGVyYXRvclBvb2xJQ1UuaAkocmV2aXNp
b24gOTI1NDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJh
dG9yUG9vbElDVS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMSArMjcsMTIgQEAKICNkZWZpbmUg
TGluZUJyZWFrSXRlcmF0b3JQb29sSUNVX2gKIAogI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9y
SW50ZXJuYWxJQ1UuaCIKLSNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSA8
dW5pY29kZS91YnJrLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZFNwZWNpZmljLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
MSw3ICs0Miw4IEBAIGNsYXNzIExpbmVCcmVha0l0ZXJhdG9yUG9vbCB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIExpbmVCcmVha0l0ZXJhdG9yUG9vbCYgc2hhcmVkUG9vbCgpCiAgICAgewotICAgICAg
ICByZXR1cm4gdGhyZWFkR2xvYmFsRGF0YSgpLmxpbmVCcmVha0l0ZXJhdG9yUG9vbCgpOworICAg
ICAgICBzdGF0aWMgV1RGOjpUaHJlYWRTcGVjaWZpYzxMaW5lQnJlYWtJdGVyYXRvclBvb2w+KiBw
b29sID0gbmV3IFdURjo6VGhyZWFkU3BlY2lmaWM8TGluZUJyZWFrSXRlcmF0b3JQb29sPjsKKyAg
ICAgICAgcmV0dXJuICoqcG9vbDsKICAgICB9CiAKICAgICBzdGF0aWMgUGFzc093blB0cjxMaW5l
QnJlYWtJdGVyYXRvclBvb2w+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBMaW5lQnJl
YWtJdGVyYXRvclBvb2wpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103150</attachid>
            <date>2011-08-06 09:49:59 -0700</date>
            <delta_ts>2011-08-06 09:58:49 -0700</delta_ts>
            <desc>Remove ThreadGlobalData::lineBreakIteratorPool() and implement LineBreakIteratorPool::shared() using ThreadSpecific</desc>
            <filename>bug-65809-20110806094958.patch</filename>
            <type>text/plain</type>
            <size>4205</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNTQ0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDgtMDYgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHRoZSBzaGFyZWQgTGluZUJy
ZWFrSXRlcmF0b3JQb29sIGZyb20gVGhyZWFkR2xvYmFsRGF0YSBpbnRvIGl0cyBvd24gVGhyZWFk
U3BlY2lmaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY1ODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVh
ZEdsb2JhbERhdGE6OmRlc3Ryb3kpOiBSZW1vdmVkIGNvZGUgdG8gY2xlYXIgdGhlIG1fbGluZUJy
ZWFrSXRlcmF0b3JQb29sIG1lbWJlcgorICAgICAgICB2YXJpYWJsZSwgd2hpY2ggd2FzIHJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oOiBSZW1vdmVkIGxpbmVC
cmVha0l0ZXJhdG9yUG9vbCgpIGFuZCBhc3NvY2lhdGVkIG1lbWJlciB2YXJpYWJsZS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oOgorICAgICAgICAo
V2ViQ29yZTo6TGluZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKTogQ2hhbmdlZCB0byBy
ZXR1cm4gYSB0aHJlYWQtc3BlY2lmaWMgcG9vbC4KKwogMjAxMS0wOC0wNSAgTm9lbCBHb3Jkb24g
IDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZW1vdmUgSGFs
dGFibGVQbHVnaW4gcmVmZXJlbmNlcyBmcm9tIGd5cCBwcm9qZWN0IGZpbGVzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAkocmV2aXNpb24gOTI1
NDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0lt
cGwuaD4KIAogI2lmIFVTRShJQ1VfVU5JQ09ERSkKLSNpbmNsdWRlICJMaW5lQnJlYWtJdGVyYXRv
clBvb2xJQ1UuaCIKICNpbmNsdWRlICJUZXh0Q29kZWNJQ1UuaCIKICNlbmRpZgogCkBAIC04Mywx
NSArODIsNiBAQCBUaHJlYWRHbG9iYWxEYXRhOjp+VGhyZWFkR2xvYmFsRGF0YSgpCiAgICAgZGVz
dHJveSgpOwogfQogCi0jaWYgVVNFKElDVV9VTklDT0RFKQotTGluZUJyZWFrSXRlcmF0b3JQb29s
JiBUaHJlYWRHbG9iYWxEYXRhOjpsaW5lQnJlYWtJdGVyYXRvclBvb2woKQotewotICAgIGlmICgh
bV9saW5lQnJlYWtJdGVyYXRvclBvb2wpCi0gICAgICAgIG1fbGluZUJyZWFrSXRlcmF0b3JQb29s
ID0gTGluZUJyZWFrSXRlcmF0b3JQb29sOjpjcmVhdGUoKTsKLSAgICByZXR1cm4gKm1fbGluZUJy
ZWFrSXRlcmF0b3JQb29sOwotfQotI2VuZGlmCi0KIHZvaWQgVGhyZWFkR2xvYmFsRGF0YTo6ZGVz
dHJveSgpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTAyLDcgKzkyLDYgQEAgdm9pZCBUaHJl
YWRHbG9iYWxEYXRhOjpkZXN0cm95KCkKICNpZiBVU0UoSUNVX1VOSUNPREUpCiAgICAgZGVsZXRl
IG1fY2FjaGVkQ29udmVydGVySUNVOwogICAgIG1fY2FjaGVkQ29udmVydGVySUNVID0gMDsKLSAg
ICBtX2xpbmVCcmVha0l0ZXJhdG9yUG9vbCA9IG51bGxwdHI7CiAjZW5kaWYKIAogICAgIGRlbGV0
ZSBtX2V2ZW50TmFtZXM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9i
YWxEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xv
YmFsRGF0YS5oCShyZXZpc2lvbiA5MjU0MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
cmVhZEdsb2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNiBAQCB1c2luZyBX
VEY6OlRocmVhZFNwZWNpZmljOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgRXZl
bnROYW1lczsKLSAgICBjbGFzcyBMaW5lQnJlYWtJdGVyYXRvclBvb2w7CiAgICAgY2xhc3MgVGhy
ZWFkVGltZXJzOwogCiAgICAgc3RydWN0IElDVUNvbnZlcnRlcldyYXBwZXI7CkBAIC02MCw3ICs1
OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFVTRShJQ1VfVU5JQ09ERSkKICAgICAg
ICAgSUNVQ29udmVydGVyV3JhcHBlciYgY2FjaGVkQ29udmVydGVySUNVKCkgeyByZXR1cm4gKm1f
Y2FjaGVkQ29udmVydGVySUNVOyB9Ci0gICAgICAgIExpbmVCcmVha0l0ZXJhdG9yUG9vbCYgbGlu
ZUJyZWFrSXRlcmF0b3JQb29sKCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTc3
LDcgKzc1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgVVNFKElDVV9VTklDT0RFKQog
ICAgICAgICBJQ1VDb252ZXJ0ZXJXcmFwcGVyKiBtX2NhY2hlZENvbnZlcnRlcklDVTsKLSAgICAg
ICAgT3duUHRyPExpbmVCcmVha0l0ZXJhdG9yUG9vbD4gbV9saW5lQnJlYWtJdGVyYXRvclBvb2w7
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lQnJlYWtJdGVyYXRvclBvb2xJQ1UuaAkocmV2aXNp
b24gOTI1NDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJh
dG9yUG9vbElDVS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMSArMjcsMTIgQEAKICNkZWZpbmUg
TGluZUJyZWFrSXRlcmF0b3JQb29sSUNVX2gKIAogI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9y
SW50ZXJuYWxJQ1UuaCIKLSNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSA8
dW5pY29kZS91YnJrLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZFNwZWNpZmljLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
MSw3ICs0Miw4IEBAIGNsYXNzIExpbmVCcmVha0l0ZXJhdG9yUG9vbCB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIExpbmVCcmVha0l0ZXJhdG9yUG9vbCYgc2hhcmVkUG9vbCgpCiAgICAgewotICAgICAg
ICByZXR1cm4gdGhyZWFkR2xvYmFsRGF0YSgpLmxpbmVCcmVha0l0ZXJhdG9yUG9vbCgpOworICAg
ICAgICBzdGF0aWMgV1RGOjpUaHJlYWRTcGVjaWZpYzxMaW5lQnJlYWtJdGVyYXRvclBvb2w+KiBw
b29sID0gbmV3IFdURjo6VGhyZWFkU3BlY2lmaWM8TGluZUJyZWFrSXRlcmF0b3JQb29sPjsKKyAg
ICAgICAgcmV0dXJuICoqcG9vbDsKICAgICB9CiAKICAgICBzdGF0aWMgUGFzc093blB0cjxMaW5l
QnJlYWtJdGVyYXRvclBvb2w+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBMaW5lQnJl
YWtJdGVyYXRvclBvb2wpOyB9CkBAIC05Miw2ICs5NCw4IEBAIHByaXZhdGU6CiAgICAgdHlwZWRl
ZiBWZWN0b3I8RW50cnksIGNhcGFjaXR5PiBQb29sOwogICAgIFBvb2wgbV9wb29sOwogICAgIEhh
c2hNYXA8VUJyZWFrSXRlcmF0b3IqLCBBdG9taWNTdHJpbmc+IG1fdmVuZGVkSXRlcmF0b3JzOwor
CisgICAgZnJpZW5kIFdURjo6VGhyZWFkU3BlY2lmaWM8TGluZUJyZWFrSXRlcmF0b3JQb29sPjo6
b3BlcmF0b3IgTGluZUJyZWFrSXRlcmF0b3JQb29sKigpOwogfTsKIAogfQo=
</data>
<flag name="review"
          id="98646"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>