<?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>46794</bug_id>
          
          <creation_ts>2010-09-29 03:48:19 -0700</creation_ts>
          <short_desc>Crashes randomly in cairo_scaled_font_destroy</short_desc>
          <delta_ts>2010-10-25 13:16:35 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Priit Laes (IRC: plaes)">plaes</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bunk</cc>
    
    <cc>darin</cc>
    
    <cc>fabien.coeurjoly</cc>
    
    <cc>mrobinson</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>286786</commentid>
    <comment_count>0</comment_count>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2010-09-29 03:48:19 -0700</bug_when>
    <thetext>Webkit-gtk-1.3.4 on amd64 and epiphany 2.30.6

I&apos;m getting random crashes like this:

#6  cairo_scaled_font_destroy (scaled_font=0xffffffffffffffff) at cairo-scaled-font.c:1221
#7  0x00007f380820f7f5 in operator= (this=0x7f3761ee2230, other=...) at ./JavaScriptCore/wtf/PlatformRefPtr.h:114
#8  WebCore::FontPlatformData::operator= (this=0x7f3761ee2230, other=...) at WebCore/platform/graphics/cairo/FontPlatformDataFreeType.cpp:169
#9  0x00007f3807f33161 in translate (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashMap.h:124
#10 add&lt;WebCore::FontPlatformData, std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt;, WTF::HashMapTranslator&lt;std::pair&lt;WebCore::FontPlatformData, std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt; &gt;, WTF::PairHashTraits&lt;WebCore::FontDataCacheKeyTraits, WTF::HashTraits&lt;std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt; &gt; &gt;, WebCore::FontDataCacheKeyHash&gt; &gt; (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashTable.h:691
#11 inlineAdd (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashMap.h:241
#12 WTF::HashMap&lt;WebCore::FontPlatformData, std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt;, WebCore::FontDataCacheKeyHash, WebCore::FontDataCacheKeyTraits, WTF::HashTraits&lt;std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt; &gt; &gt;::set (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashMap.h:248
#13 0x00007f3807f2fcd5 in WebCore::FontCache::getCachedFontData (this=&lt;value optimized out&gt;, platformData=0x7f37612c6600) at WebCore/platform/graphics/FontCache.cpp:282
#14 0x00007f3807bc42b2 in WebCore::fontDataForGenericFamily (document=&lt;value optimized out&gt;, fontDescription=..., familyName=&lt;value optimized out&gt;) at WebCore/css/CSSFontSelector.cpp:393
#15 0x00007f3807bc5342 in WebCore::CSSFontSelector::getFontData (this=0x7f37e656fea0, fontDescription=&lt;value optimized out&gt;, familyName=&lt;value optimized out&gt;) at WebCore/css/CSSFontSelector.cpp:466
#16 0x00007f3807f31ea5 in WebCore::FontCache::getFontData (this=0x7f37ed2c4048, font=..., familyIndex=@0x7f37e6b89e60, fontSelector=0x7f37e656fea0) at WebCore/platform/graphics/FontCache.cpp:384
#17 0x00007f3807f35d8a in WebCore::FontFallbackList::fontDataAt (this=0x7f37e6b89e00, font=&lt;value optimized out&gt;, realizedFontIndex=&lt;value optimized out&gt;) at WebCore/platform/graphics/FontFallbackList.cpp:105
#18 0x00007f3807f35ed8 in primaryFontData (this=0xffffffffffffffff, font=0x7f37612c6600) at WebCore/platform/graphics/FontFallbackList.h:66
#19 WebCore::FontFallbackList::determinePitch (this=0xffffffffffffffff, font=0x7f37612c6600) at WebCore/platform/graphics/FontFallbackList.cpp:76
#20 0x00007f380806ccf5 in isFixedPitch (this=0x7f3763a10a58, leadWidth=&lt;value optimized out&gt;, fallbackFonts=&lt;value optimized out&gt;, glyphOverflow=&lt;value optimized out&gt;) at ./WebCore/platform/graphics/FontFallbackList.h:47
#21 isFixedPitch (this=0x7f3763a10a58, leadWidth=&lt;value optimized out&gt;, fallbackFonts=&lt;value optimized out&gt;, glyphOverflow=&lt;value optimized out&gt;) at ./WebCore/platform/graphics/Font.h:251
#22 widthFromCache (this=0x7f3763a10a58, leadWidth=&lt;value optimized out&gt;, fallbackFonts=&lt;value optimized out&gt;, glyphOverflow=&lt;value optimized out&gt;) at WebCore/rendering/RenderText.cpp:540
#23 WebCore::RenderText::calcPrefWidths (this=0x7f3763a10a58, leadWidth=&lt;value optimized out&gt;, fallbackFonts=&lt;value optimized out&gt;, glyphOverflow=&lt;value optimized out&gt;) at WebCore/rendering/RenderText.cpp:793
#24 0x00007f380806de9d in WebCore::RenderText::calcPrefWidths (this=0xffffffffffffffff, leadWidth=1630299648) at WebCore/rendering/RenderText.cpp:687
#25 0x00007f380806c1da in WebCore::RenderText::trimmedPrefWidths (this=0x7f3763a10a58, leadWidth=&lt;value optimized out&gt;, beginMinW=@0x7fff9e4b2edc, beginWS=&lt;value optimized out&gt;, endMinW=&lt;value optimized out&gt;, endWS=&lt;value optimized out&gt;, hasBreakableChar=@0x7fff9e4b2eee, hasBreak=@0x7fff9e4b2eed, beginMaxW=@0x7fff9e4b2ed4, endMaxW=@0x7fff9e4b2ed0, minW=@0x7fff9e4b2ee4, maxW=@0x7fff9e4b2ee0, stripFrontSpaces=@0x7fff9e4b2eef) at WebCore/rendering/RenderText.cpp:585
#26 0x00007f3807fc5b9a in WebCore::RenderBlock::calcInlinePrefWidths (this=0x7f3763a10820) at WebCore/rendering/RenderBlock.cpp:4924
#27 0x00007f3807fc6058 in WebCore::RenderBlock::calcPrefWidths (this=0x7f3763a10820) at WebCore/rendering/RenderBlock.cpp:4606
#28 0x00007f3808054bf7 in WebCore::RenderTableCell::calcPrefWidths (this=0x7f3763a10820) at WebCore/rendering/RenderTableCell.cpp:132
#29 0x00007f3807f9d754 in WebCore::AutoTableLayout::recalcColumn (this=&lt;value optimized out&gt;, effCol=&lt;value optimized out&gt;) at WebCore/rendering/AutoTableLayout.cpp:83
#30 0x00007f3807f9de4e in WebCore::AutoTableLayout::fullRecalc (this=0x7f375fe28c30) at WebCore/rendering/AutoTableLayout.cpp:206
#31 0x00007f3807f9e9b2 in WebCore::AutoTableLayout::calcPrefWidths (this=0xffffffffffffffff, minWidth=@0x7f37612c6600, maxWidth=@0xba706d9d) at WebCore/rendering/AutoTableLayout.cpp:244
#32 0x00007f38080595bf in WebCore::RenderTable::calcPrefWidths (this=0x7f3763a106f0) at WebCore/rendering/RenderTable.cpp:543
#33 0x00007f3807fd99c3 in WebCore::RenderBox::minPrefWidth (this=0x7f3763a106f0) at WebCore/rendering/RenderBox.cpp:539
#34 0x00007f38080572ef in WebCore::RenderTable::calcWidth (this=0x7f3763a106f0) at WebCore/rendering/RenderTable.cpp:209
#35 0x00007f3808059adf in WebCore::RenderTable::layout (this=0x7f3763a106f0) at WebCore/rendering/RenderTable.cpp:255
#36 0x00007f3807fc7116 in WebCore::RenderBlock::layoutBlockChild (this=0x7f3761d49538, child=0x7f3763a106f0, marginInfo=..., previousFloatBottom=@0x7fff9e4b334c, maxFloatBottom=&lt;value optimized out&gt;) at WebCore/rendering/RenderBlock.cpp:1853
#37 0x00007f3807fc8e1e in WebCore::RenderBlock::layoutBlockChildren (this=0x7f3761d49538, relayoutChildren=&lt;value optimized out&gt;, maxFloatBottom=@0x7fff9e4b3454) at WebCore/rendering/RenderBlock.cpp:1792
#38 0x00007f3807fc9674 in WebCore::RenderBlock::layoutBlock (this=0x7f3761d49538, relayoutChildren=true, pageHeight=0) at WebCore/rendering/RenderBlock.cpp:1206
#39 0x00007f3807fb502d in WebCore::RenderBlock::layout (this=0x7f3761d49538) at WebCore/rendering/RenderBlock.cpp:1103
#40 0x00007f3807fc7116 in WebCore::RenderBlock::layoutBlockChild (this=0x7f3761d49368, child=0x7f3761d49538, marginInfo=..., previousFloatBottom=@0x7fff9e4b357c, maxFloatBottom=&lt;value optimized out&gt;) at WebCore/rendering/RenderBlock.cpp:1853
#41 0x00007f3807fc8e1e in WebCore::RenderBlock::layoutBlockChildren (this=0x7f3761d49368, relayoutChildren=&lt;value optimized out&gt;, maxFloatBottom=@0x7fff9e4b3684) at WebCore/rendering/RenderBlock.cpp:1792
#42 0x00007f3807fc9674 in WebCore::RenderBlock::layoutBlock (this=0x7f3761d49368, relayoutChildren=true, pageHeight=0) at WebCore/rendering/RenderBlock.cpp:1206
#43 0x00007f3807fb502d in WebCore::RenderBlock::layout (this=0x7f3761d49368) at WebCore/rendering/RenderBlock.cpp:1103
#44 0x00007f3807fc7116 in WebCore::RenderBlock::layoutBlockChild (this=0x7f3761d49120, child=0x7f3761d49368, marginInfo=..., previousFloatBottom=@0x7fff9e4b37ac, maxFloatBottom=&lt;value optimized out&gt;) at WebCore/rendering/RenderBlock.cpp:1853
#45 0x00007f3807fc8e1e in WebCore::RenderBlock::layoutBlockChildren (this=0x7f3761d49120, relayoutChildren=&lt;value optimized out&gt;, maxFloatBottom=@0x7fff9e4b38b4) at WebCore/rendering/RenderBlock.cpp:1792
#46 0x00007f3807fc9674 in WebCore::RenderBlock::layoutBlock (this=0x7f3761d49120, relayoutChildren=true, pageHeight=0) at WebCore/rendering/RenderBlock.cpp:1206
#47 0x00007f3807fb502d in WebCore::RenderBlock::layout (this=0x7f3761d49120) at WebCore/rendering/RenderBlock.cpp:1103
#48 0x00007f3808077d4f in WebCore::RenderView::layout (this=0x7f3761d49120) at WebCore/rendering/RenderView.cpp:124
#49 0x00007f3807ef903a in WebCore::FrameView::layout (this=0x7f376131e8c0, allowSubtree=&lt;value optimized out&gt;) at WebCore/page/FrameView.cpp:766
#50 0x00007f3807f836f6 in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0x7f37ed350570) at WebCore/platform/ThreadTimers.cpp:112
#51 0x00007f38081f47c2 in WebCore::timeout_cb () at WebCore/platform/gtk/SharedTimerGtk.cpp:49
#52 0x00007f3804decbab in IA__g_mapped_file_new (filename=&lt;value optimized out&gt;, writable=&lt;value optimized out&gt;, error=0x1) at gmappedfile.c:227
#53 0x00007f3800000000 in ?? ()
#54 0x00007f38050aa748 in ?? ()
#55 0x00007f38050aa780 in ?? ()
#56 0x0000000100000001 in ?? ()
#57 0x0000000000b3e1d8 in ?? ()
#58 0x00007fff9e4b4d58 in ?? ()
#59 0x0000007800000000 in ?? ()
#60 0x000000001bc8e1ac in ?? ()
#61 0x0000000000be81f0 in ?? ()
#62 0x0000000000b03e50 in ?? ()
#63 0x00007f38050aae20 in ?? ()
#64 0x0000000000000001 in ?? ()
#65 0x0000000000be81fc in ?? ()
#66 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f37edbc2710 (LWP 11025)):
#0  pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
No locals.
#1  0x00007f3808809034 in WTF::TCMalloc_PageHeap::scavengerThread (this=0x7f3808e32960) at JavaScriptCore/wtf/FastMalloc.cpp:2400
No locals.
#2  0x00007f3808809059 in WTF::TCMalloc_PageHeap::runScavengerThread (context=0x7f3808e40a34) at JavaScriptCore/wtf/FastMalloc.cpp:1517
No locals.
#3  0x00007f3804657c1a in start_thread (arg=&lt;value optimized out&gt;) at pthread_create.c:301
        __res = &lt;value optimized out&gt;
        pd = 0x7f37edbc2710
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139878188459792, 3900333059547475318, 139878568699296, 139878188460496, 139878673485824, 3, -4012954415397196426, -4012482373570908810}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = &lt;value optimized out&gt;
        robust = &lt;value optimized out&gt;
        freesize = &lt;value optimized out&gt;
        __PRETTY_FUNCTION__ = &quot;start_thread&quot;
