<?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>116654</bug_id>
          
          <creation_ts>2013-05-23 01:06:17 -0700</creation_ts>
          <short_desc>[BlackBerry] DRT - crashed on GraphicsContext3D::makeContextCurrent</short_desc>
          <delta_ts>2013-05-24 01:05:31 -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>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Xiaobo Wang">xiaobwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>anilsson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rwlbuis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>892697</commentid>
    <comment_count>0</comment_count>
    <who name="Xiaobo Wang">xiaobwang</who>
    <bug_when>2013-05-23 01:06:17 -0700</bug_when>
    <thetext>crashed test:
fast/canvas/webgl/webgl-exceptions.html

bt:
#0  WebCore::GraphicsContext3D::makeContextCurrent (this=0xae59820)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:336
#1  0x79d0581a in ~WebGLLayerWebKitThread (this=0xa4b0200, 
    __in_chrg=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:37
#2  WebCore::WebGLLayerWebKitThread::~WebGLLayerWebKitThread (
    this=&lt;optimized out&gt;, __in_chrg=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:39
#3  0x79d0263e in deref (this=0xa4b03b4)
    at /home/yanbin/workspace/playbook/webkit/Source/WTF/wtf/RefCounted.h:210
#4  deref (this=0xa4b03b4)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/graphics/blackberry/LayerWebKitThread.cpp:439
#5  derefIfNotNull&lt;WebCore::LayerWebKitThread&gt; (ptr=0xa4b0200)
    at /home/yanbin/workspace/playbook/webkit/Source/WTF/wtf/PassRefPtr.h:53
#6  ~RefPtr (this=&lt;synthetic pointer&gt;, __in_chrg=&lt;optimized out&gt;)
    at /home/yanbin/workspace/playbook/webkit/Source/WTF/wtf/RefPtr.h:56
#7  WebCore::LayerWebKitThread::removeAll (this=0xacdb510, vector=...)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/graphics/blackberry/LayerWebKitThread.cpp:448
#8  0x79d03912 in removeAll (vector=..., this=0xacdb510)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/graphics/blackberry/LayerWebKitThread.cpp:441
#9  WebCore::LayerWebKitThread::~LayerWebKitThread (this=0xacdb510, 
    __in_chrg=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/graphics/blackberry/LayerWebKitThread.cpp:85
#10 0x79d03c74 in WebCore::LayerWebKitThread::~LayerWebKitThread (
    this=0xacdb510, __in_chrg=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/graphics/blackberry/LayerWebKitThread.cpp:87
#11 0x79cf1a2c in deref (this=&lt;optimized out&gt;)
    at /home/yanbin/workspace/playbook/webkit/Source/WTF/wtf/RefCounted.h:210
#12 deref (this=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:106
#13 derefIfNotNull&lt;WebCore::LayerWebKitThread&gt; (ptr=&lt;optimized out&gt;)
    at /home/yanbin/workspace/playbook/webkit/Source/WTF/wtf/PassRefPtr.h:53
#14 ~RefPtr (this=0xacdb8c8, __in_chrg=&lt;optimized out&gt;)
    at /home/yanbin/workspace/playbook/webkit/Source/WTF/wtf/RefPtr.h:56
#15 WebCore::GraphicsLayerBlackBerry::~GraphicsLayerBlackBerry (
    this=0xacdb730, __in_chrg=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:110
#16 0x79cf1a54 in WebCore::GraphicsLayerBlackBerry::~GraphicsLayerBlackBerry (
    this=0xacdb730, __in_chrg=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:110
#17 0x7985703a in deleteOwnedPtr&lt;WebCore::GraphicsLayer&gt; (ptr=&lt;optimized out&gt;)
    at /home/yanbin/workspace/playbook/webkit/Source/WTF/wtf/OwnPtrCommon.h:63
#18 clear (this=0xa511a20)
    at /home/yanbin/workspace/playbook/webkit/Source/WTF/wtf/OwnPtr.h:119
#19 operator= (this=0xa511a20)
    at /home/yanbin/workspace/playbook/webkit/Source/WTF/wtf/OwnPtr.h:81
#20 WebCore::RenderLayerBacking::destroyGraphicsLayers (this=0xa511a10)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/rendering/RenderLayerBacking.cpp:334
#21 0x7985880c in WebCore::RenderLayerBacking::~RenderLayerBacking (
    this=0xa511a10, __in_chrg=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/rendering/RenderLayerBacking.cpp:162
#22 0x798588d0 in WebCore::RenderLayerBacking::~RenderLayerBacking (
    this=0xa511a10, __in_chrg=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/rendering/RenderLayerBacking.cpp:163
#23 0x7984b48c in deleteOwnedPtr&lt;WebCore::RenderLayerBacking&gt; (
    ptr=&lt;optimized out&gt;)
    at /home/yanbin/workspace/playbook/webkit/Source/WTF/wtf/OwnPtrCommon.h:63
#24 clear (this=&lt;optimized out&gt;)
    at /home/yanbin/workspace/playbook/webkit/Source/WTF/wtf/OwnPtr.h:119
#25 clearBacking (this=0xac5d7b0, layerBeingDestroyed=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/rendering/RenderLayer.cpp:5509
#26 WebCore::RenderLayer::~RenderLayer (this=0xac5d7b0, 
    __in_chrg=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/rendering/RenderLayer.cpp:268
#27 0x7984b5f4 in WebCore::RenderLayer::~RenderLayer (this=0xac5d7b0, 
    __in_chrg=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/rendering/RenderLayer.cpp:275
#28 0x7984579c in WebCore::RenderLayer::destroy (this=0xac5d7b0, 
    renderArena=0xa77ebc8)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/rendering/RenderLayer.cpp:1720
#29 0x79863b68 in WebCore::RenderLayerModelObject::destroyLayer (
    this=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/rendering/RenderLayerModelObject.cpp:58
