<?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>36381</bug_id>
          
          <creation_ts>2010-03-19 12:09:43 -0700</creation_ts>
          <short_desc>TextBreakIteratorICU.cpp is incompatible with new UBreakIterator type in ICU 4.4</short_desc>
          <delta_ts>2010-03-22 10:52:11 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://bugs.gentoo.org/show_bug.cgi?id=308699</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeff Kowalczyk">jtk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>gnome</cc>
    
    <cc>plaes</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>201973</commentid>
    <comment_count>0</comment_count>
    <who name="Jeff Kowalczyk">jtk</who>
    <bug_when>2010-03-19 12:09:43 -0700</bug_when>
    <thetext>Gentoo Linux ~amd64 added icu-4.4 recently. Webkit-gtk from git repository (currently 644f4138b) build fails with:

./doltlibtool --tag=CXX   --mode=compile x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I.  -DBUILDING_CAIRO__=1 -DBUILDING_GTK__=1 -DWTF_CHANGES -DWTF_USE_ICU_UNICODE=1   -DNDEBUG   -I./WebCore -I./WebCore/accessibility -I./WebCore/bindings/js -I./WebCore/bridge -I./WebCore/bridge/c -I./WebCore/bridge/jni/jsc -I./WebCore/bridge/jsc -I./WebCore/css -I./WebCore/dom -I./WebCore/dom/default -I./WebCore/editing -I./WebCore/history -I./WebCore/html -I./WebCore/html/canvas -I./WebCore/inspector -I./WebCore/loader -I./WebCore/loader/appcache -I./WebCore/loader/archive -I./WebCore/loader/icon -I./WebCore/mathml -I./WebCore/notifications -I./WebCore/page -I./WebCore/page/animation -I./WebCore/platform -I./WebCore/platform/animation -I./WebCore/platform/graphics -I./WebCore/platform/graphics/filters -I./WebCore/platform/graphics/transforms -I./WebCore/platform/image-decoders -I./WebCore/platform/image-decoders/bmp -I./WebCore/platform/image-decoders/gif -I./WebCore/platform/image-decoders/ico -I./WebCore/platform/image-decoders/jpeg -I./WebCore/platform/image-decoders/png -I./WebCore/platform/mock -I./WebCore/platform/network -I./WebCore/platform/sql -I./WebCore/platform/text -I./WebCore/plugins -I./WebCore/rendering -I./WebCore/rendering/style -I./WebCore/storage -I./WebCore/svg -I./WebCore/svg/animation -I./WebCore/svg/graphics -I./WebCore/svg/graphics/filters -I./WebCore/websockets -I./WebCore/wml -I./WebCore/workers -I./WebCore/xml -I./WebCore/bindings/js -DDATA_DIR=\&quot;/usr/share\&quot; -DENABLE_CHANNEL_MESSAGING=1  -DENABLE_DATAGRID=0 -DENABLE_PROGRESS_TAG=0 -DENABLE_JAVASCRIPT_DEBUGGER=1  -DENABLE_OFFLINE_WEB_APPLICATIONS=1 -DENABLE_DATABASE=1  -DENABLE_DATALIST=1 -DENABLE_EVENTSOURCE=1 -DENABLE_DOM_STORAGE=1 -DENABLE_ICONDATABASE=1   -DENABLE_VIDEO=1    -DENABLE_RUBY=1 -DENABLE_XPATH=1 -DENABLE_XSLT=1 -DENABLE_WORKERS=1 -DENABLE_SHARED_WORKERS=1  -DENABLE_FILTERS=1    -DENABLE_SVG=1 -DENABLE_SVG_USE=1 -DENABLE_SVG_FOREIGN_OBJECT=1 -DENABLE_SVG_FONTS=1 -DENABLE_SVG_AS_IMAGE=1 -DENABLE_SVG_ANIMATION=1  -DENABLE_WEB_SOCKETS=0   -DWTF_USE_SOUP=1 -I./WebCore/accessibility/gtk -I./WebCore/loader/gtk -I./WebCore/page/gtk -I./WebCore/platform/graphics/cairo -I./WebCore/platform/graphics/gstreamer -I./WebCore/platform/graphics/gtk -I./WebCore/platform/gtk -I./WebCore/platform/network/soup  -DUSE_PANGO=1 -I./JavaScriptCore/ForwardingHeaders -I./JavaScriptCore/parser -I./JavaScriptCore/wtf -I./JavaScriptCore/wtf/gtk -I./JavaScriptCore/wtf/gobject -I./DerivedSources -I./JavaScriptCore -I./JavaScriptCore/API -I./JavaScriptCore/ForwardingHeaders -I./JavaScriptCore/interpreter -I./JavaScriptCore/bytecode -I./JavaScriptCore/bytecompiler -I./JavaScriptCore/debugger -I./JavaScriptCore/jit -I./JavaScriptCore/pcre -I./JavaScriptCore/profiler -I./JavaScriptCore/runtime -I./JavaScriptCore/jit -I./JavaScriptCore/assembler -I./JavaScriptCore/wtf/unicode -I./JavaScriptCore/yarr -I./JavaScriptCore/pcre -I./JavaScriptCore/parser -I./JavaScriptCore/runtime -DXP_UNIX -DBUILDING_WEBKIT -DPACKAGE_LOCALE_DIR=\&quot;/usr/share/locale\&quot; -DDATA_DIR=\&quot;/usr/share\&quot; -I./WebKit/gtk -I./WebKit/gtk/WebCoreSupport -I./WebKit/gtk/webkit -I./WebKit/gtk/webkit   -Wall -W -Wcast-align -Wchar-subscripts -Wreturn-type -Wformat -Wformat-security -Wno-format-y2k -Wundef -Wmissing-format-attribute -Wpointer-arith -Wwrite-strings -Wno-unused-parameter -Wno-parentheses -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden -fno-rtti -fno-strict-aliasing  -pthread -I/usr/include/enchant -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -pthread -I/usr/include/gail-1.0 -I/usr/include/atk-1.0 -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/gtk-2.0/include -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12    -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libxml2   -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12    -pthread -I/usr/include/libsoup-2.4 -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -I/usr/include/libxml2   -I/usr/include/libxml2    -I/usr/include   -march=core2 -O2 -pipe  -MT WebCore/platform/text/libwebkit_1_0_la-TextBreakIteratorICU.lo -MD -MP -MF WebCore/platform/text/.deps/libwebkit_1_0_la-TextBreakIteratorICU.Tpo -c -o WebCore/platform/text/libwebkit_1_0_la-TextBreakIteratorICU.lo `test -f &apos;WebCore/platform/text/TextBreakIteratorICU.cpp&apos; || echo &apos;./&apos;`WebCore/platform/text/TextBreakIteratorICU.cpp
WebCore/platform/text/TextBreakIteratorICU.cpp: In function &apos;WebCore::TextBreakIterator* WebCore::setUpIterator(bool&amp;, WebCore::TextBreakIterator*&amp;, UBreakIteratorType, const UChar*, int)&apos;:
WebCore/platform/text/TextBreakIteratorICU.cpp:41: error: invalid static_cast from type &apos;UBreakIterator*&apos; to type &apos;WebCore::TextBreakIterator*&apos;
WebCore/platform/text/TextBreakIteratorICU.cpp:49: error: cannot convert &apos;WebCore::TextBreakIterator*&apos; to &apos;UBreakIterator*&apos; for argument &apos;1&apos; to &apos;void ubrk_setText_44(UBreakIterator*, const UChar*, int32_t, UErrorCode*)&apos;
WebCore/platform/text/TextBreakIteratorICU.cpp: In function &apos;int WebCore::textBreakFirst(WebCore::TextBreakIterator*)&apos;:
WebCore/platform/text/TextBreakIteratorICU.cpp:90: error: cannot convert &apos;WebCore::TextBreakIterator*&apos; to &apos;UBreakIterator*&apos; for argument &apos;1&apos; to &apos;int32_t ubrk_first_44(UBreakIterator*)&apos;
WebCore/platform/text/TextBreakIteratorICU.cpp: In function &apos;int WebCore::textBreakLast(WebCore::TextBreakIterator*)&apos;:
WebCore/platform/text/TextBreakIteratorICU.cpp:95: error: cannot convert &apos;WebCore::TextBreakIterator*&apos; to &apos;UBreakIterator*&apos; for argument &apos;1&apos; to &apos;int32_t ubrk_last_44(UBreakIterator*)&apos;
WebCore/platform/text/TextBreakIteratorICU.cpp: In function &apos;int WebCore::textBreakNext(WebCore::TextBreakIterator*)&apos;:
WebCore/platform/text/TextBreakIteratorICU.cpp:100: error: cannot convert &apos;WebCore::TextBreakIterator*&apos; to &apos;UBreakIterator*&apos; for argument &apos;1&apos; to &apos;int32_t ubrk_next_44(UBreakIterator*)&apos;
WebCore/platform/text/TextBreakIteratorICU.cpp: In function &apos;int WebCore::textBreakPrevious(WebCore::TextBreakIterator*)&apos;:
WebCore/platform/text/TextBreakIteratorICU.cpp:105: error: cannot convert &apos;WebCore::TextBreakIterator*&apos; to &apos;UBreakIterator*&apos; for argument &apos;1&apos; to &apos;int32_t ubrk_previous_44(UBreakIterator*)&apos;
WebCore/platform/text/TextBreakIteratorICU.cpp: In function &apos;int WebCore::textBreakPreceding(WebCore::TextBreakIterator*, int)&apos;:
WebCore/platform/text/TextBreakIteratorICU.cpp:110: error: cannot convert &apos;WebCore::TextBreakIterator*&apos; to &apos;UBreakIterator*&apos; for argument &apos;1&apos; to &apos;int32_t ubrk_preceding_44(UBreakIterator*, int32_t)&apos;
WebCore/platform/text/TextBreakIteratorICU.cpp: In function &apos;int WebCore::textBreakFollowing(WebCore::TextBreakIterator*, int)&apos;:
WebCore/platform/text/TextBreakIteratorICU.cpp:115: error: cannot convert &apos;WebCore::TextBreakIterator*&apos; to &apos;UBreakIterator*&apos; for argument &apos;1&apos; to &apos;int32_t ubrk_following_44(UBreakIterator*, int32_t)&apos;
WebCore/platform/text/TextBreakIteratorICU.cpp: In function &apos;int WebCore::textBreakCurrent(WebCore::TextBreakIterator*)&apos;:
WebCore/platform/text/TextBreakIteratorICU.cpp:120: error: cannot convert &apos;WebCore::TextBreakIterator*&apos; to &apos;const UBreakIterator*&apos; for argument &apos;1&apos; to &apos;int32_t ubrk_current_44(const UBreakIterator*)&apos;
WebCore/platform/text/TextBreakIteratorICU.cpp: In function &apos;bool WebCore::isTextBreak(WebCore::TextBreakIterator*, int)&apos;:
WebCore/platform/text/TextBreakIteratorICU.cpp:125: error: cannot convert &apos;WebCore::TextBreakIterator*&apos; to &apos;UBreakIterator*&apos; for argument &apos;1&apos; to &apos;UBool ubrk_isBoundary_44(UBreakIterator*, int32_t)&apos;
WebCore/platform/text/TextBreakIteratorICU.cpp: In function &apos;WebCore::TextBreakIterator* WebCore::setUpIteratorWithRules(bool&amp;, WebCore::TextBreakIterator*&amp;, const char*, const UChar*, int)&apos;:
WebCore/platform/text/TextBreakIteratorICU.cpp:139: error: invalid static_cast from type &apos;UBreakIterator*&apos; to type &apos;WebCore::TextBreakIterator*&apos;
WebCore/platform/text/TextBreakIteratorICU.cpp:147: error: cannot convert &apos;WebCore::TextBreakIterator*&apos; to &apos;UBreakIterator*&apos; for argument &apos;1&apos; to &apos;void ubrk_setText_44(UBreakIterator*, const UChar*, int32_t, UErrorCode*)&apos;
make[1]: *** [WebCore/platform/text/libwebkit_1_0_la-TextBreakIteratorICU.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
mv -f WebCore/bindings/js/.deps/libwebkit_1_0_la-ScriptControllerGtk.Tpo WebCore/bindings/js/.deps/libwebkit_1_0_la-ScriptControllerGtk.Plo
make[1]: Leaving directory `/var/tmp/portage/net-libs/webkit-gtk-9999/work/webkit-gtk-9999&apos;
make: *** [all] Error 2
 * ERROR: net-libs/webkit-gtk-9999 failed:
 *   emake failed
 * 
 * Call stack:
 *     ebuild.sh, line   54:  Called src_compile
 *   environment, line 3159:  Called _eapi2_src_compile
 *     ebuild.sh, line  646:  Called die
 * The specific snippet of code:
 *              emake || die &quot;emake failed&quot;
 * 
 * If you need support, post the output of &apos;emerge --info =net-libs/webkit-gtk-9999&apos;,
 * the complete build log and the output of &apos;emerge -pqv =net-libs/webkit-gtk-9999&apos;.
 * This ebuild is from an overlay named &apos;wirelay&apos;: &apos;/var/lib/layman/wirelay/&apos;
 * The complete build log is located at &apos;/var/tmp/portage/net-libs/webkit-gtk-9999/temp/build.log&apos;.
 * The ebuild environment file is located at &apos;/var/tmp/portage/net-libs/webkit-gtk-9999/temp/environment&apos;.
 * S: &apos;/var/tmp/portage/net-libs/webkit-gtk-9999/work/webkit-gtk-9999&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202183</commentid>
    <comment_count>1</comment_count>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2010-03-19 23:57:57 -0700</bug_when>
    <thetext>There&apos;s patch to fix this issue in FreeBSD port collection:

http://www.freebsd.org/cgi/cvsweb.cgi/ports/www/webkit-gtk2/files/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202232</commentid>
    <comment_count>2</comment_count>
      <attachid>51230</attachid>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2010-03-20 13:43:49 -0700</bug_when>
    <thetext>Created attachment 51230
webkit-icu-4.4.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202233</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-20 13:46:29 -0700</bug_when>
    <thetext>Attachment 51230 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/text/TextBreakIterator.h:30:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebCore/platform/text/TextBreakIterator.h:29:  More than one command on the same line in if  [whitespace/parens] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202239</commentid>
    <comment_count>4</comment_count>
      <attachid>51230</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-20 14:03:57 -0700</bug_when>
    <thetext>Comment on attachment 51230
webkit-icu-4.4.patch

Fixing this should not require any changes to the header file. The changes should be inside TextBreakIteratorICU.cpp with no changes to header files.

Since ICU has changed the type UBreakIterator from a void to an actual type, the type casts involving UBreakIterator should now be reinterpret_cast rather than static_cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202243</commentid>
    <comment_count>5</comment_count>
      <attachid>51233</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-20 14:18:11 -0700</bug_when>
    <thetext>Created attachment 51233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202273</commentid>
    <comment_count>6</comment_count>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2010-03-21 00:04:51 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=51233) [details]
&gt; Patch

Confirmed to be working with icu-4.4 :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202601</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-22 10:52:11 -0700</bug_when>
    <thetext>Committed r56345: &lt;http://trac.webkit.org/changeset/56345&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51230</attachid>
            <date>2010-03-20 13:43:49 -0700</date>
            <delta_ts>2010-03-20 14:18:08 -0700</delta_ts>
            <desc>webkit-icu-4.4.patch</desc>
            <filename>webkit-icu-4.4.patch</filename>
            <type>text/plain</type>
            <size>2180</size>
            <attacher name="Priit Laes (IRC: plaes)">plaes</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA3MjIyMGJhLi5jNTk4YTA3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTAtMDMtMjAgIFByaWl0IExhZXMgIDxwbGFlc0BwbGFlcy5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDM2MzgxOiB3ZWJraXQg
dy8gaWN1LTQuNDogVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwIGVycm9yIGNhbm5vdAorICAgICAg
ICBjb252ZXJ0IFdlYkNvcmUgVGV4dC4uLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNjM4MQorCisgICAgICAgIEluY2x1ZGUgdXZlcnNpb24uaCBm
cm9tIGljdSwgc28gd2UgY2FuIGNoZWNrIGl0cyB2ZXJzaW9uIG51bWJlci4KKworICAgICAgICAq
IHd0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1Lmg6CisKIDIwMTAtMDMtMTggIFRvbSBDYWxsYXdh
eSAgPHRjYWxsYXdhQHJlZGhhdC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlj
dS5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaAppbmRleCBh
MmE1YzBhLi44MTBmMzRiIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9p
Y3UvVW5pY29kZUljdS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmlj
b2RlSWN1LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDx1bmljb2RlL3VjaGFyLmg+CiAj
aW5jbHVkZSA8dW5pY29kZS91c3RyaW5nLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91dGYxNi5oPgor
I2luY2x1ZGUgPHVuaWNvZGUvdXZlcnNpb24uaD4KIAogbmFtZXNwYWNlIFdURiB7CiBuYW1lc3Bh
Y2UgVW5pY29kZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDU2MjQwMjIuLmQ1MTk3M2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDMtMjAg
IFByaWl0IExhZXMgIDxwbGFlc0BwbGFlcy5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDM2MzgxOiB3ZWJraXQgdy8gaWN1LTQuNDogVGV4
dEJyZWFrSXRlcmF0b3JJQ1UuY3BwIGVycm9yIGNhbm5vdAorICAgICAgICBjb252ZXJ0IFdlYkNv
cmUgVGV4dC4uLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNjM4MQorCisgICAgICAgIFVzZSBwcm9wZXIgZGVmaW5pdGlvbiBmb3IgVGV4dEJyZWFr
SXRlcmF0b3IgZGVwZW5kaW5nIG9uIGljdSB2ZXJzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorCiAyMDEwLTAzLTIwICBKb3NlcGggUGVjb3Jhcm8g
IDxqb2VwZWNrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgS2lsemVy
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAppbmRleCAxN2NmNWYw
Li43ZWFkMTk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRl
cmF0b3IuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApA
QCAtMjYsNyArMjYsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgKFVfSUNVX1ZF
UlNJT05fTUFKT1JfTlVNID09IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA0KQor
ICAgIHR5cGVkZWYgc3RydWN0IFVCcmVha0l0ZXJhdG9yIFRleHRCcmVha0l0ZXJhdG9yOworI2Vs
c2UKICAgICBjbGFzcyBUZXh0QnJlYWtJdGVyYXRvcjsKKyNlbmRpZgorCiAKICAgICAvLyBOb3Rl
OiBUaGUgcmV0dXJuZWQgaXRlcmF0b3IgaXMgZ29vZCBvbmx5IHVudGlsIHlvdSBnZXQgYW5vdGhl
ciBpdGVyYXRvci4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51233</attachid>
            <date>2010-03-20 14:18:11 -0700</date>
            <delta_ts>2010-03-20 14:21:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36381-20100320141810.patch</filename>
            <type>text/plain</type>
            <size>5263</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjMxMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDMtMjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRleHRC
cmVha0l0ZXJhdG9ySUNVLmNwcCBpcyBpbmNvbXBhdGlibGUgd2l0aCBuZXcgVUJyZWFrSXRlcmF0
b3IgdHlwZSBpbiBJQ1UgNC40CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNjM4MQorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVy
YXRvcklDVS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRVcEl0ZXJhdG9yKTogVXNlIHJlaW50
ZXJwcmV0X2Nhc3QgaW5zdGVhZCBvZiBzdGF0aWNfY2FzdCBvciByZWx5aW5nCisgICAgICAgIG9u
IGNvbnZlcnNpb24gdG8gdm9pZCouCisgICAgICAgIChXZWJDb3JlOjp0ZXh0QnJlYWtGaXJzdCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6dGV4dEJyZWFrTGFzdCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6dGV4dEJyZWFrTmV4dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6dGV4
dEJyZWFrUHJldmlvdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnRleHRCcmVha1ByZWNl
ZGluZyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6dGV4dEJyZWFrRm9sbG93aW5nKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjp0ZXh0QnJlYWtDdXJyZW50KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjppc1RleHRCcmVhayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6c2V0VXBJ
dGVyYXRvcldpdGhSdWxlcyk6IERpdHRvLgorCiAyMDEwLTAzLTIwICBLZXZpbiBPbGxpdmllciAg
PGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIFt3eF0gQnVpbGQgZml4ZXMgYWZ0
ZXIgcmVjZW50IGNoYW5nZXMuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3JJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
QnJlYWtJdGVyYXRvcklDVS5jcHAJKHJldmlzaW9uIDU2MDYyKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyAr
MjQsNiBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJUZXh0QnJl
YWtJdGVyYXRvckludGVybmFsSUNVLmgiCi0KICNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCkBAIC0zOCw3ICszNyw3IEBAIHN0YXRpYyBUZXh0
QnJlYWtJdGVyYXRvciogc2V0VXBJdGVyYXRvcigKIAogICAgIGlmICghY3JlYXRlZEl0ZXJhdG9y
KSB7CiAgICAgICAgIFVFcnJvckNvZGUgb3BlblN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICAg
ICAgaXRlcmF0b3IgPSBzdGF0aWNfY2FzdDxUZXh0QnJlYWtJdGVyYXRvcio+KHVicmtfb3Blbih0
eXBlLCBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSwgMCwgMCwgJm9wZW5TdGF0dXMpKTsKKyAg
ICAgICAgaXRlcmF0b3IgPSByZWludGVycHJldF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4odWJy
a19vcGVuKHR5cGUsIGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpLCAwLCAwLCAmb3BlblN0YXR1
cykpOwogICAgICAgICBjcmVhdGVkSXRlcmF0b3IgPSB0cnVlOwogICAgICAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKFVfU1VDQ0VTUyhvcGVuU3RhdHVzKSwgIklDVSBjb3VsZCBub3Qgb3BlbiBhIGJy
ZWFrIGl0ZXJhdG9yOiAlcyAoJWQpIiwgdV9lcnJvck5hbWUob3BlblN0YXR1cyksIG9wZW5TdGF0
dXMpOwogICAgIH0KQEAgLTQ2LDcgKzQ1LDcgQEAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBz
ZXRVcEl0ZXJhdG9yKAogICAgICAgICByZXR1cm4gMDsKIAogICAgIFVFcnJvckNvZGUgc2V0VGV4
dFN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICB1YnJrX3NldFRleHQoaXRlcmF0b3IsIHN0cmlu
ZywgbGVuZ3RoLCAmc2V0VGV4dFN0YXR1cyk7CisgICAgdWJya19zZXRUZXh0KHJlaW50ZXJwcmV0
X2Nhc3Q8VUJyZWFrSXRlcmF0b3IqPihpdGVyYXRvciksIHN0cmluZywgbGVuZ3RoLCAmc2V0VGV4
dFN0YXR1cyk7CiAgICAgaWYgKFVfRkFJTFVSRShzZXRUZXh0U3RhdHVzKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKQEAgLTg1LDQ0ICs4NCw0NCBAQCBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VC
cmVha0l0ZXJhdG9yCiAgICAgICAgIHN0YXRpY1NlbnRlbmNlQnJlYWtJdGVyYXRvciwgVUJSS19T
RU5URU5DRSwgc3RyaW5nLCBsZW5ndGgpOwogfQogCi1pbnQgdGV4dEJyZWFrRmlyc3QoVGV4dEJy
ZWFrSXRlcmF0b3IqIGJpKQoraW50IHRleHRCcmVha0ZpcnN0KFRleHRCcmVha0l0ZXJhdG9yKiBp
dGVyYXRvcikKIHsKLSAgICByZXR1cm4gdWJya19maXJzdChiaSk7CisgICAgcmV0dXJuIHVicmtf
Zmlyc3QocmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKSk7CiB9CiAK
LWludCB0ZXh0QnJlYWtMYXN0KFRleHRCcmVha0l0ZXJhdG9yKiBiaSkKK2ludCB0ZXh0QnJlYWtM
YXN0KFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKIHsKLSAgICByZXR1cm4gdWJya19sYXN0
KGJpKTsKKyAgICByZXR1cm4gdWJya19sYXN0KHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRlcmF0
b3IqPihpdGVyYXRvcikpOwogfQogCi1pbnQgdGV4dEJyZWFrTmV4dChUZXh0QnJlYWtJdGVyYXRv
ciogYmkpCitpbnQgdGV4dEJyZWFrTmV4dChUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiB7
Ci0gICAgcmV0dXJuIHVicmtfbmV4dChiaSk7CisgICAgcmV0dXJuIHVicmtfbmV4dChyZWludGVy
cHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpKTsKIH0KIAotaW50IHRleHRCcmVh
a1ByZXZpb3VzKFRleHRCcmVha0l0ZXJhdG9yKiBiaSkKK2ludCB0ZXh0QnJlYWtQcmV2aW91cyhU
ZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiB7Ci0gICAgcmV0dXJuIHVicmtfcHJldmlvdXMo
YmkpOworICAgIHJldHVybiB1YnJrX3ByZXZpb3VzKHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRl
cmF0b3IqPihpdGVyYXRvcikpOwogfQogCi1pbnQgdGV4dEJyZWFrUHJlY2VkaW5nKFRleHRCcmVh
a0l0ZXJhdG9yKiBiaSwgaW50IHBvcykKK2ludCB0ZXh0QnJlYWtQcmVjZWRpbmcoVGV4dEJyZWFr
SXRlcmF0b3IqIGl0ZXJhdG9yLCBpbnQgcG9zKQogewotICAgIHJldHVybiB1YnJrX3ByZWNlZGlu
ZyhiaSwgcG9zKTsKKyAgICByZXR1cm4gdWJya19wcmVjZWRpbmcocmVpbnRlcnByZXRfY2FzdDxV
QnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKSwgcG9zKTsKIH0KIAotaW50IHRleHRCcmVha0ZvbGxv
d2luZyhUZXh0QnJlYWtJdGVyYXRvciogYmksIGludCBwb3MpCitpbnQgdGV4dEJyZWFrRm9sbG93
aW5nKFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvciwgaW50IHBvcykKIHsKLSAgICByZXR1cm4g
dWJya19mb2xsb3dpbmcoYmksIHBvcyk7CisgICAgcmV0dXJuIHVicmtfZm9sbG93aW5nKHJlaW50
ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRlcmF0b3IqPihpdGVyYXRvciksIHBvcyk7CiB9CiAKLWludCB0
ZXh0QnJlYWtDdXJyZW50KFRleHRCcmVha0l0ZXJhdG9yKiBiaSkKK2ludCB0ZXh0QnJlYWtDdXJy
ZW50KFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKIHsKLSAgICByZXR1cm4gdWJya19jdXJy
ZW50KGJpKTsKKyAgICByZXR1cm4gdWJya19jdXJyZW50KHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFr
SXRlcmF0b3IqPihpdGVyYXRvcikpOwogfQogCi1ib29sIGlzVGV4dEJyZWFrKFRleHRCcmVha0l0
ZXJhdG9yKiBiaSwgaW50IHBvcykKK2Jvb2wgaXNUZXh0QnJlYWsoVGV4dEJyZWFrSXRlcmF0b3Iq
IGl0ZXJhdG9yLCBpbnQgcG9zaXRpb24pCiB7Ci0gICAgcmV0dXJuIHVicmtfaXNCb3VuZGFyeShi
aSwgcG9zKTsKKyAgICByZXR1cm4gdWJya19pc0JvdW5kYXJ5KHJlaW50ZXJwcmV0X2Nhc3Q8VUJy
ZWFrSXRlcmF0b3IqPihpdGVyYXRvciksIHBvc2l0aW9uKTsKIH0KIAogI2lmbmRlZiBCVUlMRElO
R19PTl9USUdFUgpAQCAtMTM2LDcgKzEzNSw3IEBAIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciog
c2V0VXBJdGVyYXRvclcKICAgICAgICAgVVBhcnNlRXJyb3IgcGFyc2VTdGF0dXM7CiAgICAgICAg
IFVFcnJvckNvZGUgb3BlblN0YXR1cyA9IFVfWkVST19FUlJPUjsKICAgICAgICAgU3RyaW5nIHJ1
bGVzKGJyZWFrUnVsZXMpOwotICAgICAgICBpdGVyYXRvciA9IHN0YXRpY19jYXN0PFRleHRCcmVh
a0l0ZXJhdG9yKj4odWJya19vcGVuUnVsZXMocnVsZXMuY2hhcmFjdGVycygpLCBydWxlcy5sZW5n
dGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cykpOworICAgICAgICBpdGVyYXRv
ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFrSXRlcmF0b3IqPih1YnJrX29wZW5SdWxlcyhy
dWxlcy5jaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZv
cGVuU3RhdHVzKSk7CiAgICAgICAgIGNyZWF0ZWRJdGVyYXRvciA9IHRydWU7CiAgICAgICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UoVV9TVUNDRVNTKG9wZW5TdGF0dXMpLCAiSUNVIGNvdWxkIG5vdCBv
cGVuIGEgYnJlYWsgaXRlcmF0b3I6ICVzICglZCkiLCB1X2Vycm9yTmFtZShvcGVuU3RhdHVzKSwg
b3BlblN0YXR1cyk7CiAgICAgfQpAQCAtMTQ0LDcgKzE0Myw3IEBAIHN0YXRpYyBUZXh0QnJlYWtJ
dGVyYXRvciogc2V0VXBJdGVyYXRvclcKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBVRXJyb3JD
b2RlIHNldFRleHRTdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgdWJya19zZXRUZXh0KGl0ZXJh
dG9yLCBzdHJpbmcsIGxlbmd0aCwgJnNldFRleHRTdGF0dXMpOworICAgIHVicmtfc2V0VGV4dChy
ZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpLCBzdHJpbmcsIGxlbmd0
aCwgJnNldFRleHRTdGF0dXMpOwogICAgIGlmIChVX0ZBSUxVUkUoc2V0VGV4dFN0YXR1cykpCiAg
ICAgICAgIHJldHVybiAwOwogCg==
</data>
<flag name="review"
          id="34452"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>