#4  0x00007f38043bca9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
No locals.

Thread 2 (Thread 0x7f37ed2c1710 (LWP 11026)):
#0  pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
No locals.
#1  0x00007f3807e92c85 in WebCore::IconDatabase::syncThreadMainLoop (this=0x7f37ed2ca800) at WebCore/loader/icon/IconDatabase.cpp:1420
        didAnyWork = false
        shouldReenableSuddenTermination = true
#2  0x00007f3807e92d96 in WebCore::IconDatabase::iconDatabaseSyncThread (this=0x7f37ed2ca800) at WebCore/loader/icon/IconDatabase.cpp:1044
        journalFilename = {m_impl = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, m_ptr = 0x7f37ed2d8f20}}
#3  0x00007f3804657c1a in start_thread (arg=&lt;value optimized out&gt;) at pthread_create.c:301
        __res = &lt;value optimized out&gt;
        pd = 0x7f37ed2c1710
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139878179018512, 3900333059547475318, 139878568699296, 139878179019216, 139878673485824, 3, -4012955651810906762, -4012482373570908810}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = &lt;value optimized out&gt;
        robust = &lt;value optimized out&gt;
        freesize = &lt;value optimized out&gt;
        __PRETTY_FUNCTION__ = &quot;start_thread&quot;
#4  0x00007f38043bca9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
No locals.

Thread 1 (Thread 0x7f380a9ff8c0 (LWP 11024)):
#0  0x00007f380465ffdd in __libc_waitpid (pid=20157, stat_loc=&lt;value optimized out&gt;, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:41
        _a3 = 0
        _a1 = 20157
        resultvar = &lt;value optimized out&gt;
        _a4 = 0
        _a2 = 140735849111520
        oldtype = 0
        result = &lt;value optimized out&gt;
#1  0x00007f3804e32751 in compile_branch (options=&lt;value optimized out&gt;, oldims=&lt;value optimized out&gt;, codeptr=&lt;value optimized out&gt;, ptrptr=&lt;value optimized out&gt;, errorcodeptr=&lt;value optimized out&gt;, lookbehind=&lt;value optimized out&gt;, reset_bracount=149090296, skipbytes=&lt;value optimized out&gt;, firstbyteptr=0x0, reqbyteptr=0x0, bcptr=0x0, cd=0x0, lengthptr=0x0) at /usr/include/bits/string3.h:52
        prop_type = &lt;value optimized out&gt;
        prop_value = 0
        recno = &lt;value optimized out&gt;
        subfirstbyte = 59848768
        mclength = &lt;value optimized out&gt;
        class_charcount = &lt;value optimized out&gt;
        possessive_quantifier = 0
        is_quantifier = 0
        is_recurse = &lt;value optimized out&gt;
        reset_bracount = &lt;value optimized out&gt;
        subreqbyte = 0
        mcbuffer = &quot;@\000\000\000\000\000\000&quot;
        negate_class = &lt;value optimized out&gt;
        should_flip_negation = 0
        class_lastchar = &lt;value optimized out&gt;
        refsign = &lt;value optimized out&gt;
        skipbytes = &lt;value optimized out&gt;
        terminator = &lt;value optimized out&gt;
        repeat_max = &lt;value optimized out&gt;
        greedy_non_default = 69219624
        save_hwm = &lt;value optimized out&gt;
        repeat_type = &lt;value optimized out&gt;
        code = 0x1 &lt;Address 0x1 out of bounds&gt;
        tempcode = 0x1c001d0040000a &lt;Address 0x1c001d0040000a out of bounds&gt;
        inescq = &lt;value optimized out&gt;
        ptr = 0x38004000000000 &lt;Address 0x38004000000000 out of bounds&gt;
        tempptr = &lt;value optimized out&gt;
        classbits = &quot;\001&quot;, &apos;\000&apos; &lt;repeats 15 times&gt;, &quot;\177ELF\002\001\001\000\000\000\000\000\000\000\000&quot;
        after_manual_callout = &lt;value optimized out&gt;
        c = &lt;value optimized out&gt;
        op_type = &lt;value optimized out&gt;
        length_prevgroup = 0
        utf8_char = &quot;\020\065 \004\000&quot;
        bravalue = -1639243796
        groupsetfirstbyte = 2105977
        class_utf8 = 69219624
        req_caseopt = 32767
        utf8 = 0
        class_utf8data = &lt;value optimized out&gt;
        reqvary = 0
        tempreqvary = 69219624
#2  compile_regex (options=&lt;value optimized out&gt;, oldims=&lt;value optimized out&gt;, codeptr=&lt;value optimized out&gt;, ptrptr=&lt;value optimized out&gt;, errorcodeptr=&lt;value optimized out&gt;, lookbehind=&lt;value optimized out&gt;, reset_bracount=149090296, skipbytes=&lt;value optimized out&gt;, firstbyteptr=0x0, reqbyteptr=0x0, bcptr=0x0, cd=0x0, lengthptr=0x0) at pcre_compile.c:5401
        ptr = &lt;value optimized out&gt;
        code = 0x7fff9e4b1fe0 &quot;&quot;
        last_branch = &lt;value optimized out&gt;
        reverse_count = 0x0
        firstbyte = 0
        reqbyte = 0
        branchreqbyte = &lt;value optimized out&gt;
        length = 0
        max_bracount = 32767
        bc = {outer = 0x1003e0002, current = 0x434a20 &quot;1\355I\211\321^H\211\342H\203\344\360PTI\307\300\200\225J&quot;}
#3  0x00007f3808e2efe8 in guard variable for WebCore::FontPlatformDataCacheKeyTraits::emptyValue()::key () from /usr/lib64/libwebkitgtk-1.0.so.0
No symbol table info available.
#4  0x00007f3808e2eff8 in WebCore::FontPlatformDataCacheKeyTraits::emptyValue()::key () from /usr/lib64/libwebkitgtk-1.0.so.0
No symbol table info available.
#5  &lt;signal handler called&gt;
No symbol table info available.
#6  cairo_scaled_font_destroy (scaled_font=0xffffffffffffffff) at cairo-scaled-font.c:1221
        lru = &lt;value optimized out&gt;
        font_map = &lt;value optimized out&gt;
        __PRETTY_FUNCTION__ = &quot;cairo_scaled_font_destroy&quot;
#7  0x00007f380820f7f5 in operator= (this=0x7f3761ee2230, other=...) at ./JavaScriptCore/wtf/PlatformRefPtr.h:114
        optr = 0x3bba300
        ptr = 0xffffffffffffffff
#8  WebCore::FontPlatformData::operator= (this=0x7f3761ee2230, other=...) at WebCore/platform/graphics/cairo/FontPlatformDataFreeType.cpp:169
No locals.
#9  0x00007f3807f33161 in translate (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashMap.h:124
No locals.
#10 add&lt;WebCore::FontPlatformData, std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt;, WTF::HashMapTranslator&lt;std::pair&lt;WebCore::FontPlatformData, std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt; &gt;, WTF::PairHashTraits&lt;WebCore::FontDataCacheKeyTraits, WTF::HashTraits&lt;std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt; &gt; &gt;, WebCore::FontDataCacheKeyHash&gt; &gt; (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashTable.h:691
        k = 0
        i = &lt;value optimized out&gt;
        sizeMask = 511
        h = &lt;value optimized out&gt;
#11 inlineAdd (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashMap.h:241
No locals.
#12 WTF::HashMap&lt;WebCore::FontPlatformData, std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt;, WebCore::FontDataCacheKeyHash, WebCore::FontDataCacheKeyTraits, WTF::HashTraits&lt;std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt; &gt; &gt;::set (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashMap.h:248
        result = {first = {m_impl = {m_iterator = {m_position = 0xb97d5b1be, m_endPosition = 0x6}}}, second = 160}
#13 0x00007f3807f2fcd5 in WebCore::FontCache::getCachedFontData (this=&lt;value optimized out&gt;, platformData=0x7f37612c6600) at WebCore/platform/graphics/FontCache.cpp:282
        newValue = {first = 0x7f375faa7000, second = 1}
#14 0x00007f3807bc42b2 in WebCore::fontDataForGenericFamily (document=&lt;value optimized out&gt;, fontDescription=..., familyName=&lt;value optimized out&gt;) at WebCore/css/CSSFontSelector.cpp:393
        settings = 0x7f375ff3b300
        genericFamily = {m_string = {m_impl = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, m_ptr = 0x7f37ed350510}}}
#15 0x00007f3807bc5342 in WebCore::CSSFontSelector::getFontData (this=0x7f37e656fea0, fontDescription=&lt;value optimized out&gt;, familyName=&lt;value optimized out&gt;) at WebCore/css/CSSFontSelector.cpp:466
        family = {m_impl = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, m_ptr = 0x0}}
        familyFontFaces = &lt;value optimized out&gt;
        segmentedFontFaceCache = &lt;value optimized out&gt;
        traitsMask = &lt;value optimized out&gt;
        face = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, m_ptr = 0x0}
#16 0x00007f3807f31ea5 in WebCore::FontCache::getFontData (this=0x7f37ed2c4048, font=..., familyIndex=@0x7f37e6b89e60, fontSelector=0x7f37e656fea0) at WebCore/platform/graphics/FontCache.cpp:384
        data = &lt;value optimized out&gt;
        result = &lt;value optimized out&gt;
        startIndex = 0
        startFamily = 0x7f37615106f0
        currFamily = 0x7f37615106f0
#17 0x00007f3807f35d8a in WebCore::FontFallbackList::fontDataAt (this=0x7f37e6b89e00, font=&lt;value optimized out&gt;, realizedFontIndex=&lt;value optimized out&gt;) at WebCore/platform/graphics/FontFallbackList.cpp:105
No locals.
#18 0x00007f3807f35ed8 in primaryFontData (this=0xffffffffffffffff, font=0x7f37612c6600) at WebCore/platform/graphics/FontFallbackList.h:66
No locals.
#19 WebCore::FontFallbackList::determinePitch (this=0xffffffffffffffff, font=0x7f37612c6600) at WebCore/platform/graphics/FontFallbackList.cpp:76
        fontData = &lt;value optimized out&gt;