#30 0x7987eafa in WebCore::RenderObject::willBeDestroyed (this=0xac5d750)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/rendering/RenderObject.cpp:2454
#31 0x7987cc0c in WebCore::RenderObject::destroy (this=0xac5d750)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/rendering/RenderObject.cpp:2575
#32 0x7987cb78 in WebCore::RenderObject::destroyAndCleanupAnonymousWrappers (
    this=0xac5d750)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/rendering/RenderObject.cpp:2553
#33 0x794e7f32 in WebCore::Node::detach (this=0xa0bf160)
    at /home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/Node.cpp:1114
#34 0x794de684 in WebCore::Element::detach (this=0xa0bf160)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/Element.cpp:1310
#35 0x794b36d2 in detachChildren (this=0xa9be9e0)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/ContainerNode.h:219
#36 WebCore::ContainerNode::detach (this=0xa9be9e0)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/ContainerNode.cpp:832
#37 0x794de684 in WebCore::Element::detach (this=0xa9be9e0)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/Element.cpp:1310
#38 0x794b36d2 in detachChildren (this=0xa9becb0)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/ContainerNode.h:219
#39 WebCore::ContainerNode::detach (this=0xa9becb0)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/ContainerNode.cpp:832
#40 0x794de684 in WebCore::Element::detach (this=0xa9becb0)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/Element.cpp:1310
#41 0x794b36d2 in detachChildren (this=0xa61f298)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/ContainerNode.h:219
#42 WebCore::ContainerNode::detach (this=0xa61f298)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/ContainerNode.cpp:832
#43 0x794ca012 in WebCore::Document::detach (this=0xa61f298)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/Document.cpp:2124
#44 0x794bb8f4 in WebCore::Document::prepareForDestruction (this=0xa61f298)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/dom/Document.cpp:2153
#45 0x79702a9e in WebCore::Frame::setView (this=0x80d58f8, view=...)
    at /home/yanbin/workspace/playbook/webkit/Source/WebCore/page/Frame.cpp:269
#46 0x79704704 in WebCore::Frame::createView (this=0x80d58f8, 
    viewportSize=..., backgroundColor=..., transparent=&lt;optimized out&gt;, 
    fixedReportedSize=..., fixedLayoutSize=..., fixedVisibleContentRect=..., 
    useFixedLayout=true, horizontalScrollbarMode=WebCore::ScrollbarAlwaysOff, 
    horizontalLock=true, verticalScrollbarMode=WebCore::ScrollbarAlwaysOff, 
    verticalLock=true)
    at /home/yanbin/workspace/playbook/webkit/Source/WebCore/page/Frame.cpp:796
#47 0x793bdc34 in
WebCore::FrameLoaderClientBlackBerry::transitionToCommittedForNewPage
(this=0x80a0630)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp:452
#48 0x7968fabc in WebCore::FrameLoader::transitionToCommitted (
    this=0x80d5938, cachedPage=...)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/loader/FrameLoader.cpp:1912
#49 0x796913a2 in WebCore::FrameLoader::commitProvisionalLoad (this=0x80d5938)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/loader/FrameLoader.cpp:1754
#50 0x79681c2e in commitIfReady (this=0xa7fc158)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/loader/DocumentLoader.cpp:290
#51 commitIfReady (this=0xa7fc158)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/loader/DocumentLoader.cpp:377
#52 WebCore::DocumentLoader::commitLoad (this=0xa7fc158, 
    data=0xa18fc58 &quot;&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;script
src=\&quot;../../../fast/js/resources/js-test-pre.js\&quot;&gt;&lt;/script&gt;\n&lt;script
src=\&quot;resources/webgl-test.js\&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;body&gt;\n&lt;script&gt;\nvar gl =
create3DContext();\nshou&quot;..., length=864)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/loader/DocumentLoader.cpp:384
#53 0x796c829a in WebCore::CachedRawResource::data (this=0xac56698, data=..., 
    allDataReceived=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/loader/cache/CachedRawResource.cpp:70
#54 0x796b6c14 in WebCore::SubresourceLoader::sendDataToResource (
    this=&lt;optimized out&gt;, data=0x2a22d000 &lt;Address 0x2a22d000 out of bounds&gt;, 
    length=864)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/loader/SubresourceLoader.cpp:267
#55 0x796b6d9a in WebCore::SubresourceLoader::didReceiveDataOrBuffer (
    this=0xabd8cb0, data=&lt;optimized out&gt;, length=&lt;optimized out&gt;, 
    prpBuffer=..., encodedDataLength=864, 
    dataPayloadType=WebCore::DataPayloadBytes)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/loader/SubresourceLoader.cpp:241
#56 0x796b6e7c in didReceiveDataOrBuffer (
    dataPayloadType=WebCore::DataPayloadBytes, encodedDataLength=864, 
    prpBuffer=..., length=864, 
    data=0x2a22d000 &lt;Address 0x2a22d000 out of bounds&gt;, this=0xabd8cb0)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/loader/SubresourceLoader.cpp:228
#57 WebCore::SubresourceLoader::didReceiveData (this=0xabd8cb0, 
    data=0x2a22d000 &lt;Address 0x2a22d000 out of bounds&gt;, length=864, 
    encodedDataLength=864, dataPayloadType=WebCore::DataPayloadBytes)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/loader/SubresourceLoader.cpp:218
#58 0x796b0244 in WebCore::ResourceLoader::didReceiveData (this=0xabd8cb0, 
    data=0x2a22d000 &lt;Address 0x2a22d000 out of bounds&gt;, length=864, 
    encodedDataLength=864)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/loader/ResourceLoader.cpp:507
#59 0x7a1070ac in WebCore::NetworkJob::handleNotifyDataReceived (
    this=0xafe0df0, buf=0x2a22d000 &lt;Address 0x2a22d000 out of bounds&gt;, 
    len=&lt;optimized out&gt;)
    at
