<?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>10765</bug_id>
          
          <creation_ts>2006-09-07 01:25:47 -0700</creation_ts>
          <short_desc>Windows build busted due to std::copy usage in Vector.h</short_desc>
          <delta_ts>2006-09-12 23:53:05 -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>420+</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Fisher (:fishd, Google)">fishd</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>54950</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2006-09-07 01:25:47 -0700</bug_when>
    <thetext>Windows build busted due to std::copy usage in Vector.h

Here are the build errors in all their glory:

C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2282) : error C2220: warning treated as error - no &apos;object&apos; file generated
C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2282) : warning C4996: &apos;std::_Copy_opt&apos; was declared deprecated
        C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2270) : see declaration of &apos;std::_Copy_opt&apos;
        Message: &apos;You have used a std:: construct that is not safe. See documentation on how to use the Safe Standard C++ Library&apos;
        c:\builds\WebKit\JavaScriptCore\wtf/Vector.h(447) : see reference to function template instantiation &apos;_OutIt std::copy&lt;const WebCore::StyleDashboardRegion*,WebCore::StyleDashboardRegion*&gt;(_InIt,_InIt,_OutIt)&apos; being compiled
        with
        [
            _OutIt=WebCore::StyleDashboardRegion *,
            _InIt=const WebCore::StyleDashboardRegion *
        ]
        c:\builds\WebKit\JavaScriptCore\wtf/Vector.h(436) : while compiling class template member function &apos;WTF::Vector&lt;T&gt; &amp;WTF::Vector&lt;T&gt;::operator =(const WTF::Vector&lt;T&gt; &amp;)&apos;
        with
        [
            T=WebCore::StyleDashboardRegion
        ]
        c:\builds\webkit\webcore\rendering\RenderStyle.h(737) : see reference to class template instantiation &apos;WTF::Vector&lt;T&gt;&apos; being compiled
        with
        [
            T=WebCore::StyleDashboardRegion
        ]
WebFrame.cpp
C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2282) : error C2220: warning treated as error - no &apos;object&apos; file generated
C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2282) : warning C4996: &apos;std::_Copy_opt&apos; was declared deprecated
        C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2270) : see declaration of &apos;std::_Copy_opt&apos;
        Message: &apos;You have used a std:: construct that is not safe. See documentation on how to use the Safe Standard C++ Library&apos;
        c:\builds\WebKit\JavaScriptCore\wtf/Vector.h(447) : see reference to function template instantiation &apos;_OutIt std::copy&lt;const WebCore::StyleDashboardRegion*,WebCore::StyleDashboardRegion*&gt;(_InIt,_InIt,_OutIt)&apos; being compiled
        with
        [
            _OutIt=WebCore::StyleDashboardRegion *,
            _InIt=const WebCore::StyleDashboardRegion *
        ]
        c:\builds\WebKit\JavaScriptCore\wtf/Vector.h(436) : while compiling class template member function &apos;WTF::Vector&lt;T&gt; &amp;WTF::Vector&lt;T&gt;::operator =(const WTF::Vector&lt;T&gt; &amp;)&apos;
        with
        [
            T=WebCore::StyleDashboardRegion
        ]
        c:\builds\webkit\webcore\rendering\RenderStyle.h(737) : see reference to class template instantiation &apos;WTF::Vector&lt;T&gt;&apos; being compiled
        with
        [
            T=WebCore::StyleDashboardRegion
        ]