#20 0x00007f380806ccf5 in isFixedPitch (this=0x7f3763a10a58, leadWidth=&lt;value optimized out&gt;, fallbackFonts=&lt;value optimized out&gt;, glyphOverflow=&lt;value optimized out&gt;) at ./WebCore/platform/graphics/FontFallbackList.h:47
No locals.
#21 isFixedPitch (this=0x7f3763a10a58, leadWidth=&lt;value optimized out&gt;, fallbackFonts=&lt;value optimized out&gt;, glyphOverflow=&lt;value optimized out&gt;) at ./WebCore/platform/graphics/Font.h:251
No locals.
#22 widthFromCache (this=0x7f3763a10a58, leadWidth=&lt;value optimized out&gt;, fallbackFonts=&lt;value optimized out&gt;, glyphOverflow=&lt;value optimized out&gt;) at WebCore/rendering/RenderText.cpp:540
No locals.
#23 WebCore::RenderText::calcPrefWidths (this=0x7f3763a10a58, leadWidth=&lt;value optimized out&gt;, fallbackFonts=&lt;value optimized out&gt;, glyphOverflow=&lt;value optimized out&gt;) at WebCore/rendering/RenderText.cpp:793
        w = &lt;value optimized out&gt;
        isSpace = &lt;value optimized out&gt;
        isCollapsibleWhiteSpace = &lt;value optimized out&gt;
        c = 32
        wordLen = 8
        isNewline = false
        hasBreak = false
        betweenWords = true
        j = 8
        i = 0
        currMaxWidth = 0
        wordSpacing = 0
        len = &lt;value optimized out&gt;
        needsWordSpacing = false
        ignoringSpaces = &lt;value optimized out&gt;
        f = @0x7f37615106f0
        firstWord = true
        nextBreakable = 8
        firstGlyphLeftOverflow = -1
        lastWordBoundary = &lt;value optimized out&gt;
        breakAll = false
        txt = 0x7f3763393920
        isSpace = false
        firstLine = true
        breakNBSP = &lt;value optimized out&gt;
#24 0x00007f380806de9d in WebCore::RenderText::calcPrefWidths (this=0xffffffffffffffff, leadWidth=1630299648) at WebCore/rendering/RenderText.cpp:687
        fallbackFonts = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, m_impl = {static m_minTableSize = &lt;optimized out&gt;, static m_maxLoad = &lt;optimized out&gt;, static m_minLoad = &lt;optimized out&gt;, m_table = 0x0, m_tableSize = 0, m_tableSizeMask = 0, m_keyCount = 0, m_deletedCount = 0}}
        glyphOverflow = {left = 0, right = 0, top = 0, bottom = 0}
#25 0x00007f380806c1da in WebCore::RenderText::trimmedPrefWidths (this=0x7f3763a10a58, leadWidth=&lt;value optimized out&gt;, beginMinW=@0x7fff9e4b2edc, beginWS=&lt;value optimized out&gt;, endMinW=&lt;value optimized out&gt;, endWS=&lt;value optimized out&gt;, hasBreakableChar=@0x7fff9e4b2eee, hasBreak=@0x7fff9e4b2eed, beginMaxW=@0x7fff9e4b2ed4, endMaxW=@0x7fff9e4b2ed0, minW=@0x7fff9e4b2ee4, maxW=@0x7fff9e4b2ee0, stripFrontSpaces=@0x7fff9e4b2eef) at WebCore/rendering/RenderText.cpp:585
        collapseWhiteSpace = &lt;value optimized out&gt;
        len = &lt;value optimized out&gt;
        text = &lt;value optimized out&gt;
#26 0x00007f3807fc5b9a in WebCore::RenderBlock::calcInlinePrefWidths (this=0x7f3763a10820) at WebCore/rendering/RenderBlock.cpp:4924
        hasBreakableChar = false
        beginWS = 55
        beginMax = 0
        endMax = 0
        hasBreak = 127
        beginMin = 0
        endMin = 1008
        endWS = 161
        ti = &lt;value optimized out&gt;
        cstyle = &lt;value optimized out&gt;
        childMin = 0
        childMax = 0
        child = 0x7f3763a10a58
        trailingSpaceChild = 0x0
        allowImagesToBreak = true
        autoWrap = true
        inlineMax = 0
        addedTextIndent = false
        prevFloat = 0x0
        inlineMin = 0
        cw = 1008
        stripFrontSpaces = true
        oldAutoWrap = true
        childIterator = {parent = 0x7f3763a10820, current = 0x7f3763a10a58, endOfInline = false}
#27 0x00007f3807fc6058 in WebCore::RenderBlock::calcPrefWidths (this=0x7f3763a10820) at WebCore/rendering/RenderBlock.cpp:4606
        toAdd = &lt;value optimized out&gt;
#28 0x00007f3808054bf7 in WebCore::RenderTableCell::calcPrefWidths (this=0x7f3763a10820) at WebCore/rendering/RenderTableCell.cpp:132
No locals.
#29 0x00007f3807f9d754 in WebCore::AutoTableLayout::recalcColumn (this=&lt;value optimized out&gt;, effCol=&lt;value optimized out&gt;) at WebCore/rendering/AutoTableLayout.cpp:83
        w = &lt;value optimized out&gt;
        current = {cells = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, m_size = 1, m_buffer = {&lt;WTF::VectorBufferBase&lt;WebCore::RenderTableCell*&gt;&gt; = {&lt;WTFNoncopyable::Noncopyable&gt; = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, &lt;No data fields&gt;}, m_buffer = 0x7fff9e4b2fd8, m_capacity = 1}, static m_inlineBufferSize = 8, m_inlineBuffer = {buffer = &quot; \b\241c7\177\000&quot;}}}, inColSpan = false}
        cell = 0x7f3763a10820
        cellHasContent = &lt;value optimized out&gt;
        i = 0
        numRows = 1
        l = @0x7f375fe28c58
        child = 0x7f3763a108f8
        fixedContributor = 0x0
        maxContributor = 0x0
#30 0x00007f3807f9de4e in WebCore::AutoTableLayout::fullRecalc (this=0x7f375fe28c30) at WebCore/rendering/AutoTableLayout.cpp:206
        i = 1
        nEffCols = 1
        child = &lt;value optimized out&gt;
        cCol = 0
#31 0x00007f3807f9e9b2 in WebCore::AutoTableLayout::calcPrefWidths (this=0xffffffffffffffff, minWidth=@0x7f37612c6600, maxWidth=@0xba706d9d) at WebCore/rendering/AutoTableLayout.cpp:244
        spanMaxWidth = &lt;value optimized out&gt;
        maxPercent = &lt;value optimized out&gt;
        maxNonPercent = &lt;value optimized out&gt;
        scaleColumns = true
        remainingPercent = &lt;value optimized out&gt;
        bs = &lt;value optimized out&gt;
#32 0x00007f38080595bf in WebCore::RenderTable::calcPrefWidths (this=0x7f3763a106f0) at WebCore/rendering/RenderTable.cpp:543
No locals.
#33 0x00007f3807fd99c3 in WebCore::RenderBox::minPrefWidth (this=0x7f3763a106f0) at WebCore/rendering/RenderBox.cpp:539
No locals.
#34 0x00007f38080572ef in WebCore::RenderTable::calcWidth (this=0x7f3763a106f0) at WebCore/rendering/RenderTable.cpp:209
        cb = &lt;value optimized out&gt;
        availableWidth = 1008
#35 0x00007f3808059adf in WebCore::RenderTable::layout (this=0x7f3763a106f0) at WebCore/rendering/RenderTable.cpp:255
        th = &lt;value optimized out&gt;
        section = &lt;value optimized out&gt;
        calculatedHeight = 1
        bpBottom = 86843095
        rightBorderOverflow = &lt;value optimized out&gt;
        leftBorderOverflow = &lt;value optimized out&gt;
        bottomBorderOverflow = &lt;value optimized out&gt;
        didFullRepaint = &lt;value optimized out&gt;
        collapsing = &lt;value optimized out&gt;
        sectionMoved = &lt;value optimized out&gt;
        movedSectionTop = &lt;value optimized out&gt;
        bpTop = &lt;value optimized out&gt;
        bl = &lt;value optimized out&gt;
        topBorderOverflow = &lt;value optimized out&gt;
        repainter = {m_object = @0x7f3763a106f0, m_repaintContainer = 0x0, m_oldBounds = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}, m_oldOutlineBox = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}, m_checkForRepaint = false}
        oldWidth = 0
        h = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, m_value = -1639238848}
#36 0x00007f3807fc7116 in WebCore::RenderBlock::layoutBlockChild (this=0x7f3761d49538, child=0x7f3763a106f0, marginInfo=..., previousFloatBottom=@0x7fff9e4b334c, maxFloatBottom=&lt;value optimized out&gt;) at WebCore/rendering/RenderBlock.cpp:1853
        oldRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}
        childRenderBlock = 0x7f3763a106f0
        paginated = false
        oldTopPosMargin = 8
        oldTopNegMargin = 0
        yPosEstimate = 96
        markDescendantsWithFloats = &lt;value optimized out&gt;
        yBeforeClear = 0
        yAfterClear = &lt;value optimized out&gt;
        childHadLayout = false
        childNeededLayout = true
        atTopOfBlock = &lt;value optimized out&gt;
#37 0x00007f3807fc8e1e in WebCore::RenderBlock::layoutBlockChildren (this=0x7f3761d49538, relayoutChildren=&lt;value optimized out&gt;, maxFloatBottom=@0x7fff9e4b3454) at WebCore/rendering/RenderBlock.cpp:1792
        top = 0
        marginInfo = {m_canCollapseWithChildren = true, m_canCollapseTopWithChildren = true, m_canCollapseBottomWithChildren = true, m_quirkContainer = true, m_atTopOfBlock = false, m_atBottomOfBlock = false, m_topQuirk = false, m_bottomQuirk = false, m_determinedTopQuirk = false, m_posMargin = 1, m_negMargin = 0}
        bottom = 0
        legend = 0x0
        previousFloatBottom = 0
        next = 0x7f3763a106f0
#38 0x00007f3807fc9674 in WebCore::RenderBlock::layoutBlock (this=0x7f3761d49538, relayoutChildren=true, pageHeight=0) at WebCore/rendering/RenderBlock.cpp:1206
        oldWidth = &lt;value optimized out&gt;
        previousHeight = 0
        hasSpecifiedPageHeight = &lt;value optimized out&gt;
        colInfo = 0x0
        repaintTop = 0
        statePusher = {&lt;WTFNoncopyable::Noncopyable&gt; = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, &lt;No data fields&gt;}, m_view = 0x7f3761d49120, m_disabled = false, m_didStart = true, m_didEnd = false, m_didCreateLayoutState = false}
        isCell = &lt;value optimized out&gt;
        repaintBottom = 0
        maxFloatBottom = 0
        oldHeight = &lt;value optimized out&gt;
        didFullRepaint = &lt;value optimized out&gt;
        repainter = {m_object = @0x7f3761d49538, m_repaintContainer = 0x0, m_oldBounds = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}, m_oldOutlineBox = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}, m_checkForRepaint = false}
        oldColumnWidth = &lt;value optimized out&gt;
        toAdd = &lt;value optimized out&gt;
