<?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>105330</bug_id>
          
          <creation_ts>2012-12-18 11:16:01 -0800</creation_ts>
          <short_desc>REGRESSION(r137607): resource load client callbacks are not called for the main resource when loading HTML string</short_desc>
          <delta_ts>2013-01-08 01:38:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>105529</dependson>
    
    <dependson>105788</dependson>
          <blocked>106137</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>793853</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-18 11:16:01 -0800</bug_when>
    <thetext>Since r137607, the resource load client callbacks are not called when loading with substitute data. I think the problem is that MainResourceLoader is not a ResourceLoader anymore, and only main frame callback are called. This affects most of the WebKit2 GTK+ unit tests, that are timing out, because WebKit2GTK+ always expects main resource load callbacks to be emitted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793866</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-18 11:26:09 -0800</bug_when>
    <thetext>WebArchives and application cache both use substitute data, so this may well affect them, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794525</commentid>
    <comment_count>2</comment_count>
      <attachid>180134</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-19 04:53:42 -0800</bug_when>
    <thetext>Created attachment 180134
Patch

Notify the frame loader client about main resources loaded from substitute data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794564</commentid>
    <comment_count>3</comment_count>
      <attachid>180134</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-19 05:27:05 -0800</bug_when>
    <thetext>Comment on attachment 180134
Patch

Attachment 180134 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15411596

New failing tests:
fast/frames/frame-unload-crash2.html
http/tests/appcache/crash-when-navigating-away-then-back.html
fast/forms/number/number-spinbutton-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794665</commentid>
    <comment_count>4</comment_count>
      <attachid>180134</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-19 07:45:53 -0800</bug_when>
    <thetext>Comment on attachment 180134
Patch

Attachment 180134 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15411644

New failing tests:
platform/chromium/fast/forms/suggestion-picker/month-suggestion-picker-reset-value-after-reload.html
fast/forms/week-multiple-fields/week-multiple-fields-spinbutton-change-and-input-events.html
platform/chromium/fast/forms/suggestion-picker/week-suggestion-picker-reset-value-after-reload.html
platform/chromium/fast/forms/suggestion-picker/datetime-suggestion-picker-reset-value-after-reload.html
fast/forms/month-multiple-fields/month-multiple-fields-spinbutton-change-and-input-events.html
fast/forms/time-multiple-fields/time-multiple-fields-state-change-on-focus-or-blur.html
fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events.html
platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-reset-value-after-reload.html
fast/forms/number/number-spinbutton-crash.html
fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-spinbutton-change-and-input-events.html
fast/frames/frame-unload-crash2.html
fast/forms/date-multiple-fields/date-multiple-fields-spinbutton-change-and-input-events.html
platform/chromium/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-reset-value-after-reload.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794773</commentid>
    <comment_count>5</comment_count>
      <attachid>180188</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-19 10:02:46 -0800</bug_when>
    <thetext>Created attachment 180188
japhet&apos;s attempt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794824</commentid>
    <comment_count>6</comment_count>
      <attachid>180188</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-12-19 11:29:41 -0800</bug_when>
    <thetext>Comment on attachment 180188
japhet&apos;s attempt

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

