<?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>8937</bug_id>
          
          <creation_ts>2006-05-16 01:22:25 -0700</creation_ts>
          <short_desc>EncodingMap uses 0 as its empty value but 0 is a valid TextEncodingID</short_desc>
          <delta_ts>2006-05-18 09:08:49 -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>WebCore Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>EasyFix, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>42452</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-05-16 01:22:25 -0700</bug_when>
    <thetext>EncodingMap uses 0 as its empty value but 0 is a valid encoding ID (MacRoman), which is actually added to the map by buildDictionaries().

I think the empty value should be changed to something else (but not InvalidEncoding, which is used as the deleted value), and emptyValueIsZero should be defined as false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42709</commentid>
    <comment_count>1</comment_count>
      <attachid>8367</attachid>
    <who name="">mitz</who>
    <bug_when>2006-05-17 09:29:41 -0700</bug_when>
    <thetext>Created attachment 8367
A fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42710</commentid>
    <comment_count>2</comment_count>
      <attachid>8367</attachid>
    <who name="">mitz</who>
    <bug_when>2006-05-17 09:35:48 -0700</bug_when>
    <thetext>Comment on attachment 8367
A fix

I&apos;m really not sure about this one (except that it fixes the bug, of course).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42788</commentid>
    <comment_count>3</comment_count>
      <attachid>8367</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-17 22:00:37 -0700</bug_when>
    <thetext>Comment on attachment 8367
A fix

Actually, the specialization of the HashKeyStorageTraits can and should be removed entirely if we have to change the empty value. The reason that&apos;s there is to make the hash table implementation get shared. But that sharing can&apos;t take place if the traits are not the standard traits for the integer type.

Otherwise, this patch looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42789</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-17 22:02:58 -0700</bug_when>
    <thetext>This second invalid encoding should probably go in the TextEncoding.h header and have a symbolic name, too. I agree that the value 0xFFFFFFFEU is a good value to use. We can probably call it InvalidEncoding2 or some other lovely name like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42828</commentid>
    <comment_count>5</comment_count>
      <attachid>8391</attachid>
    <who name="">mitz</who>
    <bug_when>2006-05-18 07:20:28 -0700</bug_when>
    <thetext>Created attachment 8391
Patch w/change log

InvalidEncoding2 it is!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42830</commentid>
    <comment_count>6</comment_count>
      <attachid>8391</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-18 08:46:58 -0700</bug_when>
    <thetext>Comment on attachment 8391
Patch w/change log

Looks great, r=me.

One comment for the future. When you have an assert that has an &amp;&amp; in it, it&apos;s usually better to have two asserts. That way each one has a smaller expression in it, and also if one fails you know which half failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42832</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-18 09:08:49 -0700</bug_when>
    <thetext>Committed revision 14465.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8367</attachid>
            <date>2006-05-17 09:29:41 -0700</date>
            <delta_ts>2006-05-18 07:20:28 -0700</delta_ts>
            <desc>A fix</desc>
            <filename>8937_r0.patch</filename>
            <type>text/plain</type>
            <size>818</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vQ2hhcnNldE5hbWVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL0NoYXJzZXROYW1lcy5jcHAJKHJldmlzaW9uIDE0NDM0KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9DaGFyc2V0TmFtZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICsz
OCw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBUZXh0RW5jb2RpbmdJREhhc2hU
cmFpdHMgOiBHZW5lcmljSGFzaFRyYWl0czxUZXh0RW5jb2RpbmdJRD4geworICAgIHN0YXRpYyBj
b25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgVHJhaXRUeXBl
IGVtcHR5VmFsdWUoKSB7IHJldHVybiAweGZmZmZmZmZlVTsgfQogICAgIHN0YXRpYyBUcmFpdFR5
cGUgZGVsZXRlZFZhbHVlKCkgeyByZXR1cm4gSW52YWxpZEVuY29kaW5nOyB9CiB9OwogCkBAIC00
OCw3ICs1MCw3IEBACiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoS2V5U3RvcmFnZVRyYWl0czxJbnRI
YXNoPFRleHRFbmNvZGluZ0lEPiwgVGV4dEVuY29kaW5nSURIYXNoVHJhaXRzPiB7CiAgICAgdHlw
ZWRlZiBJbnRUeXBlczxzaXplb2YoVGV4dEVuY29kaW5nSUQpPjo6U2lnbmVkVHlwZSBJbnRUeXBl
OwogICAgIHR5cGVkZWYgSW50SGFzaDxJbnRUeXBlPiBIYXNoOwotICAgIHR5cGVkZWYgSGFzaFRy
YWl0czxJbnRUeXBlPiBUcmFpdHM7CisgICAgdHlwZWRlZiBUZXh0RW5jb2RpbmdJREhhc2hUcmFp
dHMgVHJhaXRzOwogfTsKIAogfQo=
</data>
<flag name="review"
          id="2368"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8391</attachid>
            <date>2006-05-18 07:20:28 -0700</date>
            <delta_ts>2006-05-18 08:46:58 -0700</delta_ts>
            <desc>Patch w/change log</desc>
            <filename>8937_r1.patch</filename>
            <type>text/plain</type>
            <size>3145</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNDQ2NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDYtMDUtIyMgIE1pdHogUGV0dGVsICA8b3BlbmRhcndpbi5vcmdA