#39 0x00007f3807fb502d in WebCore::RenderBlock::layout (this=0x7f3761d49538) at WebCore/rendering/RenderBlock.cpp:1103
No locals.
#40 0x00007f3807fc7116 in WebCore::RenderBlock::layoutBlockChild (this=0x7f3761d49368, child=0x7f3761d49538, marginInfo=..., previousFloatBottom=@0x7fff9e4b357c, maxFloatBottom=&lt;value optimized out&gt;) at WebCore/rendering/RenderBlock.cpp:1853
        oldRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}
        childRenderBlock = 0x7f3761d49538
        paginated = false
        oldTopPosMargin = 0
        oldTopNegMargin = 0
        yPosEstimate = 8
        markDescendantsWithFloats = &lt;value optimized out&gt;
        yBeforeClear = 32568
        yAfterClear = &lt;value optimized out&gt;
        childHadLayout = false
        childNeededLayout = false
        atTopOfBlock = &lt;value optimized out&gt;
#41 0x00007f3807fc8e1e in WebCore::RenderBlock::layoutBlockChildren (this=0x7f3761d49368, relayoutChildren=&lt;value optimized out&gt;, maxFloatBottom=@0x7fff9e4b3684) at WebCore/rendering/RenderBlock.cpp:1792
        top = 0
        marginInfo = {m_canCollapseWithChildren = false, m_canCollapseTopWithChildren = false, m_canCollapseBottomWithChildren = false, m_quirkContainer = false, m_atTopOfBlock = true, m_atBottomOfBlock = false, m_topQuirk = false, m_bottomQuirk = false, m_determinedTopQuirk = false, m_posMargin = 0, m_negMargin = 0}
        bottom = 0
        legend = 0x0
        previousFloatBottom = 0
        next = 0x7f3761d49538
#42 0x00007f3807fc9674 in WebCore::RenderBlock::layoutBlock (this=0x7f3761d49368, relayoutChildren=true, pageHeight=0) at WebCore/rendering/RenderBlock.cpp:1206
        oldWidth = &lt;value optimized out&gt;
        previousHeight = 0
        hasSpecifiedPageHeight = &lt;value optimized out&gt;
        colInfo = 0x0
        repaintTop = 0
        statePusher = {&lt;WTFNoncopyable::Noncopyable&gt; = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, &lt;No data fields&gt;}, m_view = 0x7f3761d49120, m_disabled = false, m_didStart = true, m_didEnd = false, m_didCreateLayoutState = false}
        isCell = &lt;value optimized out&gt;
        repaintBottom = 0
        maxFloatBottom = 0
        oldHeight = &lt;value optimized out&gt;
        didFullRepaint = &lt;value optimized out&gt;
        repainter = {m_object = @0x7f3761d49368, m_repaintContainer = 0x0, m_oldBounds = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}, m_oldOutlineBox = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}, m_checkForRepaint = false}
        oldColumnWidth = &lt;value optimized out&gt;
        toAdd = &lt;value optimized out&gt;
#43 0x00007f3807fb502d in WebCore::RenderBlock::layout (this=0x7f3761d49368) at WebCore/rendering/RenderBlock.cpp:1103
No locals.
#44 0x00007f3807fc7116 in WebCore::RenderBlock::layoutBlockChild (this=0x7f3761d49120, child=0x7f3761d49368, marginInfo=..., previousFloatBottom=@0x7fff9e4b37ac, maxFloatBottom=&lt;value optimized out&gt;) at WebCore/rendering/RenderBlock.cpp:1853
        oldRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}
        childRenderBlock = 0x7f3761d49368
        paginated = false
        oldTopPosMargin = 0
        oldTopNegMargin = 0
        yPosEstimate = 0
        markDescendantsWithFloats = &lt;value optimized out&gt;
        yBeforeClear = 0
        yAfterClear = &lt;value optimized out&gt;
        childHadLayout = false
        childNeededLayout = false
        atTopOfBlock = &lt;value optimized out&gt;
#45 0x00007f3807fc8e1e in WebCore::RenderBlock::layoutBlockChildren (this=0x7f3761d49120, relayoutChildren=&lt;value optimized out&gt;, maxFloatBottom=@0x7fff9e4b38b4) at WebCore/rendering/RenderBlock.cpp:1792
        top = 0
        marginInfo = {m_canCollapseWithChildren = false, m_canCollapseTopWithChildren = false, m_canCollapseBottomWithChildren = false, m_quirkContainer = false, m_atTopOfBlock = true, m_atBottomOfBlock = false, m_topQuirk = false, m_bottomQuirk = false, m_determinedTopQuirk = false, m_posMargin = 0, m_negMargin = 0}
        bottom = 0
        legend = 0x0
        previousFloatBottom = 0
        next = 0x7f3761d49368
#46 0x00007f3807fc9674 in WebCore::RenderBlock::layoutBlock (this=0x7f3761d49120, relayoutChildren=true, pageHeight=0) at WebCore/rendering/RenderBlock.cpp:1206
        oldWidth = &lt;value optimized out&gt;
        previousHeight = 0
        hasSpecifiedPageHeight = &lt;value optimized out&gt;
        colInfo = 0x0
        repaintTop = 0
        statePusher = {&lt;WTFNoncopyable::Noncopyable&gt; = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, &lt;No data fields&gt;}, m_view = 0x7f3761d49120, m_disabled = false, m_didStart = true, m_didEnd = false, m_didCreateLayoutState = false}
        isCell = &lt;value optimized out&gt;
        repaintBottom = 0
        maxFloatBottom = 0
        oldHeight = &lt;value optimized out&gt;
        didFullRepaint = &lt;value optimized out&gt;
        repainter = {m_object = @0x7f3761d49120, m_repaintContainer = 0x0, m_oldBounds = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}, m_oldOutlineBox = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}, m_checkForRepaint = false}
        oldColumnWidth = &lt;value optimized out&gt;
        toAdd = &lt;value optimized out&gt;
#47 0x00007f3807fb502d in WebCore::RenderBlock::layout (this=0x7f3761d49120) at WebCore/rendering/RenderBlock.cpp:1103
No locals.
#48 0x00007f3808077d4f in WebCore::RenderView::layout (this=0x7f3761d49120) at WebCore/rendering/RenderView.cpp:124
        state = {&lt;WTFNoncopyable::Noncopyable&gt; = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, &lt;No data fields&gt;}, m_clipped = false, m_clipRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}, m_paintOffset = {m_width = 0, m_height = 0}, m_layoutOffset = {m_width = 0, m_height = 0}, m_layoutDelta = {m_width = 0, m_height = -104}, m_pageHeight = 0, m_pageOffset = {m_width = 0, m_height = 0}, m_columnInfo = 0x0, m_next = 0x0}
#49 0x00007f3807ef903a in WebCore::FrameView::layout (this=0x7f376131e8c0, allowSubtree=&lt;value optimized out&gt;) at WebCore/page/FrameView.cpp:766
        root = 0x7f3761d49120
        hMode = WebCore::ScrollbarAuto
        vMode = WebCore::ScrollbarAuto
        layer = 0x7f3761d49258
        document = 0x7f3763bda000
        subtree = false
        disableLayoutState = false
        cachedOffset = {m_x = -315292304, m_y = 32567}
#50 0x00007f3807f836f6 in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0x7f37ed350570) at WebCore/platform/ThreadTimers.cpp:112
        interval = &lt;value optimized out&gt;
        fireTime = 1285756939.530076
        timeToQuit = 1285756939.580076
#51 0x00007f38081f47c2 in WebCore::timeout_cb () at WebCore/platform/gtk/SharedTimerGtk.cpp:49
No locals.
#52 0x00007f3804decbab in IA__g_mapped_file_new (filename=&lt;value optimized out&gt;, writable=&lt;value optimized out&gt;, error=0x1) at gmappedfile.c:227
        save_errno = 32568
        file = &lt;value optimized out&gt;
        fd = 11965264
        st = {st_dev = 11788752, st_ino = 67738592, st_nlink = 0, st_mode = 81707985, st_uid = 32568, st_gid = 120, __pad0 = 0, st_rdev = 11553856, st_size = 139878576606096, st_blksize = 67760832, st_blocks = 140735849118448, st_atim = {tv_sec = 11788760, tv_nsec = 140735849118472}, st_mtim = {tv_sec = 140735849118464, tv_nsec = 67738592}, st_ctim = {tv_sec = 0, tv_nsec = 139878631163824}, __unused = {0, 0, 11788752}}
        __PRETTY_FUNCTION__ = &quot;\377\377\377L\215%\202\224\004\000\211D$\ff\220\017\266\302\200\372r&quot;
#53 0x00007f3800000000 in ?? ()
No symbol table info available.
#54 0x00007f38050aa748 in ?? ()
No symbol table info available.
#55 0x00007f38050aa780 in ?? ()
No symbol table info available.
#56 0x0000000100000001 in ?? ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291070</commentid>
    <comment_count>1</comment_count>
      <attachid>70101</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-07 09:55:04 -0700</bug_when>
    <thetext>Created attachment 70101
Potential crash fix

Looks like some of the HashTraits machinery is missing for PlatformRefPtr. Do you think you can try this patch and see if it improves things?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292270</commentid>
    <comment_count>2</comment_count>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2010-10-10 02:55:39 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Looks like some of the HashTraits machinery is missing for PlatformRefPtr. Do you think you can try this patch and see if it improves things?

It seems that something is still missing, as it crashed with the patch:

