<?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>136981</bug_id>
          
          <creation_ts>2014-09-20 23:58:41 -0700</creation_ts>
          <short_desc>ArgumentEncoder::encode does not support std::chrono::duration on some platforms</short_desc>
          <delta_ts>2014-10-28 21:04:28 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ting-Wei Lan">lantw44</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kwm</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1036330</commentid>
    <comment_count>0</comment_count>
    <who name="Ting-Wei Lan">lantw44</who>
    <bug_when>2014-09-20 23:58:41 -0700</bug_when>
    <thetext>This bug causes build failure for both webkitgtk-2.5.90 and trunk on FreeBSD 10 amd64.

In Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.cpp, line 100:
encoder &lt;&lt; maximumBufferingTime;

maximumBufferingTime is a std::chrono::milliseconds.


I found std::chrono::milliseconds is a long long in /usr/include/c++/v1/chrono.
https://llvm.org/svn/llvm-project/libcxx/trunk/include/chrono

ArgumentEncoder::encode (in Source/WebKit2/Platform/IPC/ArgumentEncoder.h) supports int32_t and int64_t. Unfortunately, neither of them are a typedef of long long (stdint.h -&gt; sys/_types.h -&gt; machine/_types.h -&gt; x86/_types.h), which causes build failure because the compiler cannot find the matching function.
Here is a copy of x86/_types.h: http://svn.freebsd.org/base/head/sys/x86/include/_types.h
__LP64__ is defined, so int32_t is a int and int64_t is a long.



The following are the error message:
In file included from /home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.cpp:29:
In file included from /home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentCoders.h:29:
In file included from /home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentDecoder.h:29:
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentCoder.h:37:10: error: member reference base type &apos;const long long&apos; is not a structure
      or union
        t.encode(encoder);
        ~^~~~~~~
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentEncoder.h:56:27: note: in instantiation of member function
      &apos;IPC::ArgumentCoder&lt;long long&gt;::encode&apos; requested here
        ArgumentCoder&lt;T&gt;::encode(*this, t);
                          ^
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentEncoder.h:61:9: note: in instantiation of function template specialization
      &apos;IPC::ArgumentEncoder::encode&lt;long long&gt;&apos; requested here
        encode(t);
        ^
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentCoders.h:110:17: note: in instantiation of function template specialization
      &apos;IPC::ArgumentEncoder::operator&lt;&lt;&lt;long long&gt;&apos; requested here
        encoder &lt;&lt; duration.count();
                ^
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentEncoder.h:56:27: note: in instantiation of member function
      &apos;IPC::ArgumentCoder&lt;std::__1::chrono::duration&lt;long long, std::__1::ratio&lt;1, 1000&gt; &gt; &gt;::encode&apos; requested here
        ArgumentCoder&lt;T&gt;::encode(*this, t);
                          ^
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentEncoder.h:61:9: note: in instantiation of function template specialization
      &apos;IPC::ArgumentEncoder::encode&lt;std::__1::chrono::duration&lt;long long, std::__1::ratio&lt;1, 1000&gt; &gt; &gt;&apos; requested here
        encode(t);
        ^
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.cpp:100:13: note: in instantiation of function template
      specialization &apos;IPC::ArgumentEncoder::operator&lt;&lt;&lt;std::__1::chrono::duration&lt;long long, std::__1::ratio&lt;1, 1000&gt; &gt; &gt;&apos; requested here
    encoder &lt;&lt; maximumBufferingTime;
            ^
In file included from /home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.cpp:29:
In file included from /home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentCoders.h:29:
In file included from /home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentDecoder.h:29:
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentCoder.h:42:16: error: type &apos;long long&apos; cannot be used prior to &apos;::&apos; because it has no
      members
        return T::decode(decoder, t);
               ^
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentDecoder.h:89:34: note: in instantiation of member function
      &apos;IPC::ArgumentCoder&lt;long long&gt;::decode&apos; requested here
        return ArgumentCoder&lt;T&gt;::decode(*this, t);
                                 ^
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentCoders.h:116:22: note: in instantiation of function template specialization
      &apos;IPC::ArgumentDecoder::decode&lt;long long&gt;&apos; requested here
        if (!decoder.decode(count))
                     ^
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Platform/IPC/ArgumentDecoder.h:89:34: note: in instantiation of member function
      &apos;IPC::ArgumentCoder&lt;std::__1::chrono::duration&lt;long long, std::__1::ratio&lt;1, 1000&gt; &gt; &gt;::decode&apos; requested here
        return ArgumentCoder&lt;T&gt;::decode(*this, t);
                                 ^
