<?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>28448</bug_id>
          
          <creation_ts>2009-08-18 23:33:44 -0700</creation_ts>
          <short_desc>convert FormatBlock candidate tag list from if chain to hash lookup</short_desc>
          <delta_ts>2009-08-19 01:11:21 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>141409</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-08-18 23:33:44 -0700</bug_when>
    <thetext>the validBlockTag() function does a long nested chain of if comparisons to C strings, which is lame. A hash lookup would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141410</commentid>
    <comment_count>1</comment_count>
      <attachid>35103</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-08-18 23:34:51 -0700</bug_when>
    <thetext>Created attachment 35103
patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141412</commentid>
    <comment_count>2</comment_count>
      <attachid>35103</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-18 23:36:00 -0700</bug_when>
    <thetext>Comment on attachment 35103
patch v1

What about empty string and null string? Does the contains function do the right thing for those?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141414</commentid>
    <comment_count>3</comment_count>
      <attachid>35103</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-08-18 23:36:51 -0700</bug_when>
    <thetext>Comment on attachment 35103
patch v1

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141421</commentid>
    <comment_count>4</comment_count>
      <attachid>35104</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-08-19 00:00:36 -0700</bug_when>
    <thetext>Created attachment 35104
patch v2

Last version had a bug, as pointed out by Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141439</commentid>
    <comment_count>5</comment_count>
      <attachid>35104</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-08-19 01:01:39 -0700</bug_when>
    <thetext>Comment on attachment 35104
patch v2

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141442</commentid>
    <comment_count>6</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-08-19 01:11:21 -0700</bug_when>
    <thetext>Committed r47499: &lt;http://trac.webkit.org/changeset/47499&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35103</attachid>
            <date>2009-08-18 23:34:51 -0700</date>
            <delta_ts>2009-08-19 00:01:15 -0700</delta_ts>
            <desc>patch v1</desc>
            <filename>valid-tag-name-cleanup.patch.txt</filename>
            <type>text/plain</type>
            <size>3123</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzQ5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMDgtMTggIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBj
b252ZXJ0IEZvcm1hdEJsb2NrIGNhbmRpZGF0ZSB0YWcgbGlzdCBmcm9tIGlmIGNoYWluIHRvIGhh
c2ggbG9va3VwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yODQ0OAorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZSwganVzdCBjbGVhbnVwLgorCisg
ICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZEJsb2NrVGFnKToKKyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmg6CisKIDIwMDktMDgt
MTggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCShy
ZXZpc2lvbiA0NzQ4OSkKKysrIFdlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ1OSwyNiArNDU5LDI3IEBAIGJvb2wgaXNTcGVjaWFsRWxlbWVudChjb25z
dCBOb2RlICpuKQogfQogCiAvLyBDaGVja3MgaWYgYSBzdHJpbmcgaXMgYSB2YWxpZCB0YWcgZm9y
IHRoZSBGb3JtYXRCbG9ja0NvbW1hbmQgZnVuY3Rpb24gb2YgZXhlY0NvbW1hbmQuIEV4cGVjdHMg
bG93ZXIgY2FzZSBzdHJpbmdzLgotYm9vbCB2YWxpZEJsb2NrVGFnKGNvbnN0IFN0cmluZyYgYmxv
Y2tUYWcpCitib29sIHZhbGlkQmxvY2tUYWcoY29uc3QgQXRvbWljU3RyaW5nJiBibG9ja1RhZykK
IHsKLSAgICAvLyBGSVhNRTogY29udmVydCB0aGlzIHRvIGEgSGFzaFNldAotICAgIGlmIChibG9j
a1RhZyA9PSAiYWRkcmVzcyIgfHwKLSAgICAgICAgYmxvY2tUYWcgPT0gImJsb2NrcXVvdGUiIHx8
Ci0gICAgICAgIGJsb2NrVGFnID09ICJkZCIgfHwKLSAgICAgICAgYmxvY2tUYWcgPT0gImRpdiIg
fHwKLSAgICAgICAgYmxvY2tUYWcgPT0gImRsIiB8fAotICAgICAgICBibG9ja1RhZyA9PSAiZHQi
IHx8Ci0gICAgICAgIGJsb2NrVGFnID09ICJoMSIgfHwKLSAgICAgICAgYmxvY2tUYWcgPT0gImgy
IiB8fAotICAgICAgICBibG9ja1RhZyA9PSAiaDMiIHx8Ci0gICAgICAgIGJsb2NrVGFnID09ICJo
NCIgfHwKLSAgICAgICAgYmxvY2tUYWcgPT0gImg1IiB8fAotICAgICAgICBibG9ja1RhZyA9PSAi
aDYiIHx8Ci0gICAgICAgIGJsb2NrVGFnID09ICJuYXYiIHx8Ci0gICAgICAgIGJsb2NrVGFnID09
ICJwIiB8fAotICAgICAgICBibG9ja1RhZyA9PSAicHJlIikKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxBdG9t
aWNTdHJpbmc+LCBibG9ja1RhZ3MsICgpKTsKKyAgICBpZiAoYmxvY2tUYWdzLmlzRW1wdHkoKSkg
eworICAgICAgICBibG9ja1RhZ3MuYWRkKGFkZHJlc3NUYWcubG9jYWxOYW1lKCkpOworICAgICAg
ICBibG9ja1RhZ3MuYWRkKGJsb2NrcXVvdGVUYWcubG9jYWxOYW1lKCkpOworICAgICAgICBibG9j
a1RhZ3MuYWRkKGRkVGFnLmxvY2FsTmFtZSgpKTsKKyAgICAgICAgYmxvY2tUYWdzLmFkZChkaXZU
YWcubG9jYWxOYW1lKCkpOworICAgICAgICBibG9ja1RhZ3MuYWRkKGRsVGFnLmxvY2FsTmFtZSgp
KTsKKyAgICAgICAgYmxvY2tUYWdzLmFkZChkdFRhZy5sb2NhbE5hbWUoKSk7CisgICAgICAgIGJs
b2NrVGFncy5hZGQoaDFUYWcubG9jYWxOYW1lKCkpOworICAgICAgICBibG9ja1RhZ3MuYWRkKGgy
VGFnLmxvY2FsTmFtZSgpKTsKKyAgICAgICAgYmxvY2tUYWdzLmFkZChoM1RhZy5sb2NhbE5hbWUo
KSk7CisgICAgICAgIGJsb2NrVGFncy5hZGQoaDRUYWcubG9jYWxOYW1lKCkpOworICAgICAgICBi
bG9ja1RhZ3MuYWRkKGg1VGFnLmxvY2FsTmFtZSgpKTsKKyAgICAgICAgYmxvY2tUYWdzLmFkZCho
NlRhZy5sb2NhbE5hbWUoKSk7CisgICAgICAgIGJsb2NrVGFncy5hZGQobmF2VGFnLmxvY2FsTmFt
ZSgpKTsKKyAgICAgICAgYmxvY2tUYWdzLmFkZChwVGFnLmxvY2FsTmFtZSgpKTsKKyAgICAgICAg
YmxvY2tUYWdzLmFkZChwcmVUYWcubG9jYWxOYW1lKCkpOworICAgIH0KKyAgICByZXR1cm4gYmxv
Y2tUYWdzLmNvbnRhaW5zKGJsb2NrVGFnKTsKIH0KIAogc3RhdGljIE5vZGUqIGZpcnN0SW5TcGVj
aWFsRWxlbWVudChjb25zdCBQb3NpdGlvbiYgcG9zKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL2h0
bWxlZGl0aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJ
KHJldmlzaW9uIDQ3NDg4KQorKysgV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHdvcmtp
bmcgY29weSkKQEAgLTgxLDcgKzgxLDcgQEAgUGFzc1JlZlB0cjxSYW5nZT4gYXZvaWRJbnRlcnNl
Y3Rpb25XaXRoTgogVmlzaWJsZVNlbGVjdGlvbiBhdm9pZEludGVyc2VjdGlvbldpdGhOb2RlKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mLCBOb2RlKik7CiAKIGJvb2wgaXNTcGVjaWFsRWxlbWVudChj
b25zdCBOb2RlKik7Ci1ib29sIHZhbGlkQmxvY2tUYWcoY29uc3QgU3RyaW5nJik7Citib29sIHZh
bGlkQmxvY2tUYWcoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKIFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERvY3VtZW50Kik7CiBQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBjcmVhdGVCcmVha0VsZW1lbnQoRG9jdW1lbnQqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35104</attachid>
            <date>2009-08-19 00:00:36 -0700</date>
            <delta_ts>2009-08-19 01:01:39 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>valid-tag-name-cleanup.patch.txt</filename>
            <type>text/plain</type>
            <size>3177</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzQ5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMDgtMTggIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBj
b252ZXJ0IEZvcm1hdEJsb2NrIGNhbmRpZGF0ZSB0YWcgbGlzdCBmcm9tIGlmIGNoYWluIHRvIGhh
c2ggbG9va3VwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yODQ0OAorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZSwganVzdCBjbGVhbnVwLgorCisg
ICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZEJsb2NrVGFnKToKKyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmg6CisKIDIwMDktMDgt
MTggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCShy
ZXZpc2lvbiA0NzQ4OSkKKysrIFdlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ1OSwyNiArNDU5LDMwIEBAIGJvb2wgaXNTcGVjaWFsRWxlbWVudChjb25z
dCBOb2RlICpuKQogfQogCiAvLyBDaGVja3MgaWYgYSBzdHJpbmcgaXMgYSB2YWxpZCB0YWcgZm9y
IHRoZSBGb3JtYXRCbG9ja0NvbW1hbmQgZnVuY3Rpb24gb2YgZXhlY0NvbW1hbmQuIEV4cGVjdHMg
bG93ZXIgY2FzZSBzdHJpbmdzLgotYm9vbCB2YWxpZEJsb2NrVGFnKGNvbnN0IFN0cmluZyYgYmxv
Y2tUYWcpCitib29sIHZhbGlkQmxvY2tUYWcoY29uc3QgQXRvbWljU3RyaW5nJiBibG9ja1RhZykK
IHsKLSAgICAvLyBGSVhNRTogY29udmVydCB0aGlzIHRvIGEgSGFzaFNldAotICAgIGlmIChibG9j
a1RhZyA9PSAiYWRkcmVzcyIgfHwKLSAgICAgICAgYmxvY2tUYWcgPT0gImJsb2NrcXVvdGUiIHx8
Ci0gICAgICAgIGJsb2NrVGFnID09ICJkZCIgfHwKLSAgICAgICAgYmxvY2tUYWcgPT0gImRpdiIg
fHwKLSAgICAgICAgYmxvY2tUYWcgPT0gImRsIiB8fAotICAgICAgICBibG9ja1RhZyA9PSAiZHQi
IHx8Ci0gICAgICAgIGJsb2NrVGFnID09ICJoMSIgfHwKLSAgICAgICAgYmxvY2tUYWcgPT0gImgy
IiB8fAotICAgICAgICBibG9ja1RhZyA9PSAiaDMiIHx8Ci0gICAgICAgIGJsb2NrVGFnID09ICJo
NCIgfHwKLSAgICAgICAgYmxvY2tUYWcgPT0gImg1IiB8fAotICAgICAgICBibG9ja1RhZyA9PSAi
aDYiIHx8Ci0gICAgICAgIGJsb2NrVGFnID09ICJuYXYiIHx8Ci0gICAgICAgIGJsb2NrVGFnID09
ICJwIiB8fAotICAgICAgICBibG9ja1RhZyA9PSAicHJlIikKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChibG9ja1RhZy5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxBdG9taWNT
dHJpbmc+LCBibG9ja1RhZ3MsICgpKTsKKyAgICBpZiAoYmxvY2tUYWdzLmlzRW1wdHkoKSkgewor
ICAgICAgICBibG9ja1RhZ3MuYWRkKGFkZHJlc3NUYWcubG9jYWxOYW1lKCkpOworICAgICAgICBi
bG9ja1RhZ3MuYWRkKGJsb2NrcXVvdGVUYWcubG9jYWxOYW1lKCkpOworICAgICAgICBibG9ja1Rh
Z3MuYWRkKGRkVGFnLmxvY2FsTmFtZSgpKTsKKyAgICAgICAgYmxvY2tUYWdzLmFkZChkaXZUYWcu
bG9jYWxOYW1lKCkpOworICAgICAgICBibG9ja1RhZ3MuYWRkKGRsVGFnLmxvY2FsTmFtZSgpKTsK
KyAgICAgICAgYmxvY2tUYWdzLmFkZChkdFRhZy5sb2NhbE5hbWUoKSk7CisgICAgICAgIGJsb2Nr
VGFncy5hZGQoaDFUYWcubG9jYWxOYW1lKCkpOworICAgICAgICBibG9ja1RhZ3MuYWRkKGgyVGFn
LmxvY2FsTmFtZSgpKTsKKyAgICAgICAgYmxvY2tUYWdzLmFkZChoM1RhZy5sb2NhbE5hbWUoKSk7
CisgICAgICAgIGJsb2NrVGFncy5hZGQoaDRUYWcubG9jYWxOYW1lKCkpOworICAgICAgICBibG9j
a1RhZ3MuYWRkKGg1VGFnLmxvY2FsTmFtZSgpKTsKKyAgICAgICAgYmxvY2tUYWdzLmFkZChoNlRh
Zy5sb2NhbE5hbWUoKSk7CisgICAgICAgIGJsb2NrVGFncy5hZGQobmF2VGFnLmxvY2FsTmFtZSgp
KTsKKyAgICAgICAgYmxvY2tUYWdzLmFkZChwVGFnLmxvY2FsTmFtZSgpKTsKKyAgICAgICAgYmxv
Y2tUYWdzLmFkZChwcmVUYWcubG9jYWxOYW1lKCkpOworICAgIH0KKyAgICByZXR1cm4gYmxvY2tU
YWdzLmNvbnRhaW5zKGJsb2NrVGFnKTsKIH0KIAogc3RhdGljIE5vZGUqIGZpcnN0SW5TcGVjaWFs
RWxlbWVudChjb25zdCBQb3NpdGlvbiYgcG9zKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL2h0bWxl
ZGl0aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHJl
dmlzaW9uIDQ3NDg4KQorKysgV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTgxLDcgKzgxLDcgQEAgUGFzc1JlZlB0cjxSYW5nZT4gYXZvaWRJbnRlcnNlY3Rp
b25XaXRoTgogVmlzaWJsZVNlbGVjdGlvbiBhdm9pZEludGVyc2VjdGlvbldpdGhOb2RlKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mLCBOb2RlKik7CiAKIGJvb2wgaXNTcGVjaWFsRWxlbWVudChjb25z
dCBOb2RlKik7Ci1ib29sIHZhbGlkQmxvY2tUYWcoY29uc3QgU3RyaW5nJik7Citib29sIHZhbGlk
QmxvY2tUYWcoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERvY3VtZW50Kik7CiBQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBjcmVhdGVCcmVha0VsZW1lbnQoRG9jdW1lbnQqKTsK
</data>
<flag name="review"
          id="19294"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>