bWl0enBldHRlbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgLSBmaXggaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNn
aT9pZD04OTM3CisgICAgICAgICAgRW5jb2RpbmdNYXAgdXNlcyAwIGFzIGl0cyBlbXB0eSB2YWx1
ZSBidXQgMCBpcyBhIHZhbGlkIFRleHRFbmNvZGluZ0lECisKKyAgICAgICAgKiBwbGF0Zm9ybS9D
aGFyc2V0TmFtZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEVuY29kaW5nSURIYXNoVHJh
aXRzOjplbXB0eVZhbHVlKTogQWRkZWQgYSBub24temVybyBlbXB0eSB2YWx1ZSwKKyAgICAgICAg
SW52YWxpZEVuY29kaW5nMi4KKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkRGljdGlvbmFyaWVzKTog
QWRkZWQgYW4gYXNzZXJ0aW9uIHRoYXQgdGhlIGRlbGV0ZWQgYW5kIGVtcHR5CisgICAgICAgIHZh
bHVlcyBhcmUgbm90IHZhbGlkIGVuY29kaW5ncy4KKyAgICAgICAgKiBwbGF0Zm9ybS9UZXh0RW5j
b2RpbmcuaDogRGVmaW5lZCBJbnZhbGlkRW5jb2RpbmcyLgorCiAyMDA2LTA1LTE4ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBIb3JyaWJsZSBnbHlwaCBtYXAgcmVn
cmVzc2lvbiBmaXguICBUaGUgaW5pdGlhbCBwYWdlIG9mIHRoZSBtYXAgd2FzCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL0NoYXJzZXROYW1lcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9DaGFyc2V0TmFtZXMuY3BwCShyZXZpc2lvbiAxNDQ2NCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vQ2hhcnNldE5hbWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsMjEgKzM4LDEzIEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgVGV4
dEVuY29kaW5nSURIYXNoVHJhaXRzIDogR2VuZXJpY0hhc2hUcmFpdHM8VGV4dEVuY29kaW5nSUQ+
IHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAg
c3RhdGljIFRyYWl0VHlwZSBlbXB0eVZhbHVlKCkgeyByZXR1cm4gSW52YWxpZEVuY29kaW5nMjsg
fQogICAgIHN0YXRpYyBUcmFpdFR5cGUgZGVsZXRlZFZhbHVlKCkgeyByZXR1cm4gSW52YWxpZEVu
Y29kaW5nOyB9CiB9OwogCiB9CiAKLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBIYXNoS2V5U3RvcmFnZVRyYWl0czxJbnRIYXNoPFRleHRFbmNvZGluZ0lEPiwgVGV4dEVuY29k
aW5nSURIYXNoVHJhaXRzPiB7Ci0gICAgdHlwZWRlZiBJbnRUeXBlczxzaXplb2YoVGV4dEVuY29k
aW5nSUQpPjo6U2lnbmVkVHlwZSBJbnRUeXBlOwotICAgIHR5cGVkZWYgSW50SGFzaDxJbnRUeXBl
PiBIYXNoOwotICAgIHR5cGVkZWYgSGFzaFRyYWl0czxJbnRUeXBlPiBUcmFpdHM7Ci19OwotCi19
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gR29sZGVuIHJhdGlvIC0gYXJiaXRyYXJ5IHN0
YXJ0IHZhbHVlIHRvIGF2b2lkIG1hcHBpbmcgYWxsIDAncyB0byBhbGwgMCdzCkBAIC0xMjAsNiAr
MTEyLDcgQEAgc3RhdGljIHZvaWQgYnVpbGREaWN0aW9uYXJpZXMoKQogICAgIGVuY29kaW5nTWFw
ID0gbmV3IEVuY29kaW5nTWFwOwogCiAgICAgZm9yIChpbnQgaSA9IDA7IENoYXJzZXRUYWJsZVtp
XS5uYW1lOyArK2kpIHsKKyAgICAgICAgYXNzZXJ0KENoYXJzZXRUYWJsZVtpXS5lbmNvZGluZyAh
PSBUZXh0RW5jb2RpbmdJREhhc2hUcmFpdHM6OmVtcHR5VmFsdWUoKSAmJiBDaGFyc2V0VGFibGVb
aV0uZW5jb2RpbmcgIT0gVGV4dEVuY29kaW5nSURIYXNoVHJhaXRzOjpkZWxldGVkVmFsdWUoKSk7
CiAgICAgICAgIG5hbWVNYXAtPmFkZChDaGFyc2V0VGFibGVbaV0ubmFtZSwgJkNoYXJzZXRUYWJs
ZVtpXSk7CiAgICAgICAgIGVuY29kaW5nTWFwLT5hZGQoQ2hhcnNldFRhYmxlW2ldLmVuY29kaW5n
LCAmQ2hhcnNldFRhYmxlW2ldKTsKICAgICB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1RleHRF
bmNvZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vVGV4dEVuY29kaW5nLmgJ
KHJldmlzaW9uIDE0NDY0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9UZXh0RW5jb2RpbmcuaAkod29y
a2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdHlw
ZWRlZiBDRlN0cmluZ0VuY29kaW5nIFRleHRFbmNvZGluZ0lEOwogICAgIAogICAgIGNvbnN0IFRl
eHRFbmNvZGluZ0lEIEludmFsaWRFbmNvZGluZyA9IGtDRlN0cmluZ0VuY29kaW5nSW52YWxpZElk
OworICAgIGNvbnN0IFRleHRFbmNvZGluZ0lEIEludmFsaWRFbmNvZGluZzIgPSAweGZmZmZmZmZl
VTsKICAgICBjb25zdCBUZXh0RW5jb2RpbmdJRCBVVEY4RW5jb2RpbmcgPSBrQ0ZTdHJpbmdFbmNv
ZGluZ1VURjg7CiAgICAgY29uc3QgVGV4dEVuY29kaW5nSUQgVVRGMTZFbmNvZGluZyA9IGtDRlN0
cmluZ0VuY29kaW5nVW5pY29kZTsKICAgICBjb25zdCBUZXh0RW5jb2RpbmdJRCBMYXRpbjFFbmNv
ZGluZyA9IGtDRlN0cmluZ0VuY29kaW5nSVNPTGF0aW4xOwpAQCAtNDMsNiArNDQsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY29uc3QgVGV4dEVuY29kaW5nSUQgV2luTGF0aW4xRW5jb2Rp
bmcgPSBrQ0ZTdHJpbmdFbmNvZGluZ1dpbmRvd3NMYXRpbjE7CiAjZWxzZQogICAgIGVudW0gVGV4
dEVuY29kaW5nSUQgeworICAgICAgICBJbnZhbGlkRW5jb2RpbmcyID0gLTI7CiAgICAgICAgIElu
dmFsaWRFbmNvZGluZyA9IC0xLAogICAgICAgICBVVEY4RW5jb2RpbmcsCiAgICAgICAgIFVURjE2
RW5jb2RpbmcsCg==
</data>
<flag name="review"
          id="2377"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>