/home/lantw44/gnome/source/webkit-trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.cpp:160:18: note: in instantiation of function template
      specialization &apos;IPC::ArgumentDecoder::decode&lt;std::__1::chrono::duration&lt;long long, std::__1::ratio&lt;1, 1000&gt; &gt; &gt;&apos; requested here
    if (!decoder.decode(result.maximumBufferingTime))
                 ^
2 errors generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036331</commentid>
    <comment_count>1</comment_count>
      <attachid>238421</attachid>
    <who name="Ting-Wei Lan">lantw44</who>
    <bug_when>2014-09-20 23:59:59 -0700</bug_when>
    <thetext>Created attachment 238421
A simple patch to fix the build failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036354</commentid>
    <comment_count>2</comment_count>
      <attachid>238421</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-09-21 12:18:11 -0700</bug_when>
    <thetext>Comment on attachment 238421
A simple patch to fix the build failure

This is not the right way to fix the build failure. IPC should use fixed size types.

What C++ library are you using? It seems to be buggy or obsolete, std::chrono::milliseconds is of type std::chrono::duration, not a long long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036356</commentid>
    <comment_count>3</comment_count>
    <who name="Ting-Wei Lan">lantw44</who>
    <bug_when>2014-09-21 12:25:40 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 238421 [details])
&gt; This is not the right way to fix the build failure. IPC should use fixed size types.
I know it is not good to use long long directly, but there is no fixed size type which is a typedef of long long.

&gt; 
&gt; What C++ library are you using? It seems to be buggy or obsolete, std::chrono::milliseconds is of type std::chrono::duration, not a long long.
It should be std::chrono::duration&lt;long long, milli&gt;. I am sorry for the wrong information. FreeBSD 10 uses libc++ by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036362</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-09-21 12:56:04 -0700</bug_when>
    <thetext>There are an encoder and a decoder for duration in ArgumentCoders.h. Are they not matched by the compiler for some reason?

template&lt;typename Rep, typename Period&gt; struct ArgumentCoder&lt;std::chrono::duration&lt;Rep, Period&gt;&gt; {
    static void encode(ArgumentEncoder&amp; encoder, const std::chrono::duration&lt;Rep, Period&gt;&amp; duration)
    {
        encoder &lt;&lt; duration.count();
    }

    static bool decode(ArgumentDecoder&amp; decoder, std::chrono::duration&lt;Rep, Period&gt;&amp; result)
    {
        Rep count;
        if (!decoder.decode(count))
            return false;
        result = std::chrono::duration&lt;Rep, Period&gt;(count);
        return true;
    }
};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036413</commentid>
    <comment_count>5</comment_count>
    <who name="Ting-Wei Lan">lantw44</who>
    <bug_when>2014-09-21 19:02:11 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; There are an encoder and a decoder for duration in ArgumentCoders.h. Are they not matched by the compiler for some reason?
&gt; 
&gt; template&lt;typename Rep, typename Period&gt; struct ArgumentCoder&lt;std::chrono::duration&lt;Rep, Period&gt;&gt; {
&gt;     static void encode(ArgumentEncoder&amp; encoder, const std::chrono::duration&lt;Rep, Period&gt;&amp; duration)
&gt;     {
&gt;         encoder &lt;&lt; duration.count();
&gt;     }
&gt; 
&gt;     static bool decode(ArgumentDecoder&amp; decoder, std::chrono::duration&lt;Rep, Period&gt;&amp; result)
&gt;     {
&gt;         Rep count;
&gt;         if (!decoder.decode(count))
&gt;             return false;
&gt;         result = std::chrono::duration&lt;Rep, Period&gt;(count);
&gt;         return true;
&gt;     }
&gt; };

encoder &lt;&lt; duration.count() causes it to go back to ArgumentEncoder. duration.count() is a long long, but there is no matching ArgumentEncoder::encode function. Neither int32_t nor int64_t is a long long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036430</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-09-21 22:42:35 -0700</bug_when>
    <thetext>Makes sense (int64_t is a long long on OS X).