#7  cairo_scaled_font_destroy (scaled_font=0xffffffffffffffff) at cairo-scaled-font.c:1221
#8  0x00007f689a7377f5 in operator= (this=0x7f67effa9bc0, other=...) at ./JavaScriptCore/wtf/PlatformRefPtr.h:115
#9  WebCore::FontPlatformData::operator= (this=0x7f67effa9bc0, other=...) at WebCore/platform/graphics/cairo/FontPlatformDataFreeType.cpp:169
#10 0x00007f689a45b161 in translate (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashMap.h:124
#11 add&lt;WebCore::FontPlatformData, std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt;, WTF::HashMapTranslator&lt;std::pair&lt;WebCore::FontPlatformData, std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt; &gt;, WTF::PairHashTraits&lt;WebCore::FontDataCacheKeyTraits, WTF::HashTraits&lt;std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt; &gt; &gt;, WebCore::FontDataCacheKeyHash&gt; &gt; (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashTable.h:691
#12 inlineAdd (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashMap.h:241
#13 WTF::HashMap&lt;WebCore::FontPlatformData, std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt;, WebCore::FontDataCacheKeyHash, WebCore::FontDataCacheKeyTraits, WTF::HashTraits&lt;std::pair&lt;WebCore::SimpleFontData*, unsigned int&gt; &gt; &gt;::set (this=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;, mapped=&lt;value optimized out&gt;) at ./JavaScriptCore/wtf/HashMap.h:248
#14 0x00007f689a457cd5 in WebCore::FontCache::getCachedFontData (this=&lt;value optimized out&gt;, platformData=0x7f67f5443680) at WebCore/platform/graphics/FontCache.cpp:282
#15 0x00007f689a459eba in WebCore::FontCache::getFontData (this=0x7f689cdec048, font=..., familyIndex=@0x7f67ee92fd80, fontSelector=0x7f67e9c6b840) at WebCore/platform/graphics/FontCache.cpp:388
#16 0x00007f689a45dd8a in WebCore::FontFallbackList::fontDataAt (this=0x7f67ee92fd20, font=&lt;value optimized out&gt;, realizedFontIndex=&lt;value optimized out&gt;) at WebCore/platform/graphics/FontFallbackList.cpp:105
#17 0x00007f689a45ded8 in primaryFontData (this=0xffffffffffffffff, font=0x7f67f5443680) at WebCore/platform/graphics/FontFallbackList.h:66
#18 WebCore::FontFallbackList::determinePitch (this=0xffffffffffffffff, font=0x7f67f5443680) at WebCore/platform/graphics/FontFallbackList.cpp:76
#19 0x00007f689a4fba55 in isFixedPitch (this=&lt;value optimized out&gt;, resolver=&lt;value optimized out&gt;, firstLine=&lt;value optimized out&gt;, isLineEmpty=&lt;value optimized out&gt;, previousLineBrokeCleanly=&lt;value optimized out&gt;, hyphenated=@0x7fff6621b0c9, clear=0x7fff6621b0b4, lastFloatFromPreviousLine=0x0) at ./WebCore/platform/graphics/FontFallbackList.h:47
#20 isFixedPitch (this=&lt;value optimized out&gt;, resolver=&lt;value optimized out&gt;, firstLine=&lt;value optimized out&gt;, isLineEmpty=&lt;value optimized out&gt;, previousLineBrokeCleanly=&lt;value optimized out&gt;, hyphenated=@0x7fff6621b0c9, clear=0x7fff6621b0b4, lastFloatFromPreviousLine=0x0) at ./WebCore/platform/graphics/Font.h:251
#21 WebCore::RenderBlock::findNextLineBreak (this=&lt;value optimized out&gt;, resolver=&lt;value optimized out&gt;, firstLine=&lt;value optimized out&gt;, isLineEmpty=&lt;value optimized out&gt;, previousLineBrokeCleanly=&lt;value optimized out&gt;, hyphenated=@0x7fff6621b0c9, clear=0x7fff6621b0b4, lastFloatFromPreviousLine=0x0) at WebCore/rendering/RenderBlockLineLayout.cpp:1639
#22 0x00007f689a4fce5f in WebCore::RenderBlock::layoutInlineChildren (this=0x7f67f127f878, relayoutChildren=&lt;value optimized out&gt;, repaintTop=@0x7fff6621b1dc, repaintBottom=@0x7fff6621b1d8) at WebCore/rendering/RenderBlockLineLayout.cpp:684</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295247</commentid>
    <comment_count>3</comment_count>
    <who name="">fabien.coeurjoly</who>
    <bug_when>2010-10-17 11:42:42 -0700</bug_when>
    <thetext>I also have users experiencing the same (very random) issue in WebKit for MorphOS on PowerPC architecture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295780</commentid>
    <comment_count>4</comment_count>
      <attachid>71089</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-18 15:04:05 -0700</bug_when>
    <thetext>Created attachment 71089
Potential crash fix 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296225</commentid>
    <comment_count>5</comment_count>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2010-10-19 09:09:47 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=71089) [details]
&gt; Potential crash fix 2

It seems that this change fixes the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297448</commentid>
    <comment_count>6</comment_count>
      <attachid>71445</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-21 08:51:14 -0700</bug_when>
    <thetext>Created attachment 71445
Patch for this issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298289</commentid>
    <comment_count>7</comment_count>
      <attachid>71445</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-10-22 17:59:22 -0700</bug_when>
    <thetext>Comment on attachment 71445
Patch for this issue

Curious, why does nobody else seem to need to do this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298293</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-22 18:19:48 -0700</bug_when>
    <thetext>There&apos;s a similar check that happens in WebCore/platform/graphics/win/RefCountedGDIHandle.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298296</commentid>
    <comment_count>9</comment_count>
      <attachid>71445</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-10-22 18:28:22 -0700</bug_when>
    <thetext>Comment on attachment 71445
Patch for this issue

So, after talking on jabber we both find it strange that we have to take care of this manually, and it might just be a symptom for some other bug. Hopefully PlatformRefPtr is going away entirely soon anyway, so let&apos;s just go ahead and commit it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298395</commentid>
    <comment_count>10</comment_count>
      <attachid>71445</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-23 08:08:58 -0700</bug_when>
    <thetext>Comment on attachment 71445
Patch for this issue

Clearing flags on attachment: 71445

Committed r70390: &lt;http://trac.webkit.org/changeset/70390&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298397</commentid>
    <comment_count>11</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-23 08:09:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298991</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-25 11:34:50 -0700</bug_when>
    <thetext>I think this is the wrong fix. The right way to do this is with hash traits, I think. This is not how RefPtr handles hash table deleted values. It&apos;s not a good idea to handle this differently for this RefPtr variant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299007</commentid>
    <comment_count>13</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-25 11:54:18 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; I think this is the wrong fix. The right way to do this is with hash traits, I think. This is not how RefPtr handles hash table deleted values. It&apos;s not a good idea to handle this differently for this RefPtr variant.

I did attempt the HashTraits approach at first, but this did not fix the issue (my first patch on this bug). I think the trouble is that the RefPtr isn&apos;t the type contained in the HashMap, it is the containing type FontPlatformData. This is handled as a one-off by the Windows port. See win/RefCountedGDIHandle.h. Perhaps in this case, it just makes sense to manage memory manually and deal with the -1 inside FontPlatformDataFreetype. I&apos;ll post a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299053</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-25 13:02:44 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; I did attempt the HashTraits approach at first, but this did not fix the issue (my first patch on this bug). I think the trouble is that the RefPtr isn&apos;t the type contained in the HashMap, it is the containing type FontPlatformData. This is handled as a one-off by the Windows port. See win/RefCountedGDIHandle.h. Perhaps in this case, it just makes sense to manage memory manually and deal with the -1 inside FontPlatformDataFreetype. I&apos;ll post a patch.

This might be solved by changing FontPlatformDataFreetype to have different hash traits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299058</commentid>
    <comment_count>15</comment_count>
      <attachid>71786</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-25 13:05:39 -0700</bug_when>
    <thetext>Created attachment 71786
WIP patch taking Darin&apos;s advice into account

Darin, I&apos;ve attached a patch for this issue which switches FontPlatformData.m_scaledFont to manual memory management and handles HashTableDeletedValue specifically. 

Some alternatives:
1. Create a RefCountedCairoPtr (similar to RefCountedGDIHandle on Windows), which essentially wraps the raw Cairo pointer in another layer of abstraction.
2. Handle -1 specifically in RefPtrCairo here: https://bugs.webkit.org/show_bug.cgi?id=48192

I hope my previous comment did not come off as too defensive. I appreciate your insight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299073</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-25 13:16:35 -0700</bug_when>
    <thetext>Another option is to use a different value for the deleted value of FontPlatformData. There’s no reason it has to be the magic value -1. It could be some other kind of distinctive value. As with the empty value it simple needs to be a value that does not need to be used as a hash table key.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70101</attachid>
            <date>2010-10-07 09:55:04 -0700</date>
            <delta_ts>2010-10-18 15:04:02 -0700</delta_ts>
            <desc>Potential crash fix</desc>
            <filename>potential-crash-fix.diff</filename>
            <type>text/plain</type>
            <size>1685</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oIGIvSmF2YVNj
cmlwdENvcmUvd3RmL1BsYXRmb3JtUmVmUHRyLmgKaW5kZXggOGFjMTZjYi4uNTNkZDBiNyAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtUmVmUHRyLmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvd3RmL1BsYXRmb3JtUmVmUHRyLmgKQEAgLTIzLDggKzIzLDkgQEAKICNpZm5kZWYg
UGxhdGZvcm1SZWZQdHJfaAogI2RlZmluZSBQbGF0Zm9ybVJlZlB0cl9oCiAKKyNpbmNsdWRlICJI
YXNoVHJhaXRzLmgiCisjaW5jbHVkZSAiVHlwZVRyYWl0cy5oIgogI2luY2x1ZGUgIkFsd2F5c0lu
bGluZS5oIgotI2luY2x1ZGUgIlJlZlB0ci5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KIAogbmFt
ZXNwYWNlIFdURiB7CkBAIC0xNjYsNiArMTY3LDIzIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0
eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFQqIGEsIGNvbnN0IFBsYXRmb3JtUmVm
CiAgICAgcmV0dXJuIGEgIT0gYi5nZXQoKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgUD4gc3Ry
dWN0IEhhc2hUcmFpdHM8UGxhdGZvcm1SZWZQdHI8UD4gPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFBs
YXRmb3JtUmVmUHRyPFA+ID4geworICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1pl
cm8gPSB0cnVlOworICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShQbGF0Zm9y
bVJlZlB0cjxQPiYgc2xvdCkgeyBuZXcgKCZzbG90KSBQbGF0Zm9ybVJlZlB0cjxQPihIYXNoVGFi
bGVEZWxldGVkVmFsdWUpOyB9CisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3Qg
UGxhdGZvcm1SZWZQdHI8UD4mIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA9PSByZWludGVycHJldF9j
YXN0PFAqPigtMSk7IH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVjdCBQdHJIYXNo
PFBsYXRmb3JtUmVmUHRyPFA+ID4gOiBQdHJIYXNoPFAqPiB7CisgICAgdXNpbmcgUHRySGFzaDxQ
Kj46Omhhc2g7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgUGxhdGZvcm1SZWZQdHI8
UD4mIGtleSkgeyByZXR1cm4gaGFzaChrZXkuZ2V0KCkpOyB9CisgICAgdXNpbmcgUHRySGFzaDxQ
Kj46OmVxdWFsOworICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFBsYXRmb3JtUmVmUHRyPFA+
JiBhLCBjb25zdCBQbGF0Zm9ybVJlZlB0cjxQPiYgYikgeyByZXR1cm4gYSA9PSBiOyB9CisgICAg
c3RhdGljIGJvb2wgZXF1YWwoUCogYSwgY29uc3QgUGxhdGZvcm1SZWZQdHI8UD4mIGIpIHsgcmV0
dXJuIGEgPT0gYjsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFBsYXRmb3JtUmVmUHRy
PFA+JiBhLCBQKiBiKSB7IHJldHVybiBhID09IGI7IH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFA+IHN0cnVjdCBEZWZhdWx0SGFzaDxQbGF0Zm9ybVJlZlB0cjxQPiA+IHsgdHlwZWRlZiBQdHJI
YXNoPFBsYXRmb3JtUmVmUHRyPFA+ID4gSGFzaDsgfTsKKwogdGVtcGxhdGUgPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+IGlubGluZSBQbGF0Zm9ybVJlZlB0cjxUPiBzdGF0aWNfcG9pbnRlcl9jYXN0
KGNvbnN0IFBsYXRmb3JtUmVmUHRyPFU+JiBwKQogewogICAgIHJldHVybiBQbGF0Zm9ybVJlZlB0
cjxUPihzdGF0aWNfY2FzdDxUKj4ocC5nZXQoKSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71089</attachid>
            <date>2010-10-18 15:04:05 -0700</date>
            <delta_ts>2010-10-21 08:51:11 -0700</delta_ts>
            <desc>Potential crash fix 2</desc>
            <filename>bug-46794-20101018150403.patch</filename>
            <type>text/plain</type>
            <size>1238</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oIGIvSmF2YVNj
