<?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>210519</bug_id>
          
          <creation_ts>2020-04-14 15:48:08 -0700</creation_ts>
          <short_desc>Use CFArrayGetValues() in createArchiveList() in WebCoreArgumentCodersMac.mm</short_desc>
          <delta_ts>2020-04-14 18:09:15 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=210456</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>210448</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1641578</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-04-14 15:48:08 -0700</bug_when>
    <thetext>Use CFArrayGetValues() in createArchiveList() in WebCoreArgumentCodersMac.mm.

Via Darin Adler in Bug 210448, Comment #4:

Separately, I suggest we rewrite this using CFArrayGetValues, rather than calling CFArrayGetValueAtIndex over and over again in a loop. We will still have to loop over the buffer to convert tokenNull into nullptr, but it should be more efficient to do it that way rather than call CFArrayGetValueAtIndex over and over again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641589</commentid>
    <comment_count>1</comment_count>
      <attachid>396472</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-04-14 16:07:45 -0700</bug_when>
    <thetext>Created attachment 396472
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641594</commentid>
    <comment_count>2</comment_count>
      <attachid>396472</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-14 16:23:54 -0700</bug_when>
    <thetext>Comment on attachment 396472
Patch v1

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

&gt; Source/WebKit/Shared/mac/WebCoreArgumentCodersMac.mm:127
&gt; +    for (size_t i = 0; i &lt; static_cast&lt;size_t&gt;(*objectCount); ++i) {

This line should not have been changed. There’s no reason to cast this just so we can use a different type for the loop. CFIndex is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641630</commentid>
    <comment_count>3</comment_count>
      <attachid>396472</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-04-14 18:04:16 -0700</bug_when>
    <thetext>Comment on attachment 396472
Patch v1

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

&gt;&gt; Source/WebKit/Shared/mac/WebCoreArgumentCodersMac.mm:127
&gt;&gt; +    for (size_t i = 0; i &lt; static_cast&lt;size_t&gt;(*objectCount); ++i) {
&gt; 
&gt; This line should not have been changed. There’s no reason to cast this just so we can use a different type for the loop. CFIndex is fine.

Will change back.  I seem to recall there&apos;s a clang warning about using a signed type for an array index, which is why I changed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641632</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-04-14 18:08:51 -0700</bug_when>
    <thetext>Committed r260111: &lt;https://trac.webkit.org/changeset/260111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641633</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-14 18:09:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/61800359&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396472</attachid>
            <date>2020-04-14 16:07:45 -0700</date>
            <delta_ts>2020-04-14 16:23:54 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-210519-20200414160844.patch</filename>
            <type>text/plain</type>
            <size>1867</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4YjI5YmQ4ZmZiOWY1NzQ1
ZGViZjkzYTQ5ODM1MzU3ZDQ3YmEwYzMuLjdkMzU5MjAyMzAwOWY4YzQ1MjQ3ZmRjYTAxOWNjMTRj
ZDQ3YWQyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQtMTQgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ0ZBcnJheUdldFZhbHVl
cygpIGluIGNyZWF0ZUFyY2hpdmVMaXN0KCkgaW4gV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1t
CisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8yMTA1MTk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1
bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6Y3JlYXRlQXJjaGl2ZUxpc3QpOgorICAg
ICAgICAtIFVzZSBDRkFycmF5R2V0VmFsdWVzKCkgdG8gY29weSBhcnJheSBtb3JlIGVmZmljaWVu
dGx5LgorICAgICAgICAtIFVzZSBzaXplX3QgdHlwZSBmb3IgaWRvbWF0aWMgYXJyYXkgaW5kZXgg
dmFsdWVzLgorCiAyMDIwLTA0LTE0ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgY3JlYXRlQXJjaGl2ZUxpc3QoKSBpbiBXZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0gc2hvdWxkIGRvIG1vcmUgdmFsaWRpdHkgY2hlY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRleCA5MjZhNTMx
OWEzMGM1ZDY0NmRjY2EwMDk1YWZiY2U1M2Y4OGMzZTcwLi42YTQwMDM0YTU2NWMyN2Y5ZWRkZGNl
NTdmOGVjZmVmMjU0ZjgwNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KQEAgLTEyMywxMiArMTIzLDEwIEBAIHN0YXRp
YyBib29sIGNyZWF0ZUFyY2hpdmVMaXN0KENGRGljdGlvbmFyeVJlZiByZXByZXNlbnRhdGlvbiwg
Q0ZUeXBlUmVmIHRva2VuTnVsCiAgICAgKm9iamVjdENvdW50ID0gYXJjaGl2ZUxpc3RBcnJheUNv
dW50OwogICAgICpvYmplY3RzID0gc3RhdGljX2Nhc3Q8Q0ZUeXBlUmVmKj4obWFsbG9jKGJ1ZmZl
clNpemUudW5zYWZlR2V0KCkpKTsKIAotICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8ICpvYmpl
Y3RDb3VudDsgKytpKSB7Ci0gICAgICAgIENGVHlwZVJlZiBvYmplY3QgPSBDRkFycmF5R2V0VmFs
dWVBdEluZGV4KGFyY2hpdmVMaXN0QXJyYXksIGkpOwotICAgICAgICBpZiAob2JqZWN0ID09IHRv
a2VuTnVsbCkKKyAgICBDRkFycmF5R2V0VmFsdWVzKGFyY2hpdmVMaXN0QXJyYXksIENGUmFuZ2VN
YWtlKDAsICpvYmplY3RDb3VudCksICpvYmplY3RzKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHN0YXRpY19jYXN0PHNpemVfdD4oKm9iamVjdENvdW50KTsgKytpKSB7CisgICAgICAgIGlm
ICgoKm9iamVjdHMpW2ldID09IHRva2VuTnVsbCkKICAgICAgICAgICAgICgqb2JqZWN0cylbaV0g
PSBudWxscHRyOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICAoKm9iamVjdHMpW2ldID0gb2Jq
ZWN0OwogICAgIH0KIAogICAgIGlmIChwcm90b2NvbFByb3BlcnRpZXMpCg==
</data>
<flag name="review"
          id="411884"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>