In this case, the right fix is to have an explicit cast in ArgumentCoder for duration to a type that&apos;s guaranteed to be large enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036510</commentid>
    <comment_count>7</comment_count>
      <attachid>238475</attachid>
    <who name="Ting-Wei Lan">lantw44</who>
    <bug_when>2014-09-22 04:11:26 -0700</bug_when>
    <thetext>Created attachment 238475
Cast std::chrono::duration.count() to int64_t in ArgumentCoder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036519</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-09-22 05:16:23 -0700</bug_when>
    <thetext>This also occurs on Linux when compiling with Clang and libc++. On these 64-bit systems int64_t is used to define the `long` type instead of `long long`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036520</commentid>
    <comment_count>9</comment_count>
      <attachid>238475</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-09-22 05:17:12 -0700</bug_when>
    <thetext>Comment on attachment 238475
Cast std::chrono::duration.count() to int64_t in ArgumentCoder

Marking this patch as reviewable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036548</commentid>
    <comment_count>10</comment_count>
      <attachid>238475</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-09-22 09:27:42 -0700</bug_when>
    <thetext>Comment on attachment 238475
Cast std::chrono::duration.count() to int64_t in ArgumentCoder

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

&gt; Source/WebKit2/Platform/IPC/ArgumentCoders.h:110
&gt; +        encoder &lt;&lt; static_cast&lt;int64_t&gt;(duration.count());

What guarantees that int64_t is big enough for Rep? Or that Rep is not a double?

I think that we need either a more specific coder, or a compile time assertion.

&gt; Source/WebKit2/Platform/IPC/ArgumentCoders.h:118
&gt; -        result = std::chrono::duration&lt;Rep, Period&gt;(count);
&gt; +        result = std::chrono::duration&lt;Rep, Period&gt;(static_cast&lt;Rep&gt;(count));

Shouldn&apos;t we verify that it doesn&apos;t overflow Rep? Data sent over IPC is untrusted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036554</commentid>
    <comment_count>11</comment_count>
    <who name="Ting-Wei Lan">lantw44</who>
    <bug_when>2014-09-22 10:31:59 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 238475 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238475&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Platform/IPC/ArgumentCoders.h:110
&gt; &gt; +        encoder &lt;&lt; static_cast&lt;int64_t&gt;(duration.count());
&gt; 
&gt; What guarantees that int64_t is big enough for Rep? Or that Rep is not a double?
I don&apos;t know whether int64_t is big enough, but I can make sure Rep is an integer.
The standard says: typedef duration&lt;signed integer type of at least 45 bits, milli&gt; milliseconds;

Do we really needs a type which is larger than int64_t to represent time? int64_t is already very large.

&gt; 
&gt; I think that we need either a more specific coder, or a compile time assertion.
&gt; 
&gt; &gt; Source/WebKit2/Platform/IPC/ArgumentCoders.h:118
&gt; &gt; -        result = std::chrono::duration&lt;Rep, Period&gt;(count);
&gt; &gt; +        result = std::chrono::duration&lt;Rep, Period&gt;(static_cast&lt;Rep&gt;(count));
&gt; 
&gt; Shouldn&apos;t we verify that it doesn&apos;t overflow Rep? Data sent over IPC is untrusted.
If we can solve the encoder problem, I think we can just use the same type in the decoder as in the encoder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043090</commentid>
    <comment_count>12</comment_count>
    <who name="Ting-Wei Lan">lantw44</who>
    <bug_when>2014-10-20 20:44:36 -0700</bug_when>
    <thetext>Can anyone review the patch again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043108</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-20 22:56:15 -0700</bug_when>
    <thetext>I thought that it still needed to be updated to address latest comments, wasn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043121</commentid>
    <comment_count>14</comment_count>
      <attachid>238475</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-10-21 00:02:47 -0700</bug_when>
    <thetext>Comment on attachment 238475
Cast std::chrono::duration.count() to int64_t in ArgumentCoder

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

&gt;&gt;&gt; Source/WebKit2/Platform/IPC/ArgumentCoders.h:110
&gt;&gt;&gt; +        encoder &lt;&lt; static_cast&lt;int64_t&gt;(duration.count());
&gt;&gt; 
&gt;&gt; What guarantees that int64_t is big enough for Rep? Or that Rep is not a double?
&gt;&gt; 
&gt;&gt; I think that we need either a more specific coder, or a compile time assertion.
&gt; 
&gt; I don&apos;t know whether int64_t is big enough, but I can make sure Rep is an integer.
&gt; The standard says: typedef duration&lt;signed integer type of at least 45 bits, milli&gt; milliseconds;
&gt; 
&gt; Do we really needs a type which is larger than int64_t to represent time? int64_t is already very large.