/home/yanbin/workspace/playbook/webkit/Source/WebCore/platform/network/blackberry/NetworkJob.cpp:518</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892698</commentid>
    <comment_count>1</comment_count>
    <who name="Xiaobo Wang">xiaobwang</who>
    <bug_when>2013-05-23 01:08:48 -0700</bug_when>
    <thetext>The instance of GraphicsContext3D has already been destroyed but WebGLLayerWebKitThread is not aware of that. In WebGLLayerWebKitThread m_webGLContext is a raw pointer, it will be destroyed in WebGLRenderingContext::destroyGraphicsContext3D before destructing WebGLLayerWebKitThread. Fix by making it ref counted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892700</commentid>
    <comment_count>2</comment_count>
      <attachid>202648</attachid>
    <who name="Xiaobo Wang">xiaobwang</who>
    <bug_when>2013-05-23 01:26:32 -0700</bug_when>
    <thetext>Created attachment 202648
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892705</commentid>
    <comment_count>3</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2013-05-23 02:04:26 -0700</bug_when>
    <thetext>Hang on Xiabo, it looks like you&apos;re setting up a circular reference here between the layer and the context...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892706</commentid>
    <comment_count>4</comment_count>
      <attachid>202648</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2013-05-23 02:05:23 -0700</bug_when>
    <thetext>Comment on attachment 202648
patch

Sorry for the misleading internal review - you should make the WebGLLayerWebKitThread::m_webGLContext a weak pointer rather than a ref pointer... Or fix it some other way...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892709</commentid>
    <comment_count>5</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2013-05-23 02:08:59 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 202648 [details])
&gt; Sorry for the misleading internal review - you should make the WebGLLayerWebKitThread::m_webGLContext a weak pointer rather than a ref pointer... Or fix it some other way...

In 

GraphicsContext3D::~GraphicsContext3D()
{
    if (m_texture) {
        makeContextCurrent();
        ::glDeleteTextures(1, &amp;m_texture);
        if (m_attrs.stencil || m_attrs.depth)
            ::glDeleteRenderbuffers(1, &amp;m_depthStencilBuffer);
        ::glDeleteFramebuffers(1, &amp;m_fbo);
    }

    m_compositingLayer = 0; // Must release compositing layer before destroying the context.
    BlackBerry::Platform::Graphics::destroyWebGLContext(m_context);
}

You can call some method on the m_compositingLayer, like m_compositingLayer-&gt;contextDestroyed(), before actually destroying the WebGL context. Something like this:

GraphicsContext3D::~GraphicsContext3D()
{
    ...
    m_compositingLayer-&gt;webGLContextDestroyed();
    BlackBerry::Platform::Graphics::destroyWebGLContext(m_context);
}

WebGLLayerWebKitThread::webGLContextDestroyed()
{
    if (m_webGLContext &amp;&amp; m_webGLContext-&gt;makeContextCurrent())
        deleteFrontBuffer();
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892712</commentid>
    <comment_count>6</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2013-05-23 02:16:34 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 202648 [details] [details])
&gt; &gt; Sorry for the misleading internal review - you should make the WebGLLayerWebKitThread::m_webGLContext a weak pointer rather than a ref pointer... Or fix it some other way...
&gt; 
...
 
&gt; WebGLLayerWebKitThread::webGLContextDestroyed()
&gt; {
&gt;     if (m_webGLContext &amp;&amp; m_webGLContext-&gt;makeContextCurrent())
&gt;         deleteFrontBuffer();
&gt; }

Actually, there&apos;s already a method that does exactly this, deleteTextures(). It should be like this:

WebGLLayerWebKitThread::webGLContextDestroyed()
{
    deleteTextures();
    m_webGLContext = 0;
}

You can also replace the call in the destructor to call deleteTextures():

 WebGLLayerWebKitThread::~WebGLLayerWebKitThread()
 {
-    if (m_webGLContext &amp;&amp; m_webGLContext-&gt;makeContextCurrent())
-        deleteFrontBuffer();
+    deleteTextures();
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892719</commentid>
    <comment_count>7</comment_count>
      <attachid>202648</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-23 03:30:07 -0700</bug_when>
    <thetext>Comment on attachment 202648
patch

I&apos;m not sure adding a circular dependency is the right fix here. The problem is that when the context is destroyed, someone else has a reference of the compositing layer, so it&apos;s not deleted when the context is destroyed. A possible solution would be to set the context to NULL in GraphicsContext3DBlackBerry destructor so that the layer doesn&apos;t keep a pointer to the deleted context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892742</commentid>
    <comment_count>8</comment_count>
    <who name="Xiaobo Wang">xiaobwang</who>
    <bug_when>2013-05-23 04:42:18 -0700</bug_when>
    <thetext>Oops, good catch Arvid! I&apos;ll update the patch according to your suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892745</commentid>
    <comment_count>9</comment_count>
    <who name="Xiaobo Wang">xiaobwang</who>
    <bug_when>2013-05-23 04:44:18 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 202648 [details])
&gt; I&apos;m not sure adding a circular dependency is the right fix here. The problem is that when the context is destroyed, someone else has a reference of the compositing layer, so it&apos;s not deleted when the context is destroyed. A possible solution would be to set the context to NULL in GraphicsContext3DBlackBerry destructor so that the layer doesn&apos;t keep a pointer to the deleted context.

Yes, this is consistent with the comments from Arvid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892754</commentid>
    <comment_count>10</comment_count>
      <attachid>202665</attachid>
    <who name="Xiaobo Wang">xiaobwang</who>
    <bug_when>2013-05-23 05:10:20 -0700</bug_when>
    <thetext>Created attachment 202665
patch - revised by Arvid</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892756</commentid>
    <comment_count>11</comment_count>
      <attachid>202667</attachid>
    <who name="Xiaobo Wang">xiaobwang</who>
    <bug_when>2013-05-23 05:13:20 -0700</bug_when>
    <thetext>Created attachment 202667