cmlwdENvcmUvd3RmL1BsYXRmb3JtUmVmUHRyLmgKaW5kZXggOGFjMTZjYjFlMmVhYTA4OTYxMTcz
ZjAxOGQwZWFjYjI3MzVhZmRiMy4uZjk5ZWM5YmU5MmYxZTdkOWU4MDU3YzdkM2I4MmM3ZGI4YWQ4
YWIyOCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtUmVmUHRyLmgKKysr
IGIvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtUmVmUHRyLmgKQEAgLTYyLDcgKzYyLDggQEAg
cHVibGljOgogCiAgICAgflBsYXRmb3JtUmVmUHRyKCkKICAgICB7Ci0gICAgICAgIGlmIChUKiBw
dHIgPSBtX3B0cikKKyAgICAgICAgVCogcHRyID0gbV9wdHI7CisgICAgICAgIGlmIChwdHIgJiYg
cHRyICE9IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKQogICAgICAgICAgICAgZGVyZWZQbGF0Zm9y
bVB0cihwdHIpOwogICAgIH0KIApAQCAtNzAsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICBUKiBwdHIgPSBtX3B0cjsKICAgICAgICAgbV9wdHIgPSAwOwotICAgICAgICBpZiAocHRy
KQorICAgICAgICBpZiAocHRyICYmIHB0ciAhPSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKICAg
ICAgICAgICAgIGRlcmVmUGxhdGZvcm1QdHIocHRyKTsKICAgICB9CiAKQEAgLTExMCw3ICsxMTEs
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFBsYXRmb3JtUmVmUHRyPFQ+JiBQbGF0
Zm9ybVJlZlB0cjxUPjo6b3BlcmF0b3I9KGNvbgogICAgICAgICByZWZQbGF0Zm9ybVB0cihvcHRy
KTsKICAgICBUKiBwdHIgPSBtX3B0cjsKICAgICBtX3B0ciA9IG9wdHI7Ci0gICAgaWYgKHB0cikK
KyAgICBpZiAocHRyICYmIHB0ciAhPSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKICAgICAgICAg
ZGVyZWZQbGF0Zm9ybVB0cihwdHIpOwogICAgIHJldHVybiAqdGhpczsKIH0KQEAgLTEyMSw3ICsx
MjIsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFBsYXRmb3JtUmVmUHRyPFQ+JiBQ
bGF0Zm9ybVJlZlB0cjxUPjo6b3BlcmF0b3I9KFQqCiAgICAgaWYgKG9wdHIpCiAgICAgICAgIHJl
ZlBsYXRmb3JtUHRyKG9wdHIpOwogICAgIG1fcHRyID0gb3B0cjsKLSAgICBpZiAocHRyKQorICAg
IGlmIChwdHIgJiYgcHRyICE9IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKQogICAgICAgICBkZXJl
ZlBsYXRmb3JtUHRyKHB0cik7CiAgICAgcmV0dXJuICp0aGlzOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71445</attachid>
            <date>2010-10-21 08:51:14 -0700</date>
            <delta_ts>2010-10-25 13:05:39 -0700</delta_ts>
            <desc>Patch for this issue</desc>
            <filename>bug-46794-20101021085113.patch</filename>
            <type>text/plain</type>
            <size>2142</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAzMzI3NjFkODNjMjNkNDVmYjAzNTkxM2E4MzZiMjUyYTdkNGUzZTAyLi4w
YjNiOTllY2RlZWQzZWQ5OTI4MGRjNTU3ODY1MGVhMGJiMjFiNGQwIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTAtMTAtMjEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENyYXNoZXMgcmFuZG9tbHkgaW4gY2Fpcm9fc2NhbGVkX2ZvbnRfZGVzdHJveQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3OTQKKworICAgICAgICBN
YWtlIFBsYXRmb3JtUmVmUHRyIGF3YXJlIG9mIGhhc2hUYWJsZURlbGV0ZWRWYWx1ZS4gV2hlbiBQ
bGF0Zm9ybVJlZlB0cgorICAgICAgICBnb2VzIGF3YXkgdGhpcyBzaG91bGQgcHJvYmFibHkgYmUg
aGFuZGxlZCBpbiB0aGUgZnV0dXJlIHZpYSBzb21lIHNwZWNpYWwKKyAgICAgICAgaG9va3MgaW4g
UmVmQ291bnRlZCAob3IgaXRzIGNvbnRhaW5lZCB0eXBlKS4KKworICAgICAgICAqIHd0Zi9QbGF0
Zm9ybVJlZlB0ci5oOgorICAgICAgICAoV1RGOjpQbGF0Zm9ybVJlZlB0cjo6flBsYXRmb3JtUmVm
UHRyKToKKyAgICAgICAgKFdURjo6UGxhdGZvcm1SZWZQdHI6OmNsZWFyKToKKyAgICAgICAgKFdU
Rjo6OjpvcGVyYXRvcik6CisKIDIwMTAtMTAtMjEgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzAxNzQuCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm1SZWZQdHIuaCBiL0phdmFTY3JpcHRDb3Jl
L3d0Zi9QbGF0Zm9ybVJlZlB0ci5oCmluZGV4IDhhYzE2Y2IxZTJlYWEwODk2MTE3M2YwMThkMGVh
Y2IyNzM1YWZkYjMuLmY5OWVjOWJlOTJmMWU3ZDllODA1N2M3ZDNiODJjN2RiOGFkOGFiMjggMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oCkBAIC02Miw3ICs2Miw4IEBAIHB1YmxpYzoK
IAogICAgIH5QbGF0Zm9ybVJlZlB0cigpCiAgICAgewotICAgICAgICBpZiAoVCogcHRyID0gbV9w
dHIpCisgICAgICAgIFQqIHB0ciA9IG1fcHRyOworICAgICAgICBpZiAocHRyICYmIHB0ciAhPSBo
YXNoVGFibGVEZWxldGVkVmFsdWUoKSkKICAgICAgICAgICAgIGRlcmVmUGxhdGZvcm1QdHIocHRy
KTsKICAgICB9CiAKQEAgLTcwLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgVCog
cHRyID0gbV9wdHI7CiAgICAgICAgIG1fcHRyID0gMDsKLSAgICAgICAgaWYgKHB0cikKKyAgICAg
ICAgaWYgKHB0ciAmJiBwdHIgIT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCiAgICAgICAgICAg
ICBkZXJlZlBsYXRmb3JtUHRyKHB0cik7CiAgICAgfQogCkBAIC0xMTAsNyArMTExLDcgQEAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBQbGF0Zm9ybVJlZlB0cjxUPiYgUGxhdGZvcm1SZWZQ
dHI8VD46Om9wZXJhdG9yPShjb24KICAgICAgICAgcmVmUGxhdGZvcm1QdHIob3B0cik7CiAgICAg
VCogcHRyID0gbV9wdHI7CiAgICAgbV9wdHIgPSBvcHRyOwotICAgIGlmIChwdHIpCisgICAgaWYg
KHB0ciAmJiBwdHIgIT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCiAgICAgICAgIGRlcmVmUGxh
dGZvcm1QdHIocHRyKTsKICAgICByZXR1cm4gKnRoaXM7CiB9CkBAIC0xMjEsNyArMTIyLDcgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBQbGF0Zm9ybVJlZlB0cjxUPiYgUGxhdGZvcm1S
ZWZQdHI8VD46Om9wZXJhdG9yPShUKgogICAgIGlmIChvcHRyKQogICAgICAgICByZWZQbGF0Zm9y
bVB0cihvcHRyKTsKICAgICBtX3B0ciA9IG9wdHI7Ci0gICAgaWYgKHB0cikKKyAgICBpZiAocHRy
ICYmIHB0ciAhPSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKICAgICAgICAgZGVyZWZQbGF0Zm9y
bVB0cihwdHIpOwogICAgIHJldHVybiAqdGhpczsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71786</attachid>
            <date>2010-10-25 13:05:39 -0700</date>
            <delta_ts>2010-10-25 13:05:39 -0700</delta_ts>
            <desc>WIP patch taking Darin&apos;s advice into account</desc>
            <filename>hashtabledeltedvalue_correction.patch</filename>
            <type>text/plain</type>
            <size>11348</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oIGIvSmF2YVNj