WebView.cpp
C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2282) : error C2220: warning treated as error - no &apos;object&apos; file generated
C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2282) : warning C4996: &apos;std::_Copy_opt&apos; was declared deprecated
        C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2270) : see declaration of &apos;std::_Copy_opt&apos;
        Message: &apos;You have used a std:: construct that is not safe. See documentation on how to use the Safe Standard C++ Library&apos;
        c:\builds\WebKit\JavaScriptCore\wtf/Vector.h(447) : see reference to function template instantiation &apos;_OutIt std::copy&lt;const WebCore::StyleDashboardRegion*,WebCore::StyleDashboardRegion*&gt;(_InIt,_InIt,_OutIt)&apos; being compiled
        with
        [
            _OutIt=WebCore::StyleDashboardRegion *,
            _InIt=const WebCore::StyleDashboardRegion *
        ]
        c:\builds\WebKit\JavaScriptCore\wtf/Vector.h(436) : while compiling class template member function &apos;WTF::Vector&lt;T&gt; &amp;WTF::Vector&lt;T&gt;::operator =(const WTF::Vector&lt;T&gt; &amp;)&apos;
        with
        [
            T=WebCore::StyleDashboardRegion
        ]
        c:\builds\webkit\webcore\rendering\RenderStyle.h(737) : see reference to class template instantiation &apos;WTF::Vector&lt;T&gt;&apos; being compiled
        with
        [
            T=WebCore::StyleDashboardRegion
        ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54951</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2006-09-07 01:32:48 -0700</bug_when>
    <thetext>Some more info about std::copy here:
http://lists.boost.org/Archives/boost/2005/07/89697.php</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54985</commentid>
    <comment_count>2</comment_count>
      <attachid>10437</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2006-09-07 11:21:56 -0700</bug_when>
    <thetext>Created attachment 10437
crappy patch to disable warning in certain source files

This patch is just a stop-gap measure to get things compiling again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55007</commentid>
    <comment_count>3</comment_count>
      <attachid>10444</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2006-09-07 15:36:36 -0700</bug_when>
    <thetext>Created attachment 10444
alternatve patch: no pragmas

This patch solves the problem a different way.  It just avoids std::copy altogether.  Note: for basic types that support memcpy, this is probably better since it replaces a for-loop + memcpy with a single memcpy.  For more complex types, it means an extra pass over the array, which might hurt locality of reference, so perhaps that&apos;s reason to poo-poo this patch :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55058</commentid>
    <comment_count>4</comment_count>
      <attachid>10444</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-09-08 09:41:00 -0700</bug_when>
    <thetext>Comment on attachment 10444
alternatve patch: no pragmas

I really like this approach.

But since std::copy is really just a while loop, there&apos;s no reason to change the semantics and possibly the performance characteristics just to get rid of std::copy.

We could just create a couple local variables and write the loop by hand to avoid the warning. Or write our own equivalent of the std::function.

I suggest we consider changing to the uninitializedCopy approach on its own merits rather than doing it as part of this change.

I&apos;m going to mark this review- because of that issue, even though I really like the direction of this fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55088</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2006-09-08 15:21:34 -0700</bug_when>
    <thetext>So, you would prefer a separate bug?  And, you would prefer a WTF::copy?  Or, should this be a TypeOperations::copy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55101</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-09-09 02:54:07 -0700</bug_when>
    <thetext>In STL implementations that I&apos;m familiar with (GCC, CodeWarrior), std::copy is not simply a while loop. Its implementation is in fact heavily overloaded:
- memmove for built-in and POD types (using compiler-specific ways to detect PODs);
- specialized algorithms for copying data in known containers (e.g., chunked copy for deques in MSL);
- a for loop for random access iterators in GCC (helps the optimizer);
- a while loop otherwise.

To duplicate the behavior for PODs, we&apos;d need to introduce quite a bit of compiler-specific code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55183</commentid>
    <comment_count>7</comment_count>
    <who name="Karthik Kumar">karthikkumar</who>
    <bug_when>2006-09-10 06:19:18 -0700</bug_when>
    <thetext>Why not simply:

...

        clear();
        reserveCapacity(other.size());
        
	  std::copy(other.begin(), other.begin() + size(), begin());

..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55186</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-09-10 08:23:09 -0700</bug_when>
    <thetext>After a bit of reading I have discovered that the warning is due to to Microsoft&apos;s &quot;Safe Standard C++ Library&quot; (http://msdn2.microsoft.com/en-US/library/ms404581.aspx), in particular the explicit use of &quot;Checked Iterators&quot; (http://msdn2.microsoft.com/en-US/library/y9ww7c1a.aspx) which involves the use of unchecked iterators emitting a compiler warning about deprecation.

I&apos;m not convinced that we should work around Microsofts deprecation of a standard library function by changes in the code.  Their &quot;Checked Iterators&quot; page (http://msdn2.microsoft.com/en-US/library/y9ww7c1a.aspx) two preprocessor constants that can be used to control the use of checked iterators.  Defining _SECURE_SCL_NO_DEPRECATE will disable the compile-time warnings that checked iterators can emit, and defining _SECURE_SCL to 0 will disable the use of checked iterators entirely.

With regards to Karthik&apos;s comment -- further discussion on IRC concluded that the body of operator= could be changed to:

        if (&amp;other == this)
            return *this;

        clear();
        reserveCapacity(other.size());
        TypeOperations::uninitializedCopy(other.begin(), other.end(), begin());
        m_size = other.size();

        return *this;

to retains the existing semantics while removing the call to std::copy.  It does change the performance characteristics somewhat in the case that size() &gt; other.size() || other.size() &lt; capacity(), but I&apos;m not sure as to what extent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55222</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2006-09-10 16:36:22 -0700</bug_when>
    <thetext>We can also try to make use of stdext::unchecked_copy when building on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55261</commentid>
    <comment_count>10</comment_count>
      <attachid>10504</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2006-09-11 13:09:35 -0700</bug_when>
    <thetext>Created attachment 10504
yet another patch: w/ replacement for std::copy

Here&apos;s a patch that implements and uses TypeOperations::copy instead of std::copy.  OK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55263</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-09-11 13:45:08 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I&apos;m not convinced that we should work around Microsofts deprecation of a
&gt; standard library function by changes in the code.

I can only second that. The &quot;deprecation&quot; warnings are there to help with adopting Microsoft&apos;s checked iterators - not something we are likely to do, as far as I can tell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55272</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2006-09-11 18:07:56 -0700</bug_when>
    <thetext>So, do you guys prefer a patch that disables the warnings altogether instead?

(By the way, it sucks that the build has been broken for so long because of this problem.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55274</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-09-11 19:05:04 -0700</bug_when>
    <thetext>It seems that Alexey and myself would both prefer that.  I would have provided a patch myself, but as I don&apos;t use Windows I have no means to create one.  These problems don&apos;t just fix themselves :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55278</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2006-09-11 19:41:44 -0700</bug_when>
    <thetext>OK, can you and Darin come to some agreement?  (I don&apos;t know who gets to decide what the right solution is, but you guys don&apos;t seem to be in agreement!)  I&apos;m happy to provide a patch for whatever solution will be accepted :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55282</commentid>
    <comment_count>15</comment_count>
      <attachid>10508</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2006-09-11 21:42:02 -0700</bug_when>
    <thetext>Created attachment 10508
alternate patch: define _SCL_SECURE_NO_DEPRECATE to kill warning

OK, this patch implements the suggested vcproj change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55284</commentid>
    <comment_count>16</comment_count>
      <attachid>10508</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2006-09-11 22:31:02 -0700</bug_when>
    <thetext>Comment on attachment 10508
alternate patch: define _SCL_SECURE_NO_DEPRECATE to kill warning

r=me. This will get the build working, and we can discuss the merits of the other approach later. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55285</commentid>
    <comment_count>17</comment_count>
      <attachid>10508</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2006-09-11 22:32:22 -0700</bug_when>
    <thetext>Comment on attachment 10508
alternate patch: define _SCL_SECURE_NO_DEPRECATE to kill warning

Landed as r16317.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10437</attachid>
            <date>2006-09-07 11:21:56 -0700</date>
            <delta_ts>2006-09-07 15:36:36 -0700</delta_ts>
            <desc>crappy patch to disable warning in certain source files</desc>
            <filename>no-warn-1.diff</filename>
            <type>text/plain</type>
            <size>1115</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYlZpZXcuY3BwCShyZXZpc2lvbiAx
NjI1OCkKKysrIFdlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw4IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKICAqLwogCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDk5NikgIC8v
IHdvcmthcm91bmQgYnVnIDEwNzY1CisKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJLaXRETEwuaCIKIApJbmRleDogV2ViRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkZyYW1l
LmNwcAkocmV2aXNpb24gMTYyNTgpCisrKyBXZWJGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIzLDYgKzIzLDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNwcmFnbWEgd2FybmluZyhk
aXNhYmxlOiA0OTk2KSAgLy8gd29ya2Fyb3VuZCBidWcgMTA3NjUKKwogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldlYktpdERMTC5oIgogCkluZGV4OiBXZWJEYXRhU291cmNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJEYXRhU291cmNlLmNwcAkocmV2aXNpb24gMTYyNTgpCisrKyBXZWJE
YXRhU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOCBAQAogICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCiAgKi8KIAorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ5OTYpICAvLyB3b3JrYXJv
dW5kIGJ1ZyAxMDc2NQorCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0RExM
LmgiCiAjaW5jbHVkZSAiV2ViRGF0YVNvdXJjZS5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10444</attachid>
            <date>2006-09-07 15:36:36 -0700</date>
            <delta_ts>2006-09-11 13:09:35 -0700</delta_ts>
            <desc>alternatve patch: no pragmas</desc>
            <filename>alt-1.diff</filename>
            <type>text/plain</type>
            <size>1059</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS93dGYvVmVjdG9yLmgJKHJldmlzaW9uIDE2MjY0KQorKysgSmF2YVNjcmlwdENvcmUv
d3RmL1ZlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC00NDQsOCArNDQ0LDggQEAKICAgICAgICAg
ICAgIHJlc2VydmVDYXBhY2l0eShvdGhlci5zaXplKCkpOwogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICBzdGQ6OmNvcHkob3RoZXIuYmVnaW4oKSwgb3RoZXIuYmVnaW4oKSArIHNpemUoKSwg
YmVnaW4oKSk7Ci0gICAgICAgIFR5cGVPcGVyYXRpb25zOjp1bmluaXRpYWxpemVkQ29weShvdGhl
ci5iZWdpbigpICsgc2l6ZSgpLCBvdGhlci5lbmQoKSwgZW5kKCkpOworICAgICAgICBUeXBlT3Bl
cmF0aW9uczo6ZGVzdHJ1Y3QoYmVnaW4oKSwgZW5kKCkpOworICAgICAgICBUeXBlT3BlcmF0aW9u
czo6dW5pbml0aWFsaXplZENvcHkob3RoZXIuYmVnaW4oKSwgb3RoZXIuZW5kKCksIGJlZ2luKCkp
OwogICAgICAgICBtX3NpemUgPSBvdGhlci5zaXplKCk7CiAKICAgICAgICAgcmV0dXJuICp0aGlz
OwpAQCAtNDY1LDggKzQ2NSw4IEBACiAgICAgICAgICAgICByZXNlcnZlQ2FwYWNpdHkob3RoZXIu
c2l6ZSgpKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgc3RkOjpjb3B5KG90aGVyLmJl
Z2luKCksIG90aGVyLmJlZ2luKCkgKyBzaXplKCksIGJlZ2luKCkpOwotICAgICAgICBUeXBlT3Bl
cmF0aW9uczo6dW5pbml0aWFsaXplZENvcHkob3RoZXIuYmVnaW4oKSArIHNpemUoKSwgb3RoZXIu
ZW5kKCksIGVuZCgpKTsKKyAgICAgICAgVHlwZU9wZXJhdGlvbnM6OmRlc3RydWN0KGJlZ2luKCks
IGVuZCgpKTsKKyAgICAgICAgVHlwZU9wZXJhdGlvbnM6OnVuaW5pdGlhbGl6ZWRDb3B5KG90aGVy
LmJlZ2luKCksIG90aGVyLmVuZCgpLCBiZWdpbigpKTsKICAgICAgICAgbV9zaXplID0gb3RoZXIu
c2l6ZSgpOwogCiAgICAgICAgIHJldHVybiAqdGhpczsK
</data>
<flag name="review"
          id="3354"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10504</attachid>
            <date>2006-09-11 13:09:35 -0700</date>
            <delta_ts>2006-09-12 23:53:05 -0700</delta_ts>
            <desc>yet another patch: w/ replacement for std::copy</desc>
            <filename>vec-1.diff</filename>
            <type>text/plain</type>
            <size>2271</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IFZlY3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZlY3Rvci5oCShyZXZpc2lvbiAxNjMwMCkK
KysrIFZlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNiArMTM2LDE0IEBACiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4KICAgICBzdHJ1Y3QgVmVjdG9yQ29waWVyPGZhbHNlLCBUPgogICAg
IHsKKyAgICAgICAgc3RhdGljIHZvaWQgY29weShjb25zdCBUKiBzcmMsIGNvbnN0IFQqIHNyY0Vu
ZCwgVCogZHN0KQorICAgICAgICB7CisgICAgICAgICAgICB3aGlsZSAoc3JjICE9IHNyY0VuZCkg
eworICAgICAgICAgICAgICAgICpkc3QgPSAqc3JjOworICAgICAgICAgICAgICAgICsrZHN0Owor
ICAgICAgICAgICAgICAgICsrc3JjOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAg
IHN0YXRpYyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5KGNvbnN0IFQqIHNyYywgY29uc3QgVCogc3Jj
RW5kLCBUKiBkc3QpIAogICAgICAgICB7CiAgICAgICAgICAgICB3aGlsZSAoc3JjICE9IHNyY0Vu
ZCkgewpAQCAtMTQ5LDYgKzE1NywxMCBAQAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAg
c3RydWN0IFZlY3RvckNvcGllcjx0cnVlLCBUPgogICAgIHsKKyAgICAgICAgc3RhdGljIHZvaWQg
Y29weShjb25zdCBUKiBzcmMsIGNvbnN0IFQqIHNyY0VuZCwgVCogZHN0KQorICAgICAgICB7Cisg
ICAgICAgICAgICBtZW1jcHkoZHN0LCBzcmMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhciAq
PihzcmNFbmQpIC0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyICo+KHNyYykpOworICAgICAg
ICB9CiAgICAgICAgIHN0YXRpYyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5KGNvbnN0IFQqIHNyYywg
Y29uc3QgVCogc3JjRW5kLCBUKiBkc3QpIAogICAgICAgICB7CiAgICAgICAgICAgICBtZW1jcHko
ZHN0LCBzcmMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhciAqPihzcmNFbmQpIC0gcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyICo+KHNyYykpOwpAQCAtMjAzLDYgKzIxNSwxMSBAQAogICAg
ICAgICAgICAgVmVjdG9yTW92ZXI8VmVjdG9yVHJhaXRzPFQ+OjpjYW5Nb3ZlV2l0aE1lbWNweSwg
VD46Om1vdmVPdmVybGFwcGluZyhzcmMsIHNyY0VuZCwgZHN0KTsKICAgICAgICAgfQogCisgICAg
ICAgIHN0YXRpYyB2b2lkIGNvcHkoY29uc3QgVCogc3JjLCBjb25zdCBUKiBzcmNFbmQsIFQqIGRz
dCkKKyAgICAgICAgeworICAgICAgICAgICAgVmVjdG9yQ29waWVyPFZlY3RvclRyYWl0czxUPjo6
Y2FuQ29weVdpdGhNZW1jcHksIFQ+Ojpjb3B5KHNyYywgc3JjRW5kLCBkc3QpOworICAgICAgICB9
CisKICAgICAgICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENvcHkoY29uc3QgVCogc3JjLCBj
b25zdCBUKiBzcmNFbmQsIFQqIGRzdCkKICAgICAgICAgewogICAgICAgICAgICAgVmVjdG9yQ29w
aWVyPFZlY3RvclRyYWl0czxUPjo6Y2FuQ29weVdpdGhNZW1jcHksIFQ+Ojp1bmluaXRpYWxpemVk
Q29weShzcmMsIHNyY0VuZCwgZHN0KTsKQEAgLTQ0NCw3ICs0NjEsNyBAQAogICAgICAgICAgICAg
cmVzZXJ2ZUNhcGFjaXR5KG90aGVyLnNpemUoKSk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIHN0ZDo6Y29weShvdGhlci5iZWdpbigpLCBvdGhlci5iZWdpbigpICsgc2l6ZSgpLCBiZWdp
bigpKTsKKyAgICAgICAgVHlwZU9wZXJhdGlvbnM6OmNvcHkob3RoZXIuYmVnaW4oKSwgb3RoZXIu
YmVnaW4oKSArIHNpemUoKSwgYmVnaW4oKSk7CiAgICAgICAgIFR5cGVPcGVyYXRpb25zOjp1bmlu
aXRpYWxpemVkQ29weShvdGhlci5iZWdpbigpICsgc2l6ZSgpLCBvdGhlci5lbmQoKSwgZW5kKCkp
OwogICAgICAgICBtX3NpemUgPSBvdGhlci5zaXplKCk7CiAKQEAgLTQ2NSw3ICs0ODIsNyBAQAog
ICAgICAgICAgICAgcmVzZXJ2ZUNhcGFjaXR5KG90aGVyLnNpemUoKSk7CiAgICAgICAgIH0KICAg
ICAgICAgCi0gICAgICAgIHN0ZDo6Y29weShvdGhlci5iZWdpbigpLCBvdGhlci5iZWdpbigpICsg
c2l6ZSgpLCBiZWdpbigpKTsKKyAgICAgICAgVHlwZU9wZXJhdGlvbnM6OmNvcHkob3RoZXIuYmVn
aW4oKSwgb3RoZXIuYmVnaW4oKSArIHNpemUoKSwgYmVnaW4oKSk7CiAgICAgICAgIFR5cGVPcGVy
YXRpb25zOjp1bmluaXRpYWxpemVkQ29weShvdGhlci5iZWdpbigpICsgc2l6ZSgpLCBvdGhlci5l
bmQoKSwgZW5kKCkpOwogICAgICAgICBtX3NpemUgPSBvdGhlci5zaXplKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10508</attachid>
            <date>2006-09-11 21:42:02 -0700</date>
            <delta_ts>2006-09-11 22:31:02 -0700</delta_ts>
            <desc>alternate patch: define _SCL_SECURE_NO_DEPRECATE to kill warning</desc>
            <filename>fix-3.diff</filename>
            <type>text/plain</type>
            <size>3703</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0LnZjcHJvagkocmV2aXNp
b24gMTYzMDApCisrKyBXZWJLaXQudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3
IEBACiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCiAJCQkJT3B0aW1pemF0aW9uPSIwIg0K
IAkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4u
XENPTSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXC4uXFdlYkNvcmVca2h0bWxcZG9tJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
Li5cV2ViQ29yZVxraHRtbFxlY21hJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2Vi
Q29yZVxodG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxraHRtbCZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcY3NzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxraHRtbFxtaXNjJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5cV2ViQ29yZVxwbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XC4uXFdlYkNvcmVcYnJpZGdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdl
YkNvcmVccGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcYnJpZGdl
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxwbGF0Zm9ybVxjYWlyb1xj
YWlyb1xzcmMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3Jt
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVccmVuZGVyaW5nJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxlZGl0aW5nJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxkb20mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlwuLlxXZWJDb3JlXHhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNv
cmVca3dxJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5caWNvbnYmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlwuLlxsaWJ4bWwyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
Li5caWN1XGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxKYXZhU2NyaXB0
Q29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXEphdmFTY3JpcHRDb3JlXG9zLXdp
bjMyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cSmF2YVNjcmlwdENvcmVcd3RmJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZx
dW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcJChDb25maWd1cmF0aW9uTmFtZSlcV2ViS2l0
V2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikmcXVvdDsiDQotCQkJCVByZXByb2Nlc3NvckRl
ZmluaXRpb25zPSJXSU4zMjtfREVCVUc7X1dJTkRPV1M7X1VTUkRMTDtXRUJLSVRfRVhQT1JUUztf
V0lOMzJfV0lOTlQ9MHg1MDAiDQorCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtf
REVCVUc7X1dJTkRPV1M7X1VTUkRMTDtXRUJLSVRfRVhQT1JUUztfV0lOMzJfV0lOTlQ9MHg1MDA7
X1NDTF9TRUNVUkVfTk9fREVQUkVDQVRFIg0KIAkJCQlNaW5pbWFsUmVidWlsZD0idHJ1ZSINCiAJ
CQkJRXhjZXB0aW9uSGFuZGxpbmc9IjAiDQogCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMyINCkBA
IC0xMjcsNyArMTI3LDcgQEAKIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQogCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilc
Li5cQ09NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5cV2ViQ29yZVxraHRtbFxkb20mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlwuLlxXZWJDb3JlXGtodG1sXGVjbWEmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxX
ZWJDb3JlXGh0bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGtodG1s
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxjc3MmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGtodG1sXG1pc2MmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cLi5cV2ViQ29yZVxicmlkZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5c
V2ViQ29yZVxwYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxicmlk
Z2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtXGNhaXJv
XGNhaXJvXHNyYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVccGxhdGZv
cm1cd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxyZW5kZXJpbmcm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGVkaXRpbmcmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGRvbSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXC4uXFdlYkNvcmVceG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2Vi
Q29yZVxrd3EmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxpY29udiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXC4uXGxpYnhtbDImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlwuLlxpY3VcaW5jbHVkZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXEphdmFTY3Jp
cHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cSmF2YVNjcmlwdENvcmVcb3Mt
d2luMzImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxKYXZhU2NyaXB0Q29yZVx3dGYm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJz
JnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVwkKENvbmZpZ3VyYXRpb25OYW1lKVxXZWJL
aXRXaW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKSZxdW90OyINCi0JCQkJUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM9IldJTjMyO05ERUJVRztfV0lORE9XUztfVVNSRExMO1dFQktJVF9FWFBPUlRT
O19XSU4zMl9XSU5OVD0weDUwMCINCisJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMy
O05ERUJVRztfV0lORE9XUztfVVNSRExMO1dFQktJVF9FWFBPUlRTO19XSU4zMl9XSU5OVD0weDUw
MDtfU0NMX1NFQ1VSRV9OT19ERVBSRUNBVEUiDQogCQkJCUV4Y2VwdGlvbkhhbmRsaW5nPSIwIg0K
IAkJCQlSdW50aW1lTGlicmFyeT0iMiINCiAJCQkJUnVudGltZVR5cGVJbmZvPSJmYWxzZSINCg==
</data>
<flag name="review"
          id="3397"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>