patch - revised by Arvid</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893209</commentid>
    <comment_count>12</comment_count>
      <attachid>202667</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-24 01:05:28 -0700</bug_when>
    <thetext>Comment on attachment 202667
patch - revised by Arvid

Clearing flags on attachment: 202667

Committed r150635: &lt;http://trac.webkit.org/changeset/150635&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893210</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-24 01:05:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202648</attachid>
            <date>2013-05-23 01:26:32 -0700</date>
            <delta_ts>2013-05-23 05:10:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-BlackBerry-DRT-crashed-on-GraphicsContext3D-makeCont.patch</filename>
            <type>text/plain</type>
            <size>2717</size>
            <attacher name="Xiaobo Wang">xiaobwang</attacher>
            
              <data encoding="base64">RnJvbSA1OWQ1ODIzNTkzNzZiMjc5MTM0YmU2ZWE3MmRhYzJlZjhjMzNkNGUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYaWFvYm8gV2FuZyA8eGlhb2J3YW5nQGJsYWNrYmVycnkuY29t
PgpEYXRlOiBUaHUsIDIzIE1heSAyMDEzIDE2OjIwOjQ4ICswODAwClN1YmplY3Q6IFtQQVRDSF0g
W0JsYWNrQmVycnldIERSVCAtIGNyYXNoZWQgb24KIEdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29u
dGV4dEN1cnJlbnQKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY2
NTQKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKUFIgMzMxNTUyLgpJbnRlcm5hbGx5IHJl
dmlld2VkIGJ5IEFydmlkIE5pbHNzb24uCgpObyBuZXcgdGVzdHMsIHRoaXMgcGF0Y2ggaXMgdG8g
Zml4IERSVCBjcmFzaGVzIGluIGZhc3QvY2FudmFzL3dlYmdsLgpUaGUgaW5zdGFuY2Ugb2YgR3Jh
cGhpY3NDb250ZXh0M0QgaGFzIGFscmVhZHkgYmVlbiBkZXN0cm95ZWQgYnV0CldlYkdMTGF5ZXJX
ZWJLaXRUaHJlYWQgaXMgbm90IGF3YXJlIG9mIHRoYXQuIEluIFdlYkdMTGF5ZXJXZWJLaXRUaHJl
YWQKbV93ZWJHTENvbnRleHQgaXMgYSByYXcgcG9pbnRlciwgaXQgd2lsbCBiZSBkZXN0cm95ZWQg
aW4KV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QgYmVmb3Jl
IGRlc3RydWN0aW5nCldlYkdMTGF5ZXJXZWJLaXRUaHJlYWQuIEZpeCBieSBtYWtpbmcgaXQgcmVm
IGNvdW50ZWQuCgoqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvV2ViR0xMYXllcldlYktp
dFRocmVhZC5oOgooV2ViR0xMYXllcldlYktpdFRocmVhZCk6Ci0tLQogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKysrKysr
KysrKysrCiAuLi4vZ3JhcGhpY3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFkLmgg
ICB8ICAgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv
bigtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAwOWY0NTEwLi5mYzMxMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMTMtMDUtMjMgIFhpYW9ibyBXYW5nICA8eGlhb2J3YW5nQGJsYWNrYmVycnku
Y29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBEUlQgLSBjcmFzaGVkIG9uIEdyYXBoaWNzQ29u
dGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNjY1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBSIDMzMTU1Mi4KKyAgICAgICAgSW50ZXJuYWxseSByZXZpZXdl
ZCBieSBBcnZpZCBOaWxzc29uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGhpcyBwYXRjaCBp
cyB0byBmaXggRFJUIGNyYXNoZXMgaW4gZmFzdC9jYW52YXMvd2ViZ2wuCisgICAgICAgIFRoZSBp
bnN0YW5jZSBvZiBHcmFwaGljc0NvbnRleHQzRCBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZCBi
dXQKKyAgICAgICAgV2ViR0xMYXllcldlYktpdFRocmVhZCBpcyBub3QgYXdhcmUgb2YgdGhhdC4g
SW4gV2ViR0xMYXllcldlYktpdFRocmVhZAorICAgICAgICBtX3dlYkdMQ29udGV4dCBpcyBhIHJh
dyBwb2ludGVyLCBpdCB3aWxsIGJlIGRlc3Ryb3llZCBpbgorICAgICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCBiZWZvcmUgZGVzdHJ1Y3RpbmcKKyAg
ICAgICAgV2ViR0xMYXllcldlYktpdFRocmVhZC4gRml4IGJ5IG1ha2luZyBpdCByZWYgY291bnRl
ZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvV2ViR0xMYXllcldl
YktpdFRocmVhZC5oOgorICAgICAgICAoV2ViR0xMYXllcldlYktpdFRocmVhZCk6CisKIDIwMTMt
MDUtMjMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBbRUZMXSBCYWNrLCBGb3J3YXJkIGFuZCBTdG9wIHNob3VsZCBiZSBoaWRkZW4g
aW4gY29udGV4dCBtZW51CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L1dlYkdMTGF5ZXJXZWJLaXRUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvV2ViR0xMYXllcldlYktpdFRocmVhZC5oCmlu
ZGV4IDE0ODBmMjUuLjYyNTFlMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvV2ViR0xMYXllcldlYktpdFRocmVhZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvV2ViR0xMYXllcldlYktpdFRo
cmVhZC5oCkBAIC00NSw3ICs0NSw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgV2ViR0xM
YXllcldlYktpdFRocmVhZCgpOwogCi0gICAgR3JhcGhpY3NDb250ZXh0M0QqIG1fd2ViR0xDb250
ZXh0OworICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV93ZWJHTENvbnRleHQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0tIAoxLjcuOS41Cgo=
</data>
<flag name="review"
          id="224036"
          type_id="1"
          status="-"
          setter="anilsson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202665</attachid>
            <date>2013-05-23 05:10:20 -0700</date>
            <delta_ts>2013-05-23 05:13:20 -0700</delta_ts>
            <desc>patch - revised by Arvid</desc>
            <filename>0001-BlackBerry-DRT-crashed-on-GraphicsContext3D-makeCont.patch</filename>
            <type>text/plain</type>
            <size>5631</size>
            <attacher name="Xiaobo Wang">xiaobwang</attacher>
            
              <data encoding="base64">RnJvbSA3MWMzZWZlZmU1NzE5OGIxN2Q3YzA3ZmViNmVkZDZmYTI4MThhZTE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYaWFvYm8gV2FuZyA8eGlhb2J3YW5nQGJsYWNrYmVycnkuY29t