&gt; Source/WebCore/loader/MainResourceLoader.cpp:697
&gt;  unsigned long MainResourceLoader::identifier() const
&gt;  {
&gt; +    if (m_identifier)
&gt; +        return m_identifier;
&gt;      if (ResourceLoader* resourceLoader = loader())
&gt;          return resourceLoader-&gt;identifier();

This breaks the &quot;setIdentifier&quot; API on ResourceLoader that WebKit2 relies on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794827</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-12-19 11:32:58 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 180188 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180188&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/MainResourceLoader.cpp:697
&gt; &gt;  unsigned long MainResourceLoader::identifier() const
&gt; &gt;  {
&gt; &gt; +    if (m_identifier)
&gt; &gt; +        return m_identifier;
&gt; &gt;      if (ResourceLoader* resourceLoader = loader())
&gt; &gt;          return resourceLoader-&gt;identifier();
&gt; 
&gt; This breaks the &quot;setIdentifier&quot; API on ResourceLoader that WebKit2 relies on.

Now that we&apos;ve made MainResourceLoader no longer be a ResourceLoader, we&apos;re going to start getting in to trouble as we diverge the two.  Having two copies of the identifier seems like a great first step towards breaking things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794830</commentid>
    <comment_count>8</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-19 11:34:54 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 180188 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180188&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/loader/MainResourceLoader.cpp:697
&gt; &gt; &gt;  unsigned long MainResourceLoader::identifier() const
&gt; &gt; &gt;  {
&gt; &gt; &gt; +    if (m_identifier)
&gt; &gt; &gt; +        return m_identifier;
&gt; &gt; &gt;      if (ResourceLoader* resourceLoader = loader())
&gt; &gt; &gt;          return resourceLoader-&gt;identifier();
&gt; &gt; 
&gt; &gt; This breaks the &quot;setIdentifier&quot; API on ResourceLoader that WebKit2 relies on.
&gt; 
&gt; Now that we&apos;ve made MainResourceLoader no longer be a ResourceLoader, we&apos;re going to start getting in to trouble as we diverge the two.  Having two copies of the identifier seems like a great first step towards breaking things.

MainResourceLoader::m_identifier should only be used when it is a SubstituteData load. In that case, there should not be a ResourceLoader. So there should still only be one identifier per load.

Should I consider an assert to that effect here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794849</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-12-19 12:04:37 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; (From update of attachment 180188 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180188&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/loader/MainResourceLoader.cpp:697
&gt; &gt; &gt; &gt;  unsigned long MainResourceLoader::identifier() const
&gt; &gt; &gt; &gt;  {
&gt; &gt; &gt; &gt; +    if (m_identifier)
&gt; &gt; &gt; &gt; +        return m_identifier;
&gt; &gt; &gt; &gt;      if (ResourceLoader* resourceLoader = loader())
&gt; &gt; &gt; &gt;          return resourceLoader-&gt;identifier();
&gt; &gt; &gt; 
&gt; &gt; &gt; This breaks the &quot;setIdentifier&quot; API on ResourceLoader that WebKit2 relies on.
&gt; &gt; 
&gt; &gt; Now that we&apos;ve made MainResourceLoader no longer be a ResourceLoader, we&apos;re going to start getting in to trouble as we diverge the two.  Having two copies of the identifier seems like a great first step towards breaking things.
&gt; 
&gt; MainResourceLoader::m_identifier should only be used when it is a SubstituteData load. In that case, there should not be a ResourceLoader. So there should still only be one identifier per load.
&gt; 
&gt; Should I consider an assert to that effect here?

Yes please.

On that note, I might also feel better about it having a different name, like in cgarcia&apos;s patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794851</commentid>
    <comment_count>10</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-19 12:09:34 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; &gt; (From update of attachment 180188 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180188&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/loader/MainResourceLoader.cpp:697
&gt; &gt; &gt; &gt; &gt;  unsigned long MainResourceLoader::identifier() const
&gt; &gt; &gt; &gt; &gt;  {
&gt; &gt; &gt; &gt; &gt; +    if (m_identifier)
&gt; &gt; &gt; &gt; &gt; +        return m_identifier;
&gt; &gt; &gt; &gt; &gt;      if (ResourceLoader* resourceLoader = loader())
&gt; &gt; &gt; &gt; &gt;          return resourceLoader-&gt;identifier();
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; This breaks the &quot;setIdentifier&quot; API on ResourceLoader that WebKit2 relies on.
&gt; &gt; &gt; 
&gt; &gt; &gt; Now that we&apos;ve made MainResourceLoader no longer be a ResourceLoader, we&apos;re going to start getting in to trouble as we diverge the two.  Having two copies of the identifier seems like a great first step towards breaking things.
&gt; &gt; 
&gt; &gt; MainResourceLoader::m_identifier should only be used when it is a SubstituteData load. In that case, there should not be a ResourceLoader. So there should still only be one identifier per load.
&gt; &gt; 
&gt; &gt; Should I consider an assert to that effect here?
&gt; 
&gt; Yes please.
&gt; 
&gt; On that note, I might also feel better about it having a different name, like in cgarcia&apos;s patch.

Yeah, that&apos;s a good point. Will do both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794858</commentid>
    <comment_count>11</comment_count>
      <attachid>180206</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-19 12:22:38 -0800</bug_when>
    <thetext>Created attachment 180206
Add an identifier ASSERT, rename m_identifier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794883</commentid>
    <comment_count>12</comment_count>
      <attachid>180215</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-19 13:18:07 -0800</bug_when>
    <thetext>Created attachment 180215
Fix a capitalization issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794920</commentid>
    <comment_count>13</comment_count>
      <attachid>180215</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-12-19 14:05:39 -0800</bug_when>
    <thetext>Comment on attachment 180215
Fix a capitalization issue

I kind of cringe at &quot;!loader()&quot; being the check for &quot;is this a data load&quot;, but I guess it already has precedent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794928</commentid>
    <comment_count>14</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-19 14:09:43 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 180215 [details])
&gt; I kind of cringe at &quot;!loader()&quot; being the check for &quot;is this a data load&quot;, but I guess it already has precedent.

Yeah :(

I had done it that way because I foresaw using the same if() statement to fake resource load callbacks for main resource cache hits (once cache hits are permitted). I can make it based on a non-zero m_substituteDataLoadIdentifier in the interim if you prefer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794936</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-12-19 14:15:51 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 180215 [details] [details])
&gt; &gt; I kind of cringe at &quot;!loader()&quot; being the check for &quot;is this a data load&quot;, but I guess it already has precedent.
&gt; 
&gt; Yeah :(
&gt; 
&gt; I had done it that way because I foresaw using the same if() statement to fake resource load callbacks for main resource cache hits (once cache hits are permitted). I can make it based on a non-zero m_substituteDataLoadIdentifier in the interim if you prefer.

We&apos;d still need a different check to *get* the substitute identifier, so then we&apos;d have two types of checks...  this is fine for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795171</commentid>
    <comment_count>16</comment_count>
      <attachid>180215</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-19 21:46:03 -0800</bug_when>
    <thetext>Comment on attachment 180215
Fix a capitalization issue

Clearing flags on attachment: 180215

Committed r138222: &lt;http://trac.webkit.org/changeset/138222&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795227</commentid>
    <comment_count>17</comment_count>
      <attachid>180134</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-19 23:47:29 -0800</bug_when>
    <thetext>Comment on attachment 180134
Patch

Clearing flags, landed patch works much better than mine, thanks Nate!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795350</commentid>
    <comment_count>18</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-12-20 04:14:38 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 180215 [details])
&gt; Clearing flags on attachment: 180215
&gt; 
&gt; Committed r138222: &lt;http://trac.webkit.org/changeset/138222&gt;

It caused a regression on Qt - see https://bugs.webkit.org/show_bug.cgi?id=105529 for details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797478</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-27 01:59:45 -0800</bug_when>
    <thetext>After this patch, http/tests/appcache/main-resource-redirect.html is crashing on EFL port. The reason for this is that ResourceLoadClient::didReceiveResponseForResource() is now called with 0 identifier (which is not a valid key in our HashTable).

Could you tell me if this is expected? If 0 is now a valid resource identifier, then I should probably use WTF::UnsignedWithZeroKeyHashTraits for our Resource HashTable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797484</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-27 02:17:45 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; After this patch, http/tests/appcache/main-resource-redirect.html is crashing on EFL port. The reason for this is that ResourceLoadClient::didReceiveResponseForResource() is now called with 0 identifier (which is not a valid key in our HashTable).
&gt; 
&gt; Could you tell me if this is expected? If 0 is now a valid resource identifier, then I should probably use WTF::UnsignedWithZeroKeyHashTraits for our Resource HashTable.

Sounds like a bug, I don&apos;t think 0 is a valid resource identifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797492</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-27 03:09:16 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; After this patch, http/tests/appcache/main-resource-redirect.html is crashing on EFL port. The reason for this is that ResourceLoadClient::didReceiveResponseForResource() is now called with 0 identifier (which is not a valid key in our HashTable).
&gt; &gt; 
&gt; &gt; Could you tell me if this is expected? If 0 is now a valid resource identifier, then I should probably use WTF::UnsignedWithZeroKeyHashTraits for our Resource HashTable.
&gt; 
&gt; Sounds like a bug, I don&apos;t think 0 is a valid resource identifier.

Thanks for your reply. I filed Bug 105788 to track the regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802136</commentid>
    <comment_count>22</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-08 01:38:23 -0800</bug_when>
    <thetext>This patch caused a serious memory leak. See the bug 106137.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180134</attachid>
            <date>2012-12-19 04:53:42 -0800</date>
            <delta_ts>2012-12-19 23:47:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-loader-substitute-data.diff</filename>
            <type>text/plain</type>
            <size>4985</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3YWI1OTBjLi40Y2MwMTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMTItMTkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJFR1JFU1NJT04ocjEzNzYwNyk6IHJlc291cmNlIGxvYWQgY2xpZW50IGNh
bGxiYWNrcyBhcmUgbm90IGNhbGxlZCBmb3IgdGhlIG1haW4gcmVzb3VyY2Ugd2hlbiBsb2FkaW5n
IEhUTUwgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDUzMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOb3RpZnkgdGhlIGZyYW1lIGxvYWRlciBjbGllbnQgYWJvdXQgbWFpbiByZXNvdXJjZXMg
bG9hZGVkIGZyb20KKyAgICAgICAgc3Vic3RpdHV0ZSBkYXRhLgorCisgICAgICAgICogbG9hZGVy
L01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6Ok1haW5SZXNvdXJjZUxvYWRlcik6IEluaXRpYWxpemUKKyAgICAgICAgbV9zdWJzdGl0
dXRlRGF0YVJlc291cmNlSWRlbnRpZmllci4KKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KTogQ3JlYXRlIGEgcmVzb3VyY2UKKyAgICAgICAgaWRl
bnRpZmllciBmb3IgdGhlIHN1YnN0aXR1dGUgZGF0YSBhbmQgbm90aWZ5IHRoZSBmcmFtZSBsb2Fk
ZXIKKyAgICAgICAgY2xpZW50LgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVy
Ojpjb250aW51ZUFmdGVyQ29udGVudFBvbGljeSk6IE5vdGlmeQorICAgICAgICB0aGUgZnJhbWUg
bG9hZGVyIGNsaWVudCBhYm91dCBkYXRhIHJlY2VpdmVkIGFuZCBsb2FkIGZpbmlzaCBpbgorICAg
ICAgICBjYXNlIG9mIGxvYWRpbmcgc3Vic3RpdHV0ZSBkYXRhLgorICAgICAgICAoV2ViQ29yZTo6
TWFpblJlc291cmNlTG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKTogTm90aWZ5IHRoZSBmcmFtZQor
ICAgICAgICBsb2FkZXIgY2xpZW50IGluIGNhc2Ugb2YgbG9hZGluZyBzdWJzdGl0dXRlIGRhdGEu
CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIpOiBSZXR1
cm4KKyAgICAgICAgbV9zdWJzdGl0dXRlRGF0YVJlc291cmNlSWRlbnRpZmllciB3aGVuIGxvYWRp
bmcgc3Vic3RpdHV0ZSBkYXRhLgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIu
aDoKKyAgICAgICAgKE1haW5SZXNvdXJjZUxvYWRlcik6IEFkZCBtX3N1YnN0aXR1dGVEYXRhUmVz
b3VyY2VJZGVudGlmaWVyCisgICAgICAgIG1lbWJlci4KKwogMjAxMi0xMi0xOSAgSWx5YSBUaWto
b25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjEzODEyOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5jcHAKaW5kZXggZjhiMGRiZS4uNzMwZmU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTY4LDcgKzY4LDggQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogTWFpblJlc291cmNlTG9hZGVyOjpNYWluUmVzb3VyY2VMb2FkZXIoRG9jdW1l
bnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKQotICAgIDogbV9kYXRhTG9hZFRpbWVyKHRoaXMsICZN
YWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdykKKyAgICA6IG1f
c3Vic3RpdHV0ZURhdGFSZXNvdXJjZUlkZW50aWZpZXIoMCkKKyAgICAsIG1fZGF0YUxvYWRUaW1l
cih0aGlzLCAmTWFpblJlc291cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3cp
CiAgICAgLCBtX2RvY3VtZW50TG9hZGVyKGRvY3VtZW50TG9hZGVyKQogICAgICwgbV9sb2FkaW5n
TXVsdGlwYXJ0Q29udGVudChmYWxzZSkKICAgICAsIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3ko
ZmFsc2UpCkBAIC0yMjMsNiArMjI0LDE0IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxs
U2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvCiAgICAg
Ly8gcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0OyBvbmUgZXhhbXBsZSBvZiB0aGlzIGlzIDMyNjYy
MTYuCiAgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKIAorICAg
IGlmIChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgeworICAgICAgICBpZiAoIW1fc3Vic3Rp
dHV0ZURhdGFSZXNvdXJjZUlkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIG1fc3Vic3RpdHV0ZURh
dGFSZXNvdXJjZUlkZW50aWZpZXIgPSBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpLT5wYWdlKCkt
PnByb2dyZXNzKCktPmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKKyAgICAgICAgICAgIGZyYW1l
TG9hZGVyKCktPmNsaWVudCgpLT5hc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdChtX3N1
YnN0aXR1dGVEYXRhUmVzb3VyY2VJZGVudGlmaWVyLCBkb2N1bWVudExvYWRlcigpLCBuZXdSZXF1
ZXN0KTsKKyAgICAgICAgfQorICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0
Y2hXaWxsU2VuZFJlcXVlc3QoZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCBuZXdSZXF1
ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB9CisKICAgICBpZiAoIWZyYW1lTG9hZGVyKCkt
PmNoZWNrSWZGb3JtQWN0aW9uQWxsb3dlZEJ5Q1NQKG5ld1JlcXVlc3QudXJsKCkpKSB7CiAgICAg
ICAgIGNhbmNlbCgpOwogICAgICAgICByZXR1cm47CkBAIC0zNDksMTAgKzM1OCwxNSBAQCB2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0
aW9uIGNvbnRlbnRQb2xpY3ksCiAgICAgfQogCiAgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5p
c1N0b3BwaW5nKCkgJiYgbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKLSAgICAgICAgaWYg
KG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCkpCisgICAgICAgIGlmIChtX3N1YnN0
aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpKSB7CiAgICAgICAgICAgICBkYXRhUmVjZWl2ZWQo
MCwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPmRhdGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5j
b250ZW50KCktPnNpemUoKSk7Ci0gICAgICAgIGlmICghbV9kb2N1bWVudExvYWRlci0+aXNTdG9w
cGluZygpKQorICAgICAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgoZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCBtX3N1
YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlm
ICghbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpKSB7CiAgICAgICAgICAgICBkaWRGaW5p
c2hMb2FkaW5nKDApOworICAgICAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRpc3Bh
dGNoRGlkRmluaXNoTG9hZGluZyhkb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKCkpOworICAg
ICAgICB9CiAgICAgfQogfQogCkBAIC00MTgsNiArNDMyLDcgQEAgdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBS
ZXNvdXIKIAogICAgIC8vIEFsd2F5cyBzaG93IGNvbnRlbnQgd2l0aCB2YWxpZCBzdWJzdGl0dXRl
IGRhdGEuCiAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVEYXRhKCkuaXNWYWxp
ZCgpKSB7CisgICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2Vp
dmVSZXNwb25zZShkb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKCksIHIpOwogICAgICAgICBj
YWxsQ29udGludWVBZnRlckNvbnRlbnRQb2xpY3kodGhpcywgUG9saWN5VXNlKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTY4MSw3ICs2OTYsNyBAQCB1bnNpZ25lZCBsb25nIE1haW5SZXNv
dXJjZUxvYWRlcjo6aWRlbnRpZmllcigpIGNvbnN0CiB7CiAgICAgaWYgKFJlc291cmNlTG9hZGVy
KiByZXNvdXJjZUxvYWRlciA9IGxvYWRlcigpKQogICAgICAgICByZXR1cm4gcmVzb3VyY2VMb2Fk
ZXItPmlkZW50aWZpZXIoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9zdWJzdGl0dXRl
RGF0YS5pc1ZhbGlkKCkgPyBtX3N1YnN0aXR1dGVEYXRhUmVzb3VyY2VJZGVudGlmaWVyIDogMDsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCmluZGV4
IDkxMjNjMGEuLjAzOWM2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNl
TG9hZGVyLmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBwcml2YXRlOgogCiAgICAgUmVzb3VyY2VSZXF1
ZXN0IG1faW5pdGlhbFJlcXVlc3Q7CiAgICAgU3Vic3RpdHV0ZURhdGEgbV9zdWJzdGl0dXRlRGF0
YTsKKyAgICB1bnNpZ25lZCBsb25nIG1fc3Vic3RpdHV0ZURhdGFSZXNvdXJjZUlkZW50aWZpZXI7
CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogCiAgICAgTWFpblJlc291cmNlTG9h
ZGVyVGltZXIgbV9kYXRhTG9hZFRpbWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180188</attachid>
            <date>2012-12-19 10:02:46 -0800</date>
            <delta_ts>2012-12-19 12:22:38 -0800</delta_ts>
            <desc>japhet&apos;s attempt</desc>
            <filename>callbacks.txt</filename>
            <type>text/plain</type>
            <size>3544</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODE3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEyLTE5ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMTM3NjA3
KTogcmVzb3VyY2UgbG9hZCBjbGllbnQgY2FsbGJhY2tzIGFyZSBub3QgY2FsbGVkIGZvciB0aGUg
bWFpbiByZXNvdXJjZSB3aGVuIGxvYWRpbmcgSFRNTCBzdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTMzMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlc3BvbnNlUmVj
ZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpkYXRhUmVjZWl2
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2Fk
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIpOgorICAgICAgICAq
IGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKE1haW5SZXNvdXJjZUxvYWRl
cik6CisKIDIwMTItMTItMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IHJlZ3Jlc3Npb24gZnJvbSByMTM3OTIzIHRoYXQgY2F1c2VkIGFsbCB0
aWxlcyB0byBwYWludCB3aGVuIHNjcm9sbGluZwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L01haW5SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9NYWluUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTM3NjExKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiAr
MTI4LDcgQEAKICAgICBib29sIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQ7CiAgICAgYm9vbCBt
X3dhaXRpbmdGb3JDb250ZW50UG9saWN5OwogICAgIGRvdWJsZSBtX3RpbWVPZkxhc3REYXRhUmVj
ZWl2ZWQ7CisgICAgdW5zaWduZWQgbG9uZyBtX2lkZW50aWZpZXI7CiAKICNpZiBQTEFURk9STShN
QUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA4MAogICAgIFdlYkZpbHRlckV2YWx1YXRvciAqbV9maWx0ZXI7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTM3NjEx
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxMiw2ICs0MTIsOSBAQAogCiAgICAgbV9yZXNwb25zZSA9IHI7CiAKKyAg
ICBpZiAoIWxvYWRlcigpKQorICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaXNw
YXRjaERpZFJlY2VpdmVSZXNwb25zZShkb2N1bWVudExvYWRlcigpLCBtX2lkZW50aWZpZXIsIG1f
cmVzcG9uc2UsIDApOworCiAgICAgQVNTRVJUKCFtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KTsK
ICAgICBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5ID0gdHJ1ZTsKICAgICByZWYoKTsgLy8gYmFs
YW5jZWQgYnkgZGVyZWYgaW4gY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kgYW5kIGNhbmNlbApA
QCAtNDc2LDYgKzQ3OSw5IEBACiAgICAgfQogI2VuZGlmCiAKKyAgICBpZiAoIWxvYWRlcigpKQor
ICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaXNwYXRjaERpZFJlY2VpdmVEYXRh
KGRvY3VtZW50TG9hZGVyKCksIG1faWRlbnRpZmllciwgZGF0YSwgbGVuZ3RoLCAtMSk7CisKICAg
ICBkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYWluUmVzb3VyY2VE
YXRhUmVjZWl2ZWQoZGF0YSwgbGVuZ3RoLCAtMSwgZmFsc2UpOwogCiAgICAgLy8gVGhlIGFkZGl0
aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8gYW55dGhpbmcgaW5jbHVkaW5nIHBvc3NpYmx5IHJlbW92
aW5nIHRoZSBsYXN0CkBAIC01MTMsNiArNTE5LDkgQEAKICAgICBSZWZQdHI8TWFpblJlc291cmNl
TG9hZGVyPiBwcm90ZWN0KHRoaXMpOwogICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gZGwgPSBk
b2N1bWVudExvYWRlcigpOwogCisgICAgaWYgKCFsb2FkZXIoKSkKKyAgICAgICAgZnJhbWVMb2Fk
ZXIoKS0+bm90aWZpZXIoKS0+ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGRvY3VtZW50TG9hZGVy
KCksIG1faWRlbnRpZmllciwgZmluaXNoVGltZSk7CisKICNpZiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAog
ICAgIGlmIChtX2ZpbHRlcikgewogICAgICAgICBpbnQgbGVuZ3RoOwpAQCAtNjM0LDYgKzY0Myw5
IEBACiAKICAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKICAgICAgICAgaGFu
ZGxlU3Vic3RpdHV0ZURhdGFMb2FkU29vbihyZXF1ZXN0KTsKKyAgICAgICAgbV9pZGVudGlmaWVy
ID0gbV9kb2N1bWVudExvYWRlci0+ZnJhbWUoKS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jcmVhdGVV
bmlxdWVJZGVudGlmaWVyKCk7CisgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmFz
c2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KG1faWRlbnRpZmllciwgZG9jdW1lbnRMb2Fk
ZXIoKSwgcmVxdWVzdCk7CisgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpc3Bh
dGNoV2lsbFNlbmRSZXF1ZXN0KGRvY3VtZW50TG9hZGVyKCksIG1faWRlbnRpZmllciwgcmVxdWVz
dCwgUmVzb3VyY2VSZXNwb25zZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNjc5
LDYgKzY5MSw4IEBACiAKIHVuc2lnbmVkIGxvbmcgTWFpblJlc291cmNlTG9hZGVyOjppZGVudGlm
aWVyKCkgY29uc3QKIHsKKyAgICBpZiAobV9pZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbV9p
ZGVudGlmaWVyOwogICAgIGlmIChSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIgPSBsb2Fk
ZXIoKSkKICAgICAgICAgcmV0dXJuIHJlc291cmNlTG9hZGVyLT5pZGVudGlmaWVyKCk7CiAgICAg
cmV0dXJuIDA7Cg==
</data>
<flag name="review"
          id="197369"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180206</attachid>
            <date>2012-12-19 12:22:38 -0800</date>
            <delta_ts>2012-12-19 13:18:07 -0800</delta_ts>
            <desc>Add an identifier ASSERT, rename m_identifier</desc>
            <filename>callbacks2.txt</filename>
            <type>text/plain</type>
            <size>4021</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODE3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEyLTE5ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMTM3NjA3
KTogcmVzb3VyY2UgbG9hZCBjbGllbnQgY2FsbGJhY2tzIGFyZSBub3QgY2FsbGVkIGZvciB0aGUg
bWFpbiByZXNvdXJjZSB3aGVuIGxvYWRpbmcgSFRNTCBzdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTMzMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlc3BvbnNlUmVj
ZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpkYXRhUmVjZWl2
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2Fk
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIpOgorICAgICAgICAq
IGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKE1haW5SZXNvdXJjZUxvYWRl
cik6CisKIDIwMTItMTItMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IHJlZ3Jlc3Npb24gZnJvbSByMTM3OTIzIHRoYXQgY2F1c2VkIGFsbCB0
aWxlcyB0byBwYWludCB3aGVuIHNjcm9sbGluZwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L01haW5SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9NYWluUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTM3NjExKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiAr
MTI4LDcgQEAKICAgICBib29sIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQ7CiAgICAgYm9vbCBt
X3dhaXRpbmdGb3JDb250ZW50UG9saWN5OwogICAgIGRvdWJsZSBtX3RpbWVPZkxhc3REYXRhUmVj
ZWl2ZWQ7CisgICAgdW5zaWduZWQgbG9uZyBtX3N1YnN0aXR1dGVEYXRhTG9hZGlkZW50aWZpZXI7
CiAKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIFdlYkZpbHRlckV2YWx1YXRvciAqbV9maWx0
ZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cAkocmV2aXNpb24gMTM3NjExKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDcgQEAKICAgICAsIG1fbG9h
ZGluZ011bHRpcGFydENvbnRlbnQoZmFsc2UpCiAgICAgLCBtX3dhaXRpbmdGb3JDb250ZW50UG9s
aWN5KGZhbHNlKQogICAgICwgbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkKDAuMCkKKyAgICAsIG1f
c3Vic3RpdHV0ZURhdGFMb2FkaWRlbnRpZmllcigwKQogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAg
ICAgLCBtX2ZpbHRlcigwKQogI2VuZGlmCkBAIC00MTIsNiArNDEzLDkgQEAKIAogICAgIG1fcmVz
cG9uc2UgPSByOwogCisgICAgaWYgKCFsb2FkZXIoKSkKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+
bm90aWZpZXIoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoZG9jdW1lbnRMb2FkZXIoKSwg
aWRlbnRpZmllcigpLCBtX3Jlc3BvbnNlLCAwKTsKKwogICAgIEFTU0VSVCghbV93YWl0aW5nRm9y
Q29udGVudFBvbGljeSk7CiAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IHRydWU7CiAg
ICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9s
aWN5IGFuZCBjYW5jZWwKQEAgLTQ3Niw2ICs0ODAsOSBAQAogICAgIH0KICNlbmRpZgogCisgICAg
aWYgKCFsb2FkZXIoKSkKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlzcGF0
Y2hEaWRSZWNlaXZlRGF0YShkb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKCksIGRhdGEsIGxl
bmd0aCwgLTEpOworCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3Qo
KS0+bWFpblJlc291cmNlRGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0aCwgLTEsIGZhbHNlKTsKIAog
ICAgIC8vIFRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvIGFueXRoaW5nIGluY2x1ZGlu
ZyBwb3NzaWJseSByZW1vdmluZyB0aGUgbGFzdApAQCAtNTEzLDYgKzUyMCw5IEBACiAgICAgUmVm
UHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKICAgICBSZWZQdHI8RG9jdW1l
bnRMb2FkZXI+IGRsID0gZG9jdW1lbnRMb2FkZXIoKTsKIAorICAgIGlmICghbG9hZGVyKCkpCisg
ICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpc3BhdGNoRGlkRmluaXNoTG9hZGlu
Zyhkb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKCksIGZpbmlzaFRpbWUpOworCiAjaWYgUExB
VEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwODAKICAgICBpZiAobV9maWx0ZXIpIHsKICAgICAgICAgaW50IGxlbmd0aDsK
QEAgLTYzNCw2ICs2NDQsOSBAQAogCiAgICAgaWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgp
KSB7CiAgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocmVxdWVzdCk7CisgICAg
ICAgIG1fc3Vic3RpdHV0ZURhdGFMb2FkaWRlbnRpZmllciA9IG1fZG9jdW1lbnRMb2FkZXItPmZy
YW1lKCktPnBhZ2UoKS0+cHJvZ3Jlc3MoKS0+Y3JlYXRlVW5pcXVlSWRlbnRpZmllcigpOworICAg
ICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5hc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFs
UmVxdWVzdChtX3N1YnN0aXR1dGVEYXRhTG9hZGlkZW50aWZpZXIsIGRvY3VtZW50TG9hZGVyKCks
IHJlcXVlc3QpOworICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaXNwYXRjaFdp
bGxTZW5kUmVxdWVzdChkb2N1bWVudExvYWRlcigpLCBtX3N1YnN0aXR1dGVEYXRhTG9hZGlkZW50
aWZpZXIsIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UoKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTY3OSw2ICs2OTIsOSBAQAogCiB1bnNpZ25lZCBsb25nIE1haW5SZXNvdXJjZUxv
YWRlcjo6aWRlbnRpZmllcigpIGNvbnN0CiB7CisgICAgQVNTRVJUKCFtX3N1YnN0aXR1dGVEYXRh
TG9hZGlkZW50aWZpZXIgfHwgIWxvYWRlcigpIHx8ICFsb2FkZXIoKS0+aWRlbnRpZmllcigpKTsK
KyAgICBpZiAobV9zdWJzdGl0dXRlRGF0YUxvYWRpZGVudGlmaWVyKQorICAgICAgICByZXR1cm4g
bV9zdWJzdGl0dXRlRGF0YUxvYWRpZGVudGlmaWVyOwogICAgIGlmIChSZXNvdXJjZUxvYWRlciog
cmVzb3VyY2VMb2FkZXIgPSBsb2FkZXIoKSkKICAgICAgICAgcmV0dXJuIHJlc291cmNlTG9hZGVy
LT5pZGVudGlmaWVyKCk7CiAgICAgcmV0dXJuIDA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180215</attachid>
            <date>2012-12-19 13:18:07 -0800</date>
            <delta_ts>2012-12-19 21:46:03 -0800</delta_ts>
            <desc>Fix a capitalization issue</desc>
            <filename>callbacks3.txt</filename>
            <type>text/plain</type>
            <size>4021</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODE3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEyLTE5ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMTM3NjA3
KTogcmVzb3VyY2UgbG9hZCBjbGllbnQgY2FsbGJhY2tzIGFyZSBub3QgY2FsbGVkIGZvciB0aGUg
bWFpbiByZXNvdXJjZSB3aGVuIGxvYWRpbmcgSFRNTCBzdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTMzMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlc3BvbnNlUmVj
ZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpkYXRhUmVjZWl2
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2Fk
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIpOgorICAgICAgICAq
IGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKE1haW5SZXNvdXJjZUxvYWRl
cik6CisKIDIwMTItMTItMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IHJlZ3Jlc3Npb24gZnJvbSByMTM3OTIzIHRoYXQgY2F1c2VkIGFsbCB0
aWxlcyB0byBwYWludCB3aGVuIHNjcm9sbGluZwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L01haW5SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9NYWluUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTM3NjExKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiAr
MTI4LDcgQEAKICAgICBib29sIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQ7CiAgICAgYm9vbCBt
X3dhaXRpbmdGb3JDb250ZW50UG9saWN5OwogICAgIGRvdWJsZSBtX3RpbWVPZkxhc3REYXRhUmVj
ZWl2ZWQ7CisgICAgdW5zaWduZWQgbG9uZyBtX3N1YnN0aXR1dGVEYXRhTG9hZElkZW50aWZpZXI7
CiAKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIFdlYkZpbHRlckV2YWx1YXRvciAqbV9maWx0
ZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cAkocmV2aXNpb24gMTM3NjExKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDcgQEAKICAgICAsIG1fbG9h
ZGluZ011bHRpcGFydENvbnRlbnQoZmFsc2UpCiAgICAgLCBtX3dhaXRpbmdGb3JDb250ZW50UG9s
aWN5KGZhbHNlKQogICAgICwgbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkKDAuMCkKKyAgICAsIG1f
c3Vic3RpdHV0ZURhdGFMb2FkSWRlbnRpZmllcigwKQogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAg
ICAgLCBtX2ZpbHRlcigwKQogI2VuZGlmCkBAIC00MTIsNiArNDEzLDkgQEAKIAogICAgIG1fcmVz
cG9uc2UgPSByOwogCisgICAgaWYgKCFsb2FkZXIoKSkKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+
bm90aWZpZXIoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoZG9jdW1lbnRMb2FkZXIoKSwg
aWRlbnRpZmllcigpLCBtX3Jlc3BvbnNlLCAwKTsKKwogICAgIEFTU0VSVCghbV93YWl0aW5nRm9y
Q29udGVudFBvbGljeSk7CiAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IHRydWU7CiAg
ICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9s
aWN5IGFuZCBjYW5jZWwKQEAgLTQ3Niw2ICs0ODAsOSBAQAogICAgIH0KICNlbmRpZgogCisgICAg
aWYgKCFsb2FkZXIoKSkKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlzcGF0
Y2hEaWRSZWNlaXZlRGF0YShkb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKCksIGRhdGEsIGxl
bmd0aCwgLTEpOworCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3Qo
KS0+bWFpblJlc291cmNlRGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0aCwgLTEsIGZhbHNlKTsKIAog
ICAgIC8vIFRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvIGFueXRoaW5nIGluY2x1ZGlu
ZyBwb3NzaWJseSByZW1vdmluZyB0aGUgbGFzdApAQCAtNTEzLDYgKzUyMCw5IEBACiAgICAgUmVm
UHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKICAgICBSZWZQdHI8RG9jdW1l
bnRMb2FkZXI+IGRsID0gZG9jdW1lbnRMb2FkZXIoKTsKIAorICAgIGlmICghbG9hZGVyKCkpCisg
ICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpc3BhdGNoRGlkRmluaXNoTG9hZGlu
Zyhkb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKCksIGZpbmlzaFRpbWUpOworCiAjaWYgUExB
VEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwODAKICAgICBpZiAobV9maWx0ZXIpIHsKICAgICAgICAgaW50IGxlbmd0aDsK
QEAgLTYzNCw2ICs2NDQsOSBAQAogCiAgICAgaWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgp
KSB7CiAgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocmVxdWVzdCk7CisgICAg
ICAgIG1fc3Vic3RpdHV0ZURhdGFMb2FkSWRlbnRpZmllciA9IG1fZG9jdW1lbnRMb2FkZXItPmZy
YW1lKCktPnBhZ2UoKS0+cHJvZ3Jlc3MoKS0+Y3JlYXRlVW5pcXVlSWRlbnRpZmllcigpOworICAg
ICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5hc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFs
UmVxdWVzdChtX3N1YnN0aXR1dGVEYXRhTG9hZElkZW50aWZpZXIsIGRvY3VtZW50TG9hZGVyKCks
IHJlcXVlc3QpOworICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaXNwYXRjaFdp
bGxTZW5kUmVxdWVzdChkb2N1bWVudExvYWRlcigpLCBtX3N1YnN0aXR1dGVEYXRhTG9hZElkZW50
aWZpZXIsIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UoKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTY3OSw2ICs2OTIsOSBAQAogCiB1bnNpZ25lZCBsb25nIE1haW5SZXNvdXJjZUxv
YWRlcjo6aWRlbnRpZmllcigpIGNvbnN0CiB7CisgICAgQVNTRVJUKCFtX3N1YnN0aXR1dGVEYXRh
TG9hZElkZW50aWZpZXIgfHwgIWxvYWRlcigpIHx8ICFsb2FkZXIoKS0+aWRlbnRpZmllcigpKTsK
KyAgICBpZiAobV9zdWJzdGl0dXRlRGF0YUxvYWRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4g
bV9zdWJzdGl0dXRlRGF0YUxvYWRJZGVudGlmaWVyOwogICAgIGlmIChSZXNvdXJjZUxvYWRlciog
cmVzb3VyY2VMb2FkZXIgPSBsb2FkZXIoKSkKICAgICAgICAgcmV0dXJuIHJlc291cmNlTG9hZGVy
LT5pZGVudGlmaWVyKCk7CiAgICAgcmV0dXJuIDA7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>