cmlwdENvcmUvd3RmL1BsYXRmb3JtUmVmUHRyLmgKaW5kZXggZjk5ZWM5Yi4uOGFjMTZjYiAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtUmVmUHRyLmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvd3RmL1BsYXRmb3JtUmVmUHRyLmgKQEAgLTYyLDggKzYyLDcgQEAgcHVibGljOgog
CiAgICAgflBsYXRmb3JtUmVmUHRyKCkKICAgICB7Ci0gICAgICAgIFQqIHB0ciA9IG1fcHRyOwot
ICAgICAgICBpZiAocHRyICYmIHB0ciAhPSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICAg
ICAgaWYgKFQqIHB0ciA9IG1fcHRyKQogICAgICAgICAgICAgZGVyZWZQbGF0Zm9ybVB0cihwdHIp
OwogICAgIH0KIApAQCAtNzEsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBUKiBw
dHIgPSBtX3B0cjsKICAgICAgICAgbV9wdHIgPSAwOwotICAgICAgICBpZiAocHRyICYmIHB0ciAh
PSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICAgICAgaWYgKHB0cikKICAgICAgICAgICAg
IGRlcmVmUGxhdGZvcm1QdHIocHRyKTsKICAgICB9CiAKQEAgLTExMSw3ICsxMTAsNyBAQCB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFBsYXRmb3JtUmVmUHRyPFQ+JiBQbGF0Zm9ybVJlZlB0
cjxUPjo6b3BlcmF0b3I9KGNvbgogICAgICAgICByZWZQbGF0Zm9ybVB0cihvcHRyKTsKICAgICBU
KiBwdHIgPSBtX3B0cjsKICAgICBtX3B0ciA9IG9wdHI7Ci0gICAgaWYgKHB0ciAmJiBwdHIgIT0g
aGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisgICAgaWYgKHB0cikKICAgICAgICAgZGVyZWZQbGF0
Zm9ybVB0cihwdHIpOwogICAgIHJldHVybiAqdGhpczsKIH0KQEAgLTEyMiw3ICsxMjEsNyBAQCB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFBsYXRmb3JtUmVmUHRyPFQ+JiBQbGF0Zm9ybVJl
ZlB0cjxUPjo6b3BlcmF0b3I9KFQqCiAgICAgaWYgKG9wdHIpCiAgICAgICAgIHJlZlBsYXRmb3Jt
UHRyKG9wdHIpOwogICAgIG1fcHRyID0gb3B0cjsKLSAgICBpZiAocHRyICYmIHB0ciAhPSBoYXNo
VGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICBpZiAocHRyKQogICAgICAgICBkZXJlZlBsYXRmb3Jt
UHRyKHB0cik7CiAgICAgcmV0dXJuICp0aGlzOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmlu
ZGV4IGJhMzA3ZmEuLmViYmM1MGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKQEAgLTEyMCw2
ICsxMjAsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKEZjUGF0dGVybiog
cGF0dGVybiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiBmbwogICAgICwgbV9zeW50aGV0aWNCb2xk
KGZhbHNlKQogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKGZhbHNlKQogICAgICwgbV9maXhlZFdp
ZHRoKGZhbHNlKQorICAgICwgbV9zY2FsZWRGb250KDApCiB7CiAgICAgUGxhdGZvcm1SZWZQdHI8
Y2Fpcm9fZm9udF9mYWNlX3Q+IGZvbnRGYWNlID0gYWRvcHRQbGF0Zm9ybVJlZihjYWlyb19mdF9m
b250X2ZhY2VfY3JlYXRlX2Zvcl9wYXR0ZXJuKG1fcGF0dGVybi5nZXQoKSkpOwogICAgIGluaXRp
YWxpemVXaXRoRm9udEZhY2UoZm9udEZhY2UuZ2V0KCkpOwpAQCAtMTQyLDYgKzE0Myw3IEBAIEZv
bnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYykKICAgICAsIG1fc3ludGhldGljQm9sZChib2xkKQogICAgICwgbV9zeW50aGV0
aWNPYmxpcXVlKGl0YWxpYykKICAgICAsIG1fZml4ZWRXaWR0aChmYWxzZSkKKyAgICAsIG1fc2Nh
bGVkRm9udCgwKQogewogICAgIC8vIFdlIGNhbm5vdCBjcmVhdGUgYSBzY2FsZWQgZm9udCBoZXJl
LgogfQpAQCAtMTUxLDEzICsxNTMsMTQgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3Jt
RGF0YShjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UsIGZsb2F0IHNpemUsIGJvb2wKICAgICAs
IG1fc2l6ZShzaXplKQogICAgICwgbV9zeW50aGV0aWNCb2xkKGJvbGQpCiAgICAgLCBtX3N5bnRo
ZXRpY09ibGlxdWUoaXRhbGljKQorICAgICwgbV9zY2FsZWRGb250KDApCiB7CiAgICAgaW5pdGlh
bGl6ZVdpdGhGb250RmFjZShmb250RmFjZSk7CiAKLSAgICBGVF9GYWNlIGZvbnRDb25maWdGYWNl
ID0gY2Fpcm9fZnRfc2NhbGVkX2ZvbnRfbG9ja19mYWNlKG1fc2NhbGVkRm9udC5nZXQoKSk7Cisg
ICAgRlRfRmFjZSBmb250Q29uZmlnRmFjZSA9IGNhaXJvX2Z0X3NjYWxlZF9mb250X2xvY2tfZmFj
ZShtX3NjYWxlZEZvbnQpOwogICAgIGlmIChmb250Q29uZmlnRmFjZSkgewogICAgICAgICBtX2Zp
eGVkV2lkdGggPSBmb250Q29uZmlnRmFjZS0+ZmFjZV9mbGFncyAmIEZUX0ZBQ0VfRkxBR19GSVhF
RF9XSURUSDsKLSAgICAgICAgY2Fpcm9fZnRfc2NhbGVkX2ZvbnRfdW5sb2NrX2ZhY2UobV9zY2Fs
ZWRGb250LmdldCgpKTsKKyAgICAgICAgY2Fpcm9fZnRfc2NhbGVkX2ZvbnRfdW5sb2NrX2ZhY2Uo
bV9zY2FsZWRGb250KTsKICAgICB9CiB9CiAKQEAgLTE3MSw3ICsxNzQsNiBAQCBGb250UGxhdGZv
cm1EYXRhJiBGb250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj0oY29uc3QgRm9udFBsYXRmb3JtRGF0
YSYgb3RoZXIpCiAgICAgbV9zeW50aGV0aWNCb2xkID0gb3RoZXIubV9zeW50aGV0aWNCb2xkOwog
ICAgIG1fc3ludGhldGljT2JsaXF1ZSA9IG90aGVyLm1fc3ludGhldGljT2JsaXF1ZTsKICAgICBt
X2ZpeGVkV2lkdGggPSBvdGhlci5tX2ZpeGVkV2lkdGg7Ci0gICAgbV9zY2FsZWRGb250ID0gb3Ro
ZXIubV9zY2FsZWRGb250OwogICAgIG1fcGF0dGVybiA9IG90aGVyLm1fcGF0dGVybjsKIAogICAg
IGlmIChtX2ZhbGxiYWNrcykgewpAQCAtMTgwLDExICsxODIsMTYgQEAgRm9udFBsYXRmb3JtRGF0
YSYgRm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG90
aGVyKQogICAgICAgICBtX2ZhbGxiYWNrcyA9IDA7CiAgICAgfQogCisgICAgaWYgKG1fc2NhbGVk
Rm9udCAmJiBtX3NjYWxlZEZvbnQgIT0gaGFzaFRhYmxlRGVsZXRlZEZvbnRWYWx1ZSgpKQorICAg
ICAgICBjYWlyb19zY2FsZWRfZm9udF9kZXN0cm95KG1fc2NhbGVkRm9udCk7CisgICAgbV9zY2Fs
ZWRGb250ID0gY2Fpcm9fc2NhbGVkX2ZvbnRfcmVmZXJlbmNlKG90aGVyLm1fc2NhbGVkRm9udCk7
CisKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9y
bURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZXIpCiAgICAgOiBtX2ZhbGxiYWNrcygw
KQorICAgICwgbV9zY2FsZWRGb250KDApCiB7CiAgICAgKnRoaXMgPSBvdGhlcjsKIH0KQEAgLTE5
Niw3ICsyMDMsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZv
bnRQbGF0Zm9ybURhdGEmIG90aGVyLCBmbG9hdCBzaXplKQogICAgIC8vIFdlIG5lZWQgdG8gcmVp
bml0aWFsaXplIHRoZSBpbnN0YW5jZSwgYmVjYXVzZSB0aGUgZGlmZmVyZW5jZSBpbiBzaXplIAog
ICAgIC8vIG5lY2Vzc2l0YXRlcyBhIG5ldyBzY2FsZWQgZm9udCBpbnN0YW5jZS4KICAgICBtX3Np
emUgPSBzaXplOwotICAgIGluaXRpYWxpemVXaXRoRm9udEZhY2UoY2Fpcm9fc2NhbGVkX2ZvbnRf
Z2V0X2ZvbnRfZmFjZShtX3NjYWxlZEZvbnQuZ2V0KCkpKTsKKyAgICBpbml0aWFsaXplV2l0aEZv
bnRGYWNlKGNhaXJvX3NjYWxlZF9mb250X2dldF9mb250X2ZhY2UobV9zY2FsZWRGb250KSk7CiB9
CiAKIEZvbnRQbGF0Zm9ybURhdGE6On5Gb250UGxhdGZvcm1EYXRhKCkKQEAgLTIwNSw2ICsyMTIs
OSBAQCBGb250UGxhdGZvcm1EYXRhOjp+Rm9udFBsYXRmb3JtRGF0YSgpCiAgICAgICAgIEZjRm9u
dFNldERlc3Ryb3kobV9mYWxsYmFja3MpOwogICAgICAgICBtX2ZhbGxiYWNrcyA9IDA7CiAgICAg
fQorCisgICAgaWYgKG1fc2NhbGVkRm9udCAmJiBtX3NjYWxlZEZvbnQgIT0gaGFzaFRhYmxlRGVs
ZXRlZEZvbnRWYWx1ZSgpKQorICAgICAgICBjYWlyb19zY2FsZWRfZm9udF9kZXN0cm95KG1fc2Nh
bGVkRm9udCk7CiB9CiAKIGJvb2wgRm9udFBsYXRmb3JtRGF0YTo6aXNGaXhlZFBpdGNoKCkKQEAg
LTIxNiw3ICsyMjYsNyBAQCBib29sIEZvbnRQbGF0Zm9ybURhdGE6Om9wZXJhdG9yPT0oY29uc3Qg
Rm9udFBsYXRmb3JtRGF0YSYgb3RoZXIpIGNvbnN0CiB7CiAgICAgaWYgKG1fcGF0dGVybiA9PSBv
dGhlci5tX3BhdHRlcm4pCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICghbV9wYXR0ZXJu
IHx8IG1fcGF0dGVybi5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHx8ICFvdGhlci5tX3BhdHRl
cm4gfHwgb3RoZXIubV9wYXR0ZXJuLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisgICAgaWYg
KCFtX3BhdHRlcm4gfHwgIW90aGVyLm1fcGF0dGVybikKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIHJldHVybiBGY1BhdHRlcm5FcXVhbChtX3BhdHRlcm4uZ2V0KCksIG90aGVyLm1fcGF0dGVy
bi5nZXQoKSk7CiB9CkBAIC0yNTYsNyArMjY2LDcgQEAgdm9pZCBGb250UGxhdGZvcm1EYXRhOjpp
bml0aWFsaXplV2l0aEZvbnRGYWNlKGNhaXJvX2ZvbnRfZmFjZV90KiBmb250RmFjZSkKICAgICAg
ICAgY2Fpcm9fbWF0cml4X3NjYWxlKCZmb250TWF0cml4LCBtX3NpemUsIG1fc2l6ZSk7CiAgICAg
fQogCi0gICAgbV9zY2FsZWRGb250ID0gYWRvcHRQbGF0Zm9ybVJlZihjYWlyb19zY2FsZWRfZm9u
dF9jcmVhdGUoZm9udEZhY2UsICZmb250TWF0cml4LCAmY3RtLCBvcHRpb25zKSk7CisgICAgbV9z
Y2FsZWRGb250ID0gY2Fpcm9fc2NhbGVkX2ZvbnRfY3JlYXRlKGZvbnRGYWNlLCAmZm9udE1hdHJp
eCwgJmN0bSwgb3B0aW9ucyk7CiAgICAgY2Fpcm9fZm9udF9vcHRpb25zX2Rlc3Ryb3kob3B0aW9u
cyk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9u
dFBsYXRmb3JtRGF0YUZyZWVUeXBlLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5oCmluZGV4IDdkM2ZmOTkuLmZlNGExYzIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZy
ZWVUeXBlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZv
cm1EYXRhRnJlZVR5cGUuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9z
aXplKDApCiAgICAgICAgICwgbV9zeW50aGV0aWNCb2xkKGZhbHNlKQogICAgICAgICAsIG1fc3lu
dGhldGljT2JsaXF1ZShmYWxzZSkKLSAgICAgICAgLCBtX3NjYWxlZEZvbnQoV1RGOjpIYXNoVGFi
bGVEZWxldGVkVmFsdWUpCisgICAgICAgICwgbV9zY2FsZWRGb250KGhhc2hUYWJsZURlbGV0ZWRG
b250VmFsdWUoKSkKICAgICAgICAgeyB9CiAKICAgICBGb250UGxhdGZvcm1EYXRhKCkKQEAgLTUx
LDYgKzUxLDcgQEAgcHVibGljOgogICAgICAgICAsIG1fc2l6ZSgwKQogICAgICAgICAsIG1fc3lu
dGhldGljQm9sZChmYWxzZSkKICAgICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoZmFsc2UpCisg
ICAgICAgICwgbV9zY2FsZWRGb250KDApCiAgICAgICAgIHsgfQogCiAgICAgRm9udFBsYXRmb3Jt
RGF0YShGY1BhdHRlcm4qLCBjb25zdCBGb250RGVzY3JpcHRpb24mKTsKQEAgLTY3LDE4ICs2OCwx
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzeW50aGV0aWNCb2xkKCkgY29uc3QgeyByZXR1cm4gbV9z
eW50aGV0aWNCb2xkOyB9CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlKCkgY29uc3QgeyByZXR1
cm4gbV9zeW50aGV0aWNPYmxpcXVlOyB9CiAKLSAgICBjYWlyb19zY2FsZWRfZm9udF90KiBzY2Fs
ZWRGb250KCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZWRGb250LmdldCgpOyB9CisgICAgY2Fpcm9f
c2NhbGVkX2ZvbnRfdCogc2NhbGVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGVkRm9udDsg
fQogCiAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gUHRy
SGFzaDxjYWlyb19zY2FsZWRfZm9udF90Kj46Omhhc2gobV9zY2FsZWRGb250LmdldCgpKTsKKyAg
ICAgICAgcmV0dXJuIFB0ckhhc2g8Y2Fpcm9fc2NhbGVkX2ZvbnRfdCo+OjpoYXNoKG1fc2NhbGVk
Rm9udCk7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGEmKSBjb25zdDsKICAgICBGb250UGxhdGZvcm1EYXRhJiBvcGVyYXRvcj0oY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYpOwogICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc2NhbGVkRm9udC5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpOworICAgICAgICByZXR1cm4gbV9zY2FsZWRGb250ID09IGhhc2hUYWJsZURlbGV0ZWRGb250
VmFsdWUoKTsKICAgICB9CiAKICNpZm5kZWYgTkRFQlVHCkBAIC05MSwxMCArOTIsMTEgQEAgcHVi
bGljOgogICAgIGJvb2wgbV9zeW50aGV0aWNCb2xkOwogICAgIGJvb2wgbV9zeW50aGV0aWNPYmxp
cXVlOwogICAgIGJvb2wgbV9maXhlZFdpZHRoOwotICAgIFBsYXRmb3JtUmVmUHRyPGNhaXJvX3Nj
YWxlZF9mb250X3Q+IG1fc2NhbGVkRm9udDsKKyAgICBjYWlyb19zY2FsZWRfZm9udF90KiBtX3Nj
YWxlZEZvbnQ7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplV2l0aEZvbnRGYWNlKGNh
aXJvX2ZvbnRfZmFjZV90Kik7CisgICAgc3RhdGljIGNhaXJvX3NjYWxlZF9mb250X3QqIGhhc2hU
YWJsZURlbGV0ZWRGb250VmFsdWUoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PGNhaXJvX3Nj
YWxlZF9mb250X3QqPigtMSk7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR2x5cGhQYWdlVHJlZU5vZGVDYWlyby5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dseXBoUGFnZVRyZWVOb2RlQ2Fpcm8uY3BwCmluZGV4IDY2
ZTljMTYuLmUyZjA5ZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR2x5cGhQYWdlVHJlZU5vZGVDYWlyby5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HbHlwaFBhZ2VUcmVlTm9kZUNhaXJvLmNwcApAQCAtNDUsNyArNDUsNyBAQCBi
b29sIEdseXBoUGFnZTo6ZmlsbCh1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYgogICAgIGlmIChidWZmZXJMZW5ndGggPiBHbHlwaFBhZ2U6
OnNpemUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEZUX0ZhY2UgZmFjZSA9IGNhaXJv
X2Z0X3NjYWxlZF9mb250X2xvY2tfZmFjZShmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkubV9zY2Fs
ZWRGb250LmdldCgpKTsKKyAgICBGVF9GYWNlIGZhY2UgPSBjYWlyb19mdF9zY2FsZWRfZm9udF9s
b2NrX2ZhY2UoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLnNjYWxlZEZvbnQoKSk7CiAgICAgaWYg
KCFmYWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTYwLDcgKzYwLDcgQEAgYm9vbCBH
bHlwaFBhZ2U6OmZpbGwodW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBi
dWZmZXIsIHVuc2lnbmVkIGIKICAgICAgICAgfQogICAgIH0KIAotICAgIGNhaXJvX2Z0X3NjYWxl
ZF9mb250X3VubG9ja19mYWNlKGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5tX3NjYWxlZEZvbnQu
Z2V0KCkpOworICAgIGNhaXJvX2Z0X3NjYWxlZF9mb250X3VubG9ja19mYWNlKGZvbnREYXRhLT5w
bGF0Zm9ybURhdGEoKS5zY2FsZWRGb250KCkpOwogCiAgICAgcmV0dXJuIGhhdmVHbHlwaHM7CiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1NpbXBsZUZvbnRE
YXRhQ2Fpcm8uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9TaW1wbGVGb250
RGF0YUNhaXJvLmNwcAppbmRleCAzZDdjMzRiLi5kMzUwMjk0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1NpbXBsZUZvbnREYXRhQ2Fpcm8uY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vU2ltcGxlRm9udERhdGFDYWlyby5jcHAKQEAg
LTQ5LDcgKzQ5LDcgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Jbml0KCkKIHsKICAg
ICBjYWlyb19mb250X2V4dGVudHNfdCBmb250X2V4dGVudHM7CiAgICAgY2Fpcm9fdGV4dF9leHRl
bnRzX3QgdGV4dF9leHRlbnRzOwotICAgIGNhaXJvX3NjYWxlZF9mb250X2V4dGVudHMobV9wbGF0
Zm9ybURhdGEubV9zY2FsZWRGb250LmdldCgpLCAmZm9udF9leHRlbnRzKTsKKyAgICBjYWlyb19z
Y2FsZWRfZm9udF9leHRlbnRzKG1fcGxhdGZvcm1EYXRhLnNjYWxlZEZvbnQoKSwgJmZvbnRfZXh0
ZW50cyk7CiAgICAgbV9hc2NlbnQgPSBzdGF0aWNfY2FzdDxpbnQ+KGxyb3VuZGYoZm9udF9leHRl
bnRzLmFzY2VudCkpOwogICAgIG1fZGVzY2VudCA9IHN0YXRpY19jYXN0PGludD4obHJvdW5kZihm
b250X2V4dGVudHMuZGVzY2VudCkpOwogICAgIG1fbGluZVNwYWNpbmcgPSBzdGF0aWNfY2FzdDxp
bnQ+KGxyb3VuZGYoZm9udF9leHRlbnRzLmhlaWdodCkpOwpAQCAtNjAsOSArNjAsOSBAQCB2b2lk
IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUluaXQoKQogICAgIC8vIHdoaWxlIHdlIGZpZ3VyZSBv
dXQgd2hhdCdzIGdvaW5nIG9uLgogICAgIGlmIChtX2xpbmVTcGFjaW5nIDwgbV9hc2NlbnQgKyBt
X2Rlc2NlbnQpCiAgICAgICAgIG1fbGluZVNwYWNpbmcgPSBtX2FzY2VudCArIG1fZGVzY2VudDsK
LSAgICBjYWlyb19zY2FsZWRfZm9udF90ZXh0X2V4dGVudHMobV9wbGF0Zm9ybURhdGEubV9zY2Fs
ZWRGb250LmdldCgpLCAieCIsICZ0ZXh0X2V4dGVudHMpOworICAgIGNhaXJvX3NjYWxlZF9mb250
X3RleHRfZXh0ZW50cyhtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCksICJ4IiwgJnRleHRfZXh0
ZW50cyk7CiAgICAgbV94SGVpZ2h0ID0gdGV4dF9leHRlbnRzLmhlaWdodDsKLSAgICBjYWlyb19z
Y2FsZWRfZm9udF90ZXh0X2V4dGVudHMobV9wbGF0Zm9ybURhdGEubV9zY2FsZWRGb250LmdldCgp
LCAiICIsICZ0ZXh0X2V4dGVudHMpOworICAgIGNhaXJvX3NjYWxlZF9mb250X3RleHRfZXh0ZW50
cyhtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCksICIgIiwgJnRleHRfZXh0ZW50cyk7CiAgICAg
bV9zcGFjZVdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRleHRfZXh0ZW50cy54X2FkdmFuY2Up
OwogICAgIG1fbGluZUdhcCA9IG1fbGluZVNwYWNpbmcgLSBtX2FzY2VudCAtIG1fZGVzY2VudDsK
ICAgICBtX3N5bnRoZXRpY0JvbGRPZmZzZXQgPSBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xk
KCkgPyAxLjBmIDogMC5mOwpAQCAtOTQsMTkgKzk0LDE5IEBAIFNpbXBsZUZvbnREYXRhKiBTaW1w
bGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzCiAKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hh
ciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKIHsKLSAgICBGVF9GYWNlIGZhY2UgPSBj
YWlyb19mdF9zY2FsZWRfZm9udF9sb2NrX2ZhY2UobV9wbGF0Zm9ybURhdGEubV9zY2FsZWRGb250
LmdldCgpKTsKKyAgICBGVF9GYWNlIGZhY2UgPSBjYWlyb19mdF9zY2FsZWRfZm9udF9sb2NrX2Zh
Y2UobV9wbGF0Zm9ybURhdGEuc2NhbGVkRm9udCgpKTsKIAogICAgIGlmICghZmFjZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykg
ewogICAgICAgICBpZiAoRmNGcmVlVHlwZUNoYXJJbmRleChmYWNlLCBjaGFyYWN0ZXJzW2ldKSA9
PSAwKSB7Ci0gICAgICAgICAgICBjYWlyb19mdF9zY2FsZWRfZm9udF91bmxvY2tfZmFjZShtX3Bs
YXRmb3JtRGF0YS5tX3NjYWxlZEZvbnQuZ2V0KCkpOworICAgICAgICAgICAgY2Fpcm9fZnRfc2Nh
bGVkX2ZvbnRfdW5sb2NrX2ZhY2UobV9wbGF0Zm9ybURhdGEuc2NhbGVkRm9udCgpKTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIAotICAgIGNhaXJvX2Z0X3Nj
YWxlZF9mb250X3VubG9ja19mYWNlKG1fcGxhdGZvcm1EYXRhLm1fc2NhbGVkRm9udC5nZXQoKSk7
CisgICAgY2Fpcm9fZnRfc2NhbGVkX2ZvbnRfdW5sb2NrX2ZhY2UobV9wbGF0Zm9ybURhdGEuc2Nh
bGVkRm9udCgpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTIzLDE0ICsxMjMsMTQgQEAg
RmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKEdseXBoKSBj
b25zdAogCiBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBo
IGdseXBoKSBjb25zdAogewotICAgIEFTU0VSVChtX3BsYXRmb3JtRGF0YS5tX3NjYWxlZEZvbnQp
OworICAgIEFTU0VSVChtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCkpOwogCiAgICAgY2Fpcm9f
Z2x5cGhfdCBjZ2x5cGggPSB7IGdseXBoLCAwLCAwIH07CiAgICAgY2Fpcm9fdGV4dF9leHRlbnRz
X3QgZXh0ZW50czsKLSAgICBjYWlyb19zY2FsZWRfZm9udF9nbHlwaF9leHRlbnRzKG1fcGxhdGZv
cm1EYXRhLm1fc2NhbGVkRm9udC5nZXQoKSwgJmNnbHlwaCwgMSwgJmV4dGVudHMpOworICAgIGNh
aXJvX3NjYWxlZF9mb250X2dseXBoX2V4dGVudHMobV9wbGF0Zm9ybURhdGEuc2NhbGVkRm9udCgp
LCAmY2dseXBoLCAxLCAmZXh0ZW50cyk7CiAKICAgICBmbG9hdCB3ID0gKGZsb2F0KW1fc3BhY2VX
aWR0aDsKLSAgICBpZiAoY2Fpcm9fc2NhbGVkX2ZvbnRfc3RhdHVzKG1fcGxhdGZvcm1EYXRhLm1f
c2NhbGVkRm9udC5nZXQoKSkgPT0gQ0FJUk9fU1RBVFVTX1NVQ0NFU1MgJiYgZXh0ZW50cy54X2Fk
dmFuY2UpCisgICAgaWYgKGNhaXJvX3NjYWxlZF9mb250X3N0YXR1cyhtX3BsYXRmb3JtRGF0YS5z
Y2FsZWRGb250KCkpID09IENBSVJPX1NUQVRVU19TVUNDRVNTICYmIGV4dGVudHMueF9hZHZhbmNl
KQogICAgICAgICB3ID0gKGZsb2F0KWV4dGVudHMueF9hZHZhbmNlOwogCiAgICAgcmV0dXJuIHc7
ICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>