PgpEYXRlOiBUaHUsIDIzIE1heSAyMDEzIDIwOjA2OjU5ICswODAwClN1YmplY3Q6IFtQQVRDSF0g
W0JsYWNrQmVycnldIERSVCAtIGNyYXNoZWQgb24KIEdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29u
dGV4dEN1cnJlbnQKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY2
NTQKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKUFIgMzMxNTUyLgpJbnRlcm5hbGx5IHJl
dmlld2VkIGFuZCBhbWVuZGVkIGJ5IEFydmlkIE5pbHNzb24uCgpObyBuZXcgdGVzdHMsIHRoaXMg
cGF0Y2ggaXMgdG8gZml4IERSVCBjcmFzaGVzIGluIGZhc3QvY2FudmFzL3dlYmdsLgpUaGUgaW5z
dGFuY2Ugb2YgR3JhcGhpY3NDb250ZXh0M0QgaGFzIGFscmVhZHkgYmVlbiBkZXN0cm95ZWQgYnV0
CldlYkdMTGF5ZXJXZWJLaXRUaHJlYWQgaXMgbm90IGF3YXJlIG9mIHRoYXQuIFRoaXMgaXMgYmVj
YXVzZSBjb21wb3NpdG9yCmxheWVyIG9mIHRoZSBXZWJHTCBncmFwaGljcyBjb250ZXh0IHdhcyBy
ZWZlcmVuY2VkIG91dHNpZGUgdGhlIGNvbnRleHQuClNvIHdoZW4gZGVzdHJ1Y3RpbmcgR3JhcGhp
Y3NDb250ZXh0M0QgdGhlIGNvbXBvc2l0aW5nIGxheWVyIHdhcyBub3QKZGVzdHJ1Y3RlZC4KRml4
IGJ5IHNldHRpbmcgbV93ZWJHTENvbnRleHQgdG8gMCB3aGVuIGRlc3RydWN0aW5nIEdyYXB0aGlj
c0NvbnRleHQzRAphZnRlciByZWxlYXNpbmcgdGhlIGNvbXBvc2l0b3IgbGF5ZXIsIHNvIHRoYXQg
aXQgd29uJ3QgYmUgZGUtcmVmZXJlbmNlZAphZ2FpbiBsYXRlci4KCiogcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9HcmFwaGljc0NvbnRleHQzREJsYWNrQmVycnkuY3BwOgooV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCk6CiogcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFkLmNwcDoKKFdlYkNvcmU6OldlYkdM
TGF5ZXJXZWJLaXRUaHJlYWQ6On5XZWJHTExheWVyV2ViS2l0VGhyZWFkKToKKFdlYkNvcmU6Oldl
YkdMTGF5ZXJXZWJLaXRUaHJlYWQ6OndlYkdMQ29udGV4dERlc3Ryb3llZCk6CihXZWJDb3JlKToK
KiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L1dlYkdMTGF5ZXJXZWJLaXRUaHJlYWQuaDoK
KFdlYkdMTGF5ZXJXZWJLaXRUaHJlYWQpOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyOSArKysrKysrKysrKysrKysrKysrKwogLi4u
L2JsYWNrYmVycnkvR3JhcGhpY3NDb250ZXh0M0RCbGFja0JlcnJ5LmNwcCAgICAgfCAgICAyICst
CiAuLi4vZ3JhcGhpY3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFkLmNwcCB8ICAg
IDkgKysrKy0tCiAuLi4vZ3JhcGhpY3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFk
LmggICB8ICAgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOWY0NTEwLi4zMDI2YzQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzIgQEAKKzIwMTMtMDUtMjMgIFhpYW9ibyBXYW5nICA8eGlhb2J3YW5nQGJsYWNrYmVy
cnkuY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBEUlQgLSBjcmFzaGVkIG9uIEdyYXBoaWNz
Q29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjY1NAorICAgIAorICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAKKyAgICAgICAgUFIgMzMxNTUyLgorICAgICAgICBJbnRlcm5h
bGx5IHJldmlld2VkIGFuZCBhbWVuZGVkIGJ5IEFydmlkIE5pbHNzb24uCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCB0aGlzIHBhdGNoIGlzIHRvIGZpeCBEUlQgY3Jhc2hlcyBpbiBmYXN0L2NhbnZh
cy93ZWJnbC4KKyAgICAgICAgVGhlIGluc3RhbmNlIG9mIEdyYXBoaWNzQ29udGV4dDNEIGhhcyBh
bHJlYWR5IGJlZW4gZGVzdHJveWVkIGJ1dAorICAgICAgICBXZWJHTExheWVyV2ViS2l0VGhyZWFk
IGlzIG5vdCBhd2FyZSBvZiB0aGF0LiBUaGlzIGlzIGJlY2F1c2UgY29tcG9zaXRvcgorICAgICAg
ICBsYXllciBvZiB0aGUgV2ViR0wgZ3JhcGhpY3MgY29udGV4dCB3YXMgcmVmZXJlbmNlZCBvdXRz
aWRlIHRoZSBjb250ZXh0LgorICAgICAgICBTbyB3aGVuIGRlc3RydWN0aW5nIEdyYXBoaWNzQ29u
dGV4dDNEIHRoZSBjb21wb3NpdGluZyBsYXllciB3YXMgbm90CisgICAgICAgIGRlc3RydWN0ZWQu
CisgICAgICAgIEZpeCBieSBzZXR0aW5nIG1fd2ViR0xDb250ZXh0IHRvIDAgd2hlbiBkZXN0cnVj
dGluZyBHcmFwdGhpY3NDb250ZXh0M0QKKyAgICAgICAgYWZ0ZXIgcmVsZWFzaW5nIHRoZSBjb21w
b3NpdG9yIGxheWVyLCBzbyB0aGF0IGl0IHdvbid0IGJlIGRlLXJlZmVyZW5jZWQKKyAgICAgICAg
YWdhaW4gbGF0ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0dy
YXBoaWNzQ29udGV4dDNEQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L1dlYkdMTGF5ZXJXZWJLaXRUaHJlYWQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xMYXllcldlYktpdFRocmVhZDo6fldlYkdMTGF5ZXJXZWJLaXRUaHJlYWQpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xMYXllcldlYktpdFRocmVhZDo6d2ViR0xDb250ZXh0RGVz
dHJveWVkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvV2ViR0xMYXllcldlYktpdFRocmVhZC5oOgorICAgICAgICAoV2ViR0xMYXll
cldlYktpdFRocmVhZCk6CisKIDIwMTMtMDUtMjMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2Eg
IDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBCYWNrLCBGb3J3YXJkIGFu
ZCBTdG9wIHNob3VsZCBiZSBoaWRkZW4gaW4gY29udGV4dCBtZW51CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0dyYXBoaWNzQ29udGV4dDNE
QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2Jl
cnJ5L0dyYXBoaWNzQ29udGV4dDNEQmxhY2tCZXJyeS5jcHAKaW5kZXggYzk0ZjhkNi4uOGExZTVh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9HcmFwaGljc0NvbnRleHQzREJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvR3JhcGhpY3NDb250ZXh0M0RCbGFja0JlcnJ5LmNw
cApAQCAtMTI3LDcgKzEyNyw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0
M0QoKQogICAgICAgICA6OmdsRGVsZXRlRnJhbWVidWZmZXJzKDEsICZtX2Zibyk7CiAgICAgfQog
Ci0gICAgbV9jb21wb3NpdGluZ0xheWVyID0gMDsgLy8gTXVzdCByZWxlYXNlIGNvbXBvc2l0aW5n
IGxheWVyIGJlZm9yZSBkZXN0cm95aW5nIHRoZSBjb250ZXh0LgorICAgIHN0YXRpY19jYXN0PFdl
YkdMTGF5ZXJXZWJLaXRUaHJlYWQgKj4obV9jb21wb3NpdGluZ0xheWVyLmdldCgpKS0+d2ViR0xD
b250ZXh0RGVzdHJveWVkKCk7IC8vIE11c3QgcmVsZWFzZSBjb21wb3NpdGluZyBsYXllciBiZWZv
cmUgZGVzdHJveWluZyB0aGUgY29udGV4dC4KICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3Jh
cGhpY3M6OmRlc3Ryb3lXZWJHTENvbnRleHQobV9jb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2Vi
S2l0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVy
cnkvV2ViR0xMYXllcldlYktpdFRocmVhZC5jcHAKaW5kZXggZmQxNTlkMy4uOTRjMjVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9XZWJH
TExheWVyV2ViS2l0VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L1dlYkdMTGF5ZXJXZWJLaXRUaHJlYWQuY3BwCkBAIC0zNCw4ICszNCw3
IEBAIFdlYkdMTGF5ZXJXZWJLaXRUaHJlYWQ6OldlYkdMTGF5ZXJXZWJLaXRUaHJlYWQoKQogCiBX
ZWJHTExheWVyV2ViS2l0VGhyZWFkOjp+V2ViR0xMYXllcldlYktpdFRocmVhZCgpCiB7Ci0gICAg
aWYgKG1fd2ViR0xDb250ZXh0ICYmIG1fd2ViR0xDb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQo
KSkKLSAgICAgICAgZGVsZXRlRnJvbnRCdWZmZXIoKTsKKyAgICBkZWxldGVUZXh0dXJlcygpOwog
fQogCiB2b2lkIFdlYkdMTGF5ZXJXZWJLaXRUaHJlYWQ6OnVwZGF0ZVRleHR1cmVDb250ZW50c0lm
TmVlZGVkKCkKQEAgLTU0LDYgKzUzLDEyIEBAIHZvaWQgV2ViR0xMYXllcldlYktpdFRocmVhZDo6
ZGVsZXRlVGV4dHVyZXMoKQogICAgICAgICBkZWxldGVGcm9udEJ1ZmZlcigpOwogfQogCit2b2lk
IFdlYkdMTGF5ZXJXZWJLaXRUaHJlYWQ6OndlYkdMQ29udGV4dERlc3Ryb3llZCgpCit7CisgICAg
ZGVsZXRlVGV4dHVyZXMoKTsKKyAgICBtX3dlYkdMQ29udGV4dCA9IDA7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L1dlYkdMTGF5ZXJXZWJLaXRUaHJlYWQuaApp
bmRleCAxNDgwZjI1Li43NWZlMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L1dlYkdMTGF5ZXJXZWJLaXRUaHJlYWQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L1dlYkdMTGF5ZXJXZWJLaXRU
aHJlYWQuaApAQCAtMzcsNiArMzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViR0xMYXll
cldlYktpdFRocmVhZCgpOwogCiAgICAgdm9pZCBzZXRXZWJHTENvbnRleHQoR3JhcGhpY3NDb250
ZXh0M0QqIGNvbnRleHQpIHsgbV93ZWJHTENvbnRleHQgPSBjb250ZXh0OyB9CisgICAgdm9pZCB3
ZWJHTENvbnRleHREZXN0cm95ZWQoKTsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVUZXh0dXJlQ29udGVudHNJZk5lZWRlZCgpOwotLSAKMS43LjkuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202667</attachid>
            <date>2013-05-23 05:13:20 -0700</date>
            <delta_ts>2013-05-24 01:05:28 -0700</delta_ts>
            <desc>patch - revised by Arvid</desc>
            <filename>0001-BlackBerry-DRT-crashed-on-GraphicsContext3D-makeCont.patch</filename>
            <type>text/plain</type>
            <size>5623</size>
            <attacher name="Xiaobo Wang">xiaobwang</attacher>
            
              <data encoding="base64">RnJvbSBlODdhY2E3OWE0MGRiY2EzOTdlNjU0YWRhZWI5OGYzNGUwMzBmYzQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYaWFvYm8gV2FuZyA8eGlhb2J3YW5nQGJsYWNrYmVycnkuY29t