How about a static_assert here that checks that Rep is a signed 64-bit integer type? Something like:

    static_assert(std::is_integral&lt;Rep&gt;::value &amp;&amp; std::is_signed&lt;Rep&gt;::value &amp;&amp; sizeof(Rep) == sizeof(int64_t), &quot;Just to be sure.&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043176</commentid>
    <comment_count>15</comment_count>
      <attachid>240204</attachid>
    <who name="Ting-Wei Lan">lantw44</who>
    <bug_when>2014-10-21 08:08:40 -0700</bug_when>
    <thetext>Created attachment 240204
Cast std::chrono::duration.count() to int64_t in ArgumentCoder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043196</commentid>
    <comment_count>16</comment_count>
      <attachid>240204</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-21 09:45:24 -0700</bug_when>
    <thetext>Comment on attachment 240204
Cast std::chrono::duration.count() to int64_t in ArgumentCoder

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

&gt; Source/WebKit2/Platform/IPC/ArgumentCoders.h:110
&gt; +        static_assert(std::is_integral&lt;Rep&gt;::value &amp;&amp; std::is_signed&lt;Rep&gt;::value &amp;&amp; sizeof(Rep) &lt;= sizeof(int64_t), &quot;Rep should be an integer which can be fit in an int64_t.&quot;);

I would phrase this differently: &quot;Serialization of this Rep type is not supported yet.&quot; With the current phrasing, someone hitting this error will not know whether it&apos;s verifying that we never try to encode something else (for some unstated subtle reason), or if it&apos;s only documenting a current limitation.

Alternatively, we could only specialize the template for supported types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044513</commentid>
    <comment_count>17</comment_count>
      <attachid>240550</attachid>
    <who name="Ting-Wei Lan">lantw44</who>
    <bug_when>2014-10-28 09:59:54 -0700</bug_when>
    <thetext>Created attachment 240550
Cast std::chrono::duration.count() to int64_t in ArgumentCoder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044536</commentid>
    <comment_count>18</comment_count>
      <attachid>240554</attachid>
    <who name="Ting-Wei Lan">lantw44</who>
    <bug_when>2014-10-28 10:48:44 -0700</bug_when>
    <thetext>Created attachment 240554
Cast std::chrono::duration.count() to int64_t in ArgumentCoder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044693</commentid>
    <comment_count>19</comment_count>
      <attachid>240554</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-28 21:04:21 -0700</bug_when>
    <thetext>Comment on attachment 240554
Cast std::chrono::duration.count() to int64_t in ArgumentCoder

Clearing flags on attachment: 240554

Committed r175299: &lt;http://trac.webkit.org/changeset/175299&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044694</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-28 21:04:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238421</attachid>
            <date>2014-09-20 23:59:59 -0700</date>
            <delta_ts>2014-09-22 04:11:26 -0700</delta_ts>
            <desc>A simple patch to fix the build failure</desc>
            <filename>webkit-trunk-no-long-long.patch</filename>
            <type>text/plain</type>
            <size>2056</size>
            <attacher name="Ting-Wei Lan">lantw44</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudERlY29kZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudERlY29kZXIu
Y3BwCShyZXZpc2lvbiAxNzM3OTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJn
dW1lbnREZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDYgKzE5NiwxNSBAQAogICAg
IHJldHVybiB0cnVlOwogfQogCitib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKGxvbmcgbG9u
ZyYgcmVzdWx0KQoreworICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0
KSwgc2l6ZW9mKHJlc3VsdCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBkZWNvZGVW
YWx1ZUZyb21CdWZmZXIocmVzdWx0LCBtX2J1ZmZlclBvcyk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKIGJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUoZmxvYXQmIHJlc3VsdCkKIHsKICAgICBp
ZiAoIWFsaWduQnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQpKSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudERlY29kZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnREZWNvZGVyLmgJ
KHJldmlzaW9uIDE3Mzc5MikKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVu
dERlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogICAgIGJvb2wgZGVj
b2RlKHVpbnQ2NF90Jik7CiAgICAgYm9vbCBkZWNvZGUoaW50MzJfdCYpOwogICAgIGJvb2wgZGVj
b2RlKGludDY0X3QmKTsKKyAgICBib29sIGRlY29kZShsb25nIGxvbmcmKTsKICAgICBib29sIGRl
Y29kZShmbG9hdCYpOwogICAgIGJvb2wgZGVjb2RlKGRvdWJsZSYpOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRFbmNvZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRFbmNvZGVyLmNwcAkocmV2aXNpb24g
MTczNzkyKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50RW5jb2Rlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Niw2ICsxNzYsMTIgQEAKICAgICBjb3B5VmFsdWVUb0J1
ZmZlcihuLCBidWZmZXIpOwogfQogCit2b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKGxvbmcg
bG9uZyBuKQoreworICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2Yo
bikpOworICAgIGNvcHlWYWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7Cit9CisKIHZvaWQgQXJndW1l
bnRFbmNvZGVyOjplbmNvZGUoZmxvYXQgbikKIHsKICAgICB1aW50OF90KiBidWZmZXIgPSBncm93
KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9Bcmd1bWVudEVuY29kZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRFbmNvZGVyLmgJKHJldmlzaW9uIDE3Mzc5MikKKysrIFNvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudEVuY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzcs
NiArNzcsNyBAQAogICAgIHZvaWQgZW5jb2RlKHVpbnQ2NF90KTsKICAgICB2b2lkIGVuY29kZShp
bnQzMl90KTsKICAgICB2b2lkIGVuY29kZShpbnQ2NF90KTsKKyAgICB2b2lkIGVuY29kZShsb25n
IGxvbmcpOwogICAgIHZvaWQgZW5jb2RlKGZsb2F0KTsKICAgICB2b2lkIGVuY29kZShkb3VibGUp
OwogCg==
</data>
<flag name="review"
          id="263162"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238475</attachid>
            <date>2014-09-22 04:11:26 -0700</date>
            <delta_ts>2014-10-21 08:08:34 -0700</delta_ts>
            <desc>Cast std::chrono::duration.count() to int64_t in ArgumentCoder</desc>
            <filename>webkit-trunk-no-long-long-updated-bugreport.patch</filename>
            <type>text/plain</type>
            <size>1803</size>
            <attacher name="Ting-Wei Lan">lantw44</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MzgzMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE0LTA5LTIyICBUaW5nLVdl
aSBMYW4gIDxsYW50dzQ0QGdtYWlsLmNvbT4KKworICAgICAgICBDYXN0IHN0ZDo6Y2hyb25vOjpk
dXJhdGlvbi5jb3VudCgpIHRvIGludDY0X3QgaW4gQXJndW1lbnRDb2RlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTgxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwbGljaXRseSBjYXN0IHRoZSBy
ZXR1cm4gdmFsdWUgb2Ygc3RkOjpjaHJvbm86OmR1cmF0aW9uLmNvdW50KCkgdG8KKyAgICAgICAg
YSBmaXhlZC1zaXplIGludGVyZ2VyIHR5cGUsIHdoaWNoIHByZXZlbnRzIGNvbXBpbGF0aW9uIGVy
cm9yIHdoZW4KKyAgICAgICAgdGhlIHJldHVybiB2YWx1ZSB0eXBlIG1hdGNoZXMgbmVpdGhlciBp
bnQzMl90IG5vciBpbnQ2NF90LgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29k
ZXJzLmg6CisKIDIwMTQtMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9ucwpJbmRleDog
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgJKHJldmlzaW9u
IDE3MzgzMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsMTUgKzEwNywxNSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBVPiBzdHJ1Y3QgCiB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXAsIHR5cGVuYW1lIFBl
cmlvZD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpjaHJvbm86OmR1cmF0aW9uPFJlcCwgUGVy
aW9kPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxSZXAsIFBlcmlvZD4mIGR1cmF0aW9uKQogICAg
IHsKLSAgICAgICAgZW5jb2RlciA8PCBkdXJhdGlvbi5jb3VudCgpOworICAgICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PGludDY0X3Q+KGR1cmF0aW9uLmNvdW50KCkpOwogICAgIH0KIAogICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIHN0ZDo6Y2hyb25v
OjpkdXJhdGlvbjxSZXAsIFBlcmlvZD4mIHJlc3VsdCkKICAgICB7Ci0gICAgICAgIFJlcCBjb3Vu
dDsKKyAgICAgICAgaW50NjRfdCBjb3VudDsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShj
b3VudCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJlc3VsdCA9IHN0ZDo6
Y2hyb25vOjpkdXJhdGlvbjxSZXAsIFBlcmlvZD4oY291bnQpOworICAgICAgICByZXN1bHQgPSBz
dGQ6OmNocm9ubzo6ZHVyYXRpb248UmVwLCBQZXJpb2Q+KHN0YXRpY19jYXN0PFJlcD4oY291bnQp
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240204</attachid>
            <date>2014-10-21 08:08:40 -0700</date>
            <delta_ts>2014-10-28 09:59:50 -0700</delta_ts>
            <desc>Cast std::chrono::duration.count() to int64_t in ArgumentCoder</desc>
            <filename>bug-136981-20141021230846.patch</filename>
            <type>text/plain</type>
            <size>2164</size>
            <attacher name="Ting-Wei Lan">lantw44</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0OTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODEwMDQ4OWVjYjQwZjY2
MDgwNWEyOTlkOTBlNDdjOGYzNmVmYTg5OS4uMjkyNTg5YmJjYjZiMzUxMWFjNTE1YTMxNzMwMjNk
OGFkN2UwYmMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTEwLTIxICBUaW5n
LVdlaSBMYW4gIDxsYW50dzQ0QGdtYWlsLmNvbT4KKworICAgICAgICBDYXN0IHN0ZDo6Y2hyb25v
OjpkdXJhdGlvbi5jb3VudCgpIHRvIGludDY0X3QgaW4gQXJndW1lbnRDb2RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwbGljaXRseSBjYXN0IHRo
ZSByZXR1cm4gdmFsdWUgb2Ygc3RkOjpjaHJvbm86OmR1cmF0aW9uLmNvdW50KCkgdG8KKyAgICAg
ICAgYSBmaXhlZC1zaXplIGludGVyZ2VyIHR5cGUsIHdoaWNoIHByZXZlbnRzIGNvbXBpbGF0aW9u
IGVycm9yIHdoZW4KKyAgICAgICAgdGhlIHJldHVybiB2YWx1ZSB0eXBlIG1hdGNoZXMgbmVpdGhl
ciBpbnQzMl90IG5vciBpbnQ2NF90LgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmg6CisKIDIwMTQtMTAtMjAgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIENoYW5nZSB0aGUgZGVmYXVsdCBUTFMgZXJyb3JzIHBvbGlj
eSB0byBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfRkFJTApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAppbmRleCA2OGI2Njg2MGU2Yzc3Y2Y5MDA0M2QyOTQ3
ODEyOGNkNDY0ZDJlZjYyLi4wMDk1MWMzZWQxYjNiNmM5NTAyY2RiODBiMDk4NzAzMjY4NDU3MWU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAt
MTA3LDE1ICsxMDcsMTYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXAs
IHR5cGVuYW1lIFBlcmlvZD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpjaHJvbm86OmR1cmF0
aW9uPFJlcCwgUGVyaW9kPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxSZXAsIFBlcmlvZD4mIGR1
cmF0aW9uKQogICAgIHsKLSAgICAgICAgZW5jb2RlciA8PCBkdXJhdGlvbi5jb3VudCgpOworICAg
ICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8UmVwPjo6dmFsdWUgJiYgc3RkOjpp
c19zaWduZWQ8UmVwPjo6dmFsdWUgJiYgc2l6ZW9mKFJlcCkgPD0gc2l6ZW9mKGludDY0X3QpLCAi
UmVwIHNob3VsZCBiZSBhbiBpbnRlZ2VyIHdoaWNoIGNhbiBiZSBmaXQgaW4gYW4gaW50NjRfdC4i
KTsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxpbnQ2NF90PihkdXJhdGlvbi5jb3Vu
dCgpKTsKICAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBzdGQ6OmNocm9ubzo6ZHVyYXRpb248UmVwLCBQZXJpb2Q+JiByZXN1bHQpCiAgICAg
ewotICAgICAgICBSZXAgY291bnQ7CisgICAgICAgIGludDY0X3QgY291bnQ7CiAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoY291bnQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICByZXN1bHQgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb248UmVwLCBQZXJpb2Q+KGNvdW50KTsK
KyAgICAgICAgcmVzdWx0ID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uPFJlcCwgUGVyaW9kPihzdGF0
aWNfY2FzdDxSZXA+KGNvdW50KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240550</attachid>
            <date>2014-10-28 09:59:54 -0700</date>
            <delta_ts>2014-10-28 10:48:39 -0700</delta_ts>
            <desc>Cast std::chrono::duration.count() to int64_t in ArgumentCoder</desc>
            <filename>bug-136981-20141029010001.patch</filename>
            <type>text/plain</type>
            <size>2234</size>
            <attacher name="Ting-Wei Lan">lantw44</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjdmNDVhOWJjNzRiNjMz
YjNjODFmMmJmZmVjMjM5ZTJiMzNlZjg4OS4uMDEzYzcxODhjMTE4MjVmNWRlOGY1MjJhMjEwNTUx
YTA2ZGRiMmQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTEwLTI4ICBUaW5n
LVdlaSBMYW4gIDxsYW50dzQ0QGdtYWlsLmNvbT4KKworICAgICAgICBDYXN0IHN0ZDo6Y2hyb25v
OjpkdXJhdGlvbi5jb3VudCgpIHRvIGludDY0X3QgaW4gQXJndW1lbnRDb2RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwbGljaXRseSBjYXN0IHRo
ZSByZXR1cm4gdmFsdWUgb2Ygc3RkOjpjaHJvbm86OmR1cmF0aW9uLmNvdW50KCkgdG8KKyAgICAg
ICAgYSBmaXhlZC1zaXplIGludGVyZ2VyIHR5cGUsIHdoaWNoIHByZXZlbnRzIGNvbXBpbGF0aW9u
IGVycm9yIHdoZW4KKyAgICAgICAgdGhlIHJldHVybiB2YWx1ZSB0eXBlIG1hdGNoZXMgbmVpdGhl
ciBpbnQzMl90IG5vciBpbnQ2NF90LgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmg6CisKIDIwMTQtMTAtMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBPcHRpb25zR1RLLmNtYWtl
IGFuZCBORVdTIGZvciAyLjcuMSByZWxlYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvQXJndW1lbnRDb2RlcnMuaAppbmRleCA2OGI2Njg2MGU2Yzc3Y2Y5MDA0M2QyOTQ3ODEyOGNk
NDY0ZDJlZjYyLi44NjYwMjcwZjdmMTMyODFmMTRmYjBlZDZlZTgyZmViZmVlZGEzZjYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtMTA3LDE1
ICsxMDcsMTYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXAsIHR5cGVu
YW1lIFBlcmlvZD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpjaHJvbm86OmR1cmF0aW9uPFJl
cCwgUGVyaW9kPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxSZXAsIFBlcmlvZD4mIGR1cmF0aW9u
KQogICAgIHsKLSAgICAgICAgZW5jb2RlciA8PCBkdXJhdGlvbi5jb3VudCgpOworICAgICAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8UmVwPjo6dmFsdWUgJiYgc3RkOjppc19zaWdu
ZWQ8UmVwPjo6dmFsdWUgJiYgc2l6ZW9mKFJlcCkgPD0gc2l6ZW9mKGludDY0X3QpLCAiU2VyaWFs
aXphdGlvbiBvZiB0aGlzIFJlcCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgeWV0LiBPbmx5IHNpZ25l
ZCBpbnRlZ2VyIHR5cGUgd2hpY2ggY2FuIGJlIGZpdCBpbiBhbiBpbnQ2NF90IGlzIGN1cnJlbnRs
eSBzdXBwb3J0ZWQuIik7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8aW50NjRfdD4o
ZHVyYXRpb24uY291bnQoKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2Rlciwgc3RkOjpjaHJvbm86OmR1cmF0aW9uPFJlcCwgUGVyaW9kPiYg
cmVzdWx0KQogICAgIHsKLSAgICAgICAgUmVwIGNvdW50OworICAgICAgICBpbnQ2NF90IGNvdW50
OwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvdW50KSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgcmVzdWx0ID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uPFJlcCwgUGVy
aW9kPihjb3VudCk7CisgICAgICAgIHJlc3VsdCA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxSZXAs
IFBlcmlvZD4oc3RhdGljX2Nhc3Q8UmVwPihjb3VudCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240554</attachid>
            <date>2014-10-28 10:48:44 -0700</date>
            <delta_ts>2014-10-28 21:04:21 -0700</delta_ts>
            <desc>Cast std::chrono::duration.count() to int64_t in ArgumentCoder</desc>
            <filename>bug-136981-20141029014851.patch</filename>
            <type>text/plain</type>
            <size>2221</size>
            <attacher name="Ting-Wei Lan">lantw44</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTc5NGNlYzYyYTgzOTJm
MWEyMjUxNzAzZDRjYzQ3NTk2OWNhMTUwNy4uYzY0ZTU3NTJmNWY5Y2E4MDM5OTY5NTQ0MzUwMmIz
N2UxOWE0ZmYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTEwLTI4ICBUaW5n
LVdlaSBMYW4gIDxsYW50dzQ0QGdtYWlsLmNvbT4KKworICAgICAgICBDYXN0IHN0ZDo6Y2hyb25v
OjpkdXJhdGlvbi5jb3VudCgpIHRvIGludDY0X3QgaW4gQXJndW1lbnRDb2RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwbGljaXRseSBjYXN0IHRo
ZSByZXR1cm4gdmFsdWUgb2Ygc3RkOjpjaHJvbm86OmR1cmF0aW9uLmNvdW50KCkgdG8KKyAgICAg
ICAgYSBmaXhlZC1zaXplIGludGVyZ2VyIHR5cGUsIHdoaWNoIHByZXZlbnRzIGNvbXBpbGF0aW9u
IGVycm9yIHdoZW4KKyAgICAgICAgdGhlIHJldHVybiB2YWx1ZSB0eXBlIG1hdGNoZXMgbmVpdGhl
ciBpbnQzMl90IG5vciBpbnQ2NF90LgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmg6CisKIDIwMTQtMTAtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFuIGluYWNjdXJhdGUgY29tbWVudCBpbiBXS0FjdGlv
bk1lbnVDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENv
ZGVycy5oCmluZGV4IDY4YjY2ODYwZTZjNzdjZjkwMDQzZDI5NDc4MTI4Y2Q0NjRkMmVmNjIuLjg2
NjAyNzBmN2YxMzI4MWYxNGZiMGVkNmVlODJmZWJmZWVkYTNmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0xMDcsMTUgKzEwNywxNiBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6
OnBhaXI8VCwgVT4+IHsKIHRlbXBsYXRlPHR5cGVuYW1lIFJlcCwgdHlwZW5hbWUgUGVyaW9kPiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OmNocm9ubzo6ZHVyYXRpb248UmVwLCBQZXJpb2Q+PiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
c3RkOjpjaHJvbm86OmR1cmF0aW9uPFJlcCwgUGVyaW9kPiYgZHVyYXRpb24pCiAgICAgewotICAg
ICAgICBlbmNvZGVyIDw8IGR1cmF0aW9uLmNvdW50KCk7CisgICAgICAgIHN0YXRpY19hc3NlcnQo
c3RkOjppc19pbnRlZ3JhbDxSZXA+Ojp2YWx1ZSAmJiBzdGQ6OmlzX3NpZ25lZDxSZXA+Ojp2YWx1
ZSAmJiBzaXplb2YoUmVwKSA8PSBzaXplb2YoaW50NjRfdCksICJTZXJpYWxpemF0aW9uIG9mIHRo
aXMgUmVwIHR5cGUgaXMgbm90IHN1cHBvcnRlZCB5ZXQuIE9ubHkgc2lnbmVkIGludGVnZXIgdHlw
ZSB3aGljaCBjYW4gYmUgZml0IGluIGFuIGludDY0X3QgaXMgY3VycmVudGx5IHN1cHBvcnRlZC4i
KTsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxpbnQ2NF90PihkdXJhdGlvbi5jb3Vu
dCgpKTsKICAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBzdGQ6OmNocm9ubzo6ZHVyYXRpb248UmVwLCBQZXJpb2Q+JiByZXN1bHQpCiAgICAg
ewotICAgICAgICBSZXAgY291bnQ7CisgICAgICAgIGludDY0X3QgY291bnQ7CiAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoY291bnQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICByZXN1bHQgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb248UmVwLCBQZXJpb2Q+KGNvdW50KTsK
KyAgICAgICAgcmVzdWx0ID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uPFJlcCwgUGVyaW9kPihzdGF0
aWNfY2FzdDxSZXA+KGNvdW50KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>