PgpEYXRlOiBUaHUsIDIzIE1heSAyMDEzIDIwOjA2OjU5ICswODAwClN1YmplY3Q6IFtQQVRDSF0g
W0JsYWNrQmVycnldIERSVCAtIGNyYXNoZWQgb24KIEdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29u
dGV4dEN1cnJlbnQKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY2
NTQKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKUFIgMzMxNTUyLgpJbnRlcm5hbGx5IHJl
dmlld2VkIGFuZCBhbWVuZGVkIGJ5IEFydmlkIE5pbHNzb24uCgpObyBuZXcgdGVzdHMsIHRoaXMg
cGF0Y2ggaXMgdG8gZml4IERSVCBjcmFzaGVzIGluIGZhc3QvY2FudmFzL3dlYmdsLgpUaGUgaW5z
dGFuY2Ugb2YgR3JhcGhpY3NDb250ZXh0M0QgaGFzIGFscmVhZHkgYmVlbiBkZXN0cm95ZWQgYnV0
CldlYkdMTGF5ZXJXZWJLaXRUaHJlYWQgaXMgbm90IGF3YXJlIG9mIHRoYXQuIFRoaXMgaXMgYmVj
YXVzZSBjb21wb3NpdG9yCmxheWVyIG9mIHRoZSBXZWJHTCBncmFwaGljcyBjb250ZXh0IHdhcyBy
ZWZlcmVuY2VkIG91dHNpZGUgdGhlIGNvbnRleHQuClNvIHdoZW4gZGVzdHJ1Y3RpbmcgR3JhcGhp
Y3NDb250ZXh0M0QgdGhlIGNvbXBvc2l0aW5nIGxheWVyIHdhcyBub3QKZGVzdHJ1Y3RlZC4KRml4
IGJ5IHNldHRpbmcgbV93ZWJHTENvbnRleHQgdG8gMCB3aGVuIGRlc3RydWN0aW5nIEdyYXB0aGlj
c0NvbnRleHQzRAphZnRlciByZWxlYXNpbmcgdGhlIGNvbXBvc2l0b3IgbGF5ZXIsIHNvIHRoYXQg
aXQgd29uJ3QgYmUgZGUtcmVmZXJlbmNlZAphZ2FpbiBsYXRlci4KCiogcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9HcmFwaGljc0NvbnRleHQzREJsYWNrQmVycnkuY3BwOgooV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCk6CiogcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFkLmNwcDoKKFdlYkNvcmU6OldlYkdM
TGF5ZXJXZWJLaXRUaHJlYWQ6On5XZWJHTExheWVyV2ViS2l0VGhyZWFkKToKKFdlYkNvcmU6Oldl
YkdMTGF5ZXJXZWJLaXRUaHJlYWQ6OndlYkdMQ29udGV4dERlc3Ryb3llZCk6CihXZWJDb3JlKToK
KiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L1dlYkdMTGF5ZXJXZWJLaXRUaHJlYWQuaDoK
KFdlYkdMTGF5ZXJXZWJLaXRUaHJlYWQpOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyOSArKysrKysrKysrKysrKysrKysrKwogLi4u
L2JsYWNrYmVycnkvR3JhcGhpY3NDb250ZXh0M0RCbGFja0JlcnJ5LmNwcCAgICAgfCAgICAyICst
CiAuLi4vZ3JhcGhpY3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFkLmNwcCB8ICAg
IDkgKysrKy0tCiAuLi4vZ3JhcGhpY3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFk
LmggICB8ICAgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOWY0NTEwLi40OTM4ZDVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzIgQEAKKzIwMTMtMDUtMjMgIFhpYW9ibyBXYW5nICA8eGlhb2J3YW5nQGJsYWNrYmVy
cnkuY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBEUlQgLSBjcmFzaGVkIG9uIEdyYXBoaWNz
Q29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjY1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFBSIDMzMTU1Mi4KKyAgICAgICAgSW50ZXJuYWxseSByZXZp
ZXdlZCBhbmQgYW1lbmRlZCBieSBBcnZpZCBOaWxzc29uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgdGhpcyBwYXRjaCBpcyB0byBmaXggRFJUIGNyYXNoZXMgaW4gZmFzdC9jYW52YXMvd2ViZ2wu
CisgICAgICAgIFRoZSBpbnN0YW5jZSBvZiBHcmFwaGljc0NvbnRleHQzRCBoYXMgYWxyZWFkeSBi
ZWVuIGRlc3Ryb3llZCBidXQKKyAgICAgICAgV2ViR0xMYXllcldlYktpdFRocmVhZCBpcyBub3Qg
YXdhcmUgb2YgdGhhdC4gVGhpcyBpcyBiZWNhdXNlIGNvbXBvc2l0b3IKKyAgICAgICAgbGF5ZXIg
b2YgdGhlIFdlYkdMIGdyYXBoaWNzIGNvbnRleHQgd2FzIHJlZmVyZW5jZWQgb3V0c2lkZSB0aGUg
Y29udGV4dC4KKyAgICAgICAgU28gd2hlbiBkZXN0cnVjdGluZyBHcmFwaGljc0NvbnRleHQzRCB0
aGUgY29tcG9zaXRpbmcgbGF5ZXIgd2FzIG5vdAorICAgICAgICBkZXN0cnVjdGVkLgorICAgICAg
ICBGaXggYnkgc2V0dGluZyBtX3dlYkdMQ29udGV4dCB0byAwIHdoZW4gZGVzdHJ1Y3RpbmcgR3Jh
cHRoaWNzQ29udGV4dDNECisgICAgICAgIGFmdGVyIHJlbGVhc2luZyB0aGUgY29tcG9zaXRvciBs
YXllciwgc28gdGhhdCBpdCB3b24ndCBiZSBkZS1yZWZlcmVuY2VkCisgICAgICAgIGFnYWluIGxh
dGVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9HcmFwaGljc0Nv
bnRleHQzREJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6On5HcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMTGF5ZXJXZWJLaXRUaHJlYWQ6On5XZWJHTExheWVyV2ViS2l0VGhyZWFkKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMTGF5ZXJXZWJLaXRUaHJlYWQ6OndlYkdMQ29udGV4dERlc3Ryb3llZCk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2Jl
cnJ5L1dlYkdMTGF5ZXJXZWJLaXRUaHJlYWQuaDoKKyAgICAgICAgKFdlYkdMTGF5ZXJXZWJLaXRU
aHJlYWQpOgorCiAyMDEzLTA1LTIzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1
bGFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQmFjaywgRm9yd2FyZCBhbmQgU3RvcCBz
aG91bGQgYmUgaGlkZGVuIGluIGNvbnRleHQgbWVudQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9HcmFwaGljc0NvbnRleHQzREJsYWNrQmVy
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9HcmFw
aGljc0NvbnRleHQzREJsYWNrQmVycnkuY3BwCmluZGV4IGM5NGY4ZDYuLjhhMWU1YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvR3JhcGhp
Y3NDb250ZXh0M0RCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ibGFja2JlcnJ5L0dyYXBoaWNzQ29udGV4dDNEQmxhY2tCZXJyeS5jcHAKQEAgLTEy
Nyw3ICsxMjcsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAg
ICAgICAgOjpnbERlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9mYm8pOwogICAgIH0KIAotICAgIG1f
Y29tcG9zaXRpbmdMYXllciA9IDA7IC8vIE11c3QgcmVsZWFzZSBjb21wb3NpdGluZyBsYXllciBi
ZWZvcmUgZGVzdHJveWluZyB0aGUgY29udGV4dC4KKyAgICBzdGF0aWNfY2FzdDxXZWJHTExheWVy
V2ViS2l0VGhyZWFkICo+KG1fY29tcG9zaXRpbmdMYXllci5nZXQoKSktPndlYkdMQ29udGV4dERl
c3Ryb3llZCgpOyAvLyBNdXN0IHJlbGVhc2UgY29tcG9zaXRpbmcgbGF5ZXIgYmVmb3JlIGRlc3Ry
b3lpbmcgdGhlIGNvbnRleHQuCiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpk
ZXN0cm95V2ViR0xDb250ZXh0KG1fY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvV2ViR0xMYXllcldlYktpdFRocmVh
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L1dlYkdM
TGF5ZXJXZWJLaXRUaHJlYWQuY3BwCmluZGV4IGZkMTU5ZDMuLjk0YzI1YWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvV2ViR0xMYXllcldl
YktpdFRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFkLmNwcApAQCAtMzQsOCArMzQsNyBAQCBXZWJH
TExheWVyV2ViS2l0VGhyZWFkOjpXZWJHTExheWVyV2ViS2l0VGhyZWFkKCkKIAogV2ViR0xMYXll
cldlYktpdFRocmVhZDo6fldlYkdMTGF5ZXJXZWJLaXRUaHJlYWQoKQogewotICAgIGlmIChtX3dl
YkdMQ29udGV4dCAmJiBtX3dlYkdMQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCi0gICAg
ICAgIGRlbGV0ZUZyb250QnVmZmVyKCk7CisgICAgZGVsZXRlVGV4dHVyZXMoKTsKIH0KIAogdm9p
ZCBXZWJHTExheWVyV2ViS2l0VGhyZWFkOjp1cGRhdGVUZXh0dXJlQ29udGVudHNJZk5lZWRlZCgp
CkBAIC01NCw2ICs1MywxMiBAQCB2b2lkIFdlYkdMTGF5ZXJXZWJLaXRUaHJlYWQ6OmRlbGV0ZVRl
eHR1cmVzKCkKICAgICAgICAgZGVsZXRlRnJvbnRCdWZmZXIoKTsKIH0KIAordm9pZCBXZWJHTExh
eWVyV2ViS2l0VGhyZWFkOjp3ZWJHTENvbnRleHREZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZVRl
eHR1cmVzKCk7CisgICAgbV93ZWJHTENvbnRleHQgPSAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEVOQUJM
RShXRUJHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Js
YWNrYmVycnkvV2ViR0xMYXllcldlYktpdFRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFkLmgKaW5kZXggMTQ4
MGYyNS4uNzVmZTBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9XZWJHTExheWVyV2ViS2l0VGhyZWFkLmgK
QEAgLTM3LDYgKzM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYkdMTGF5ZXJXZWJLaXRU
aHJlYWQoKTsKIAogICAgIHZvaWQgc2V0V2ViR0xDb250ZXh0KEdyYXBoaWNzQ29udGV4dDNEKiBj
b250ZXh0KSB7IG1fd2ViR0xDb250ZXh0ID0gY29udGV4dDsgfQorICAgIHZvaWQgd2ViR0xDb250
ZXh0RGVzdHJveWVkKCk7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGV4
dHVyZUNvbnRlbnRzSWZOZWVkZWQoKTsKLS0gCjEuNy45LjUKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>