<?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>127023</bug_id>
          
          <creation_ts>2014-01-14 17:44:02 -0800</creation_ts>
          <short_desc>[WebGL] Validation functions for compressed formats incorrect</short_desc>
          <delta_ts>2014-01-15 12:08:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>110497</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>roger_fong</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>968111</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-14 17:44:02 -0800</bug_when>
    <thetext>The calculation of valid size ranges for various compressed texture types is currently incorrect:

See http://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_compression_pvrtc.txt.

1. COMPRESSED_RGB_PVRTC_2BPPV1_IMG and COMPRESSED_RGBA_PVRTC_2BPPV1_IMG

These are specified to be calculated as:
          ( max(width, 16) * max(height, 8) * 2 + 7) / 8
... but are currently calculated as:
          std::max(width, 8) * std::max(height, 8) / 4

2. COMPRESSED_RGB_PVRTC_4BPPV1_IMG and COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:

These are specified to be calculated as:
          ( max(width, 8) * max(height, 8) * 4 + 7) / 8
... but are currently calculated as:
          std::max(width, 8) * std::max(height, 8) / 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968112</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-14 17:44:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/15820935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968179</commentid>
    <comment_count>2</comment_count>
      <attachid>221233</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-14 22:44:31 -0800</bug_when>
    <thetext>Created attachment 221233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968349</commentid>
    <comment_count>3</comment_count>
      <attachid>221233</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-15 09:19:10 -0800</bug_when>
    <thetext>Comment on attachment 221233
Patch

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

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:5351
&gt; +            bytesRequired = numBlocksAcross * numBlocksDown * kBlockSize;

This case is actually identical to the COMPRESSED_RGB_S3TC_DXT1_EXT/COMPRESSED_RGBA_S3TC_DXT1_EXT one.

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:5362
&gt; +            bytesRequired = numBlocksAcross * numBlocksDown * kBlockSize;

And these are the same as COMPRESSED_RGBA_S3TC_DXT3_EXT/COMPRESSED_RGBA_S3TC_DXT5_EXT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968395</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-15 10:27:09 -0800</bug_when>
    <thetext>The WebGL specification refers to &apos;floor&apos; when defining some of these relationships (see http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/).

However, I performing integer divides (on positive values) will provide the same values without having to convert integers to doubles followed by a floor on the result of a divide. Since we check for negative arguments at the start of the function, this should be safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968415</commentid>
    <comment_count>5</comment_count>
      <attachid>221288</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-15 11:45:00 -0800</bug_when>
    <thetext>Created attachment 221288
Simple Test of Size Calculations

Simple program to identify power-of-two dimensions where the old WebKit calculation does not match the specification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968416</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-15 11:45:44 -0800</bug_when>
    <thetext>It looks like the old calculation was probably fine for almost all cases. I found a few where we would produce an invalid result previously:

fulgbr-pc:compression bfulgham$ ./comparison 
2BPPV1: (1, 1) Old: 16, Corrected: 32
2BPPV1: (1, 2) Old: 16, Corrected: 32
2BPPV1: (1, 4) Old: 16, Corrected: 32
2BPPV1: (1, 8) Old: 16, Corrected: 32
2BPPV1: (1, 16) Old: 32, Corrected: 64
2BPPV1: (1, 32) Old: 64, Corrected: 128
2BPPV1: (1, 64) Old: 128, Corrected: 256
2BPPV1: (1, 128) Old: 256, Corrected: 512
2BPPV1: (1, 256) Old: 512, Corrected: 1024
2BPPV1: (1, 512) Old: 1024, Corrected: 2048
2BPPV1: (1, 1024) Old: 2048, Corrected: 4096
2BPPV1: (1, 2048) Old: 4096, Corrected: 8192
2BPPV1: (1, 4096) Old: 8192, Corrected: 16384
2BPPV1: (1, 8192) Old: 16384, Corrected: 32768
2BPPV1: (2, 1) Old: 16, Corrected: 32
2BPPV1: (2, 2) Old: 16, Corrected: 32
2BPPV1: (2, 4) Old: 16, Corrected: 32
2BPPV1: (2, 8) Old: 16, Corrected: 32
2BPPV1: (2, 16) Old: 32, Corrected: 64
2BPPV1: (2, 32) Old: 64, Corrected: 128
2BPPV1: (2, 64) Old: 128, Corrected: 256
2BPPV1: (2, 128) Old: 256, Corrected: 512
2BPPV1: (2, 256) Old: 512, Corrected: 1024
2BPPV1: (2, 512) Old: 1024, Corrected: 2048
2BPPV1: (2, 1024) Old: 2048, Corrected: 4096
2BPPV1: (2, 2048) Old: 4096, Corrected: 8192
2BPPV1: (2, 4096) Old: 8192, Corrected: 16384
2BPPV1: (2, 8192) Old: 16384, Corrected: 32768
2BPPV1: (4, 1) Old: 16, Corrected: 32
2BPPV1: (4, 2) Old: 16, Corrected: 32
2BPPV1: (4, 4) Old: 16, Corrected: 32
2BPPV1: (4, 8) Old: 16, Corrected: 32
2BPPV1: (4, 16) Old: 32, Corrected: 64
2BPPV1: (4, 32) Old: 64, Corrected: 128
2BPPV1: (4, 64) Old: 128, Corrected: 256
2BPPV1: (4, 128) Old: 256, Corrected: 512
2BPPV1: (4, 256) Old: 512, Corrected: 1024
2BPPV1: (4, 512) Old: 1024, Corrected: 2048
2BPPV1: (4, 1024) Old: 2048, Corrected: 4096
2BPPV1: (4, 2048) Old: 4096, Corrected: 8192
2BPPV1: (4, 4096) Old: 8192, Corrected: 16384
2BPPV1: (4, 8192) Old: 16384, Corrected: 32768
2BPPV1: (8, 1) Old: 16, Corrected: 32
2BPPV1: (8, 2) Old: 16, Corrected: 32
2BPPV1: (8, 4) Old: 16, Corrected: 32
2BPPV1: (8, 8) Old: 16, Corrected: 32
2BPPV1: (8, 16) Old: 32, Corrected: 64
2BPPV1: (8, 32) Old: 64, Corrected: 128
2BPPV1: (8, 64) Old: 128, Corrected: 256
2BPPV1: (8, 128) Old: 256, Corrected: 512
2BPPV1: (8, 256) Old: 512, Corrected: 1024
2BPPV1: (8, 512) Old: 1024, Corrected: 2048
2BPPV1: (8, 1024) Old: 2048, Corrected: 4096
2BPPV1: (8, 2048) Old: 4096, Corrected: 8192
2BPPV1: (8, 4096) Old: 8192, Corrected: 16384
2BPPV1: (8, 8192) Old: 16384, Corrected: 32768</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968421</commentid>
    <comment_count>7</comment_count>
      <attachid>221291</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-15 12:00:34 -0800</bug_when>
    <thetext>Created attachment 221291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968423</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-15 12:08:54 -0800</bug_when>
    <thetext>Committed r162085: &lt;http://trac.webkit.org/changeset/162085&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221233</attachid>
            <date>2014-01-14 22:44:31 -0800</date>
            <delta_ts>2014-01-15 12:00:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127023-20140114224431.patch</filename>
            <type>text/plain</type>
            <size>4744</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MjA1MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE0LTAxLTE0ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJHTF0gVmFsaWRhdGlv
biBmdW5jdGlvbnMgZm9yIGNvbXByZXNzZWQgZm9ybWF0cyBpbmNvcnJlY3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzAyMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gQ292ZXJl
ZCBieSBmYXN0L2NhbnZhcy93ZWJnbC9jb21wcmVzc2VkLXRleC1pbWFnZS5odG1sCisgICAgICAg
IGFuZCBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtc2l6ZS1saW1p
dC5odG1sCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUNvbXBy
ZXNzZWRUZXhGdW5jRGF0YSk6IFJldmlzZQorICAgICAgICB0byBtYXRjaCBzcGVjaWZpY2F0aW9u
cy4KKwogMjAxNC0wMS0xNCAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4KIAog
ICAgICAgICBbQ1NTUmVnaW9uc10gSW5jb3JyZWN0IHJlcGFpbnQgb2YgZml4ZWQgZWxlbWVudCB3
aXRoIHRyYW5zZm9ybWVkIHBhcmVudApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiAxNjIwNDkpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01MzE4LDUxICs1MzE4LDY2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp2YWxpZGF0ZUNvbXAKIAogICAgIHVuc2lnbmVkIGludCBieXRlc1JlcXVpcmVkID0g
MDsKIAotICAgIGNvbnN0IGludCBrQmxvY2tXaWR0aCA9IDQ7Ci0gICAgY29uc3QgaW50IGtCbG9j
a0hlaWdodCA9IDQ7Ci0KICAgICBzd2l0Y2ggKGZvcm1hdCkgewogICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUOgogICAgIGNhc2UgRXh0ZW5zaW9uczNE
OjpDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VYVDoKICAgICAgICAgewogICAgICAgICAgICAg
Y29uc3QgaW50IGtCbG9ja1NpemUgPSA4OworICAgICAgICAgICAgY29uc3QgaW50IGtCbG9ja1dp
ZHRoID0gNDsKKyAgICAgICAgICAgIGNvbnN0IGludCBrQmxvY2tIZWlnaHQgPSA0OwogICAgICAg
ICAgICAgaW50IG51bUJsb2Nrc0Fjcm9zcyA9ICh3aWR0aCArIGtCbG9ja1dpZHRoIC0gMSkgLyBr
QmxvY2tXaWR0aDsKICAgICAgICAgICAgIGludCBudW1CbG9ja3NEb3duID0gKGhlaWdodCArIGtC
bG9ja0hlaWdodCAtIDEpIC8ga0Jsb2NrSGVpZ2h0OwotICAgICAgICAgICAgaW50IG51bUJsb2Nr
cyA9IG51bUJsb2Nrc0Fjcm9zcyAqIG51bUJsb2Nrc0Rvd247Ci0gICAgICAgICAgICBieXRlc1Jl
cXVpcmVkID0gbnVtQmxvY2tzICoga0Jsb2NrU2l6ZTsKKyAgICAgICAgICAgIGJ5dGVzUmVxdWly
ZWQgPSBudW1CbG9ja3NBY3Jvc3MgKiBudW1CbG9ja3NEb3duICoga0Jsb2NrU2l6ZTsKICAgICAg
ICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NFRF9S
R0JBX1MzVENfRFhUM19FWFQ6CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTVBSRVNTRURfUkdC
QV9TM1RDX0RYVDVfRVhUOgogICAgICAgICB7CiAgICAgICAgICAgICBjb25zdCBpbnQga0Jsb2Nr
U2l6ZSA9IDE2OworICAgICAgICAgICAgY29uc3QgaW50IGtCbG9ja1dpZHRoID0gNDsKKyAgICAg
ICAgICAgIGNvbnN0IGludCBrQmxvY2tIZWlnaHQgPSA0OwogICAgICAgICAgICAgaW50IG51bUJs
b2Nrc0Fjcm9zcyA9ICh3aWR0aCArIGtCbG9ja1dpZHRoIC0gMSkgLyBrQmxvY2tXaWR0aDsKICAg
ICAgICAgICAgIGludCBudW1CbG9ja3NEb3duID0gKGhlaWdodCArIGtCbG9ja0hlaWdodCAtIDEp
IC8ga0Jsb2NrSGVpZ2h0OwotICAgICAgICAgICAgaW50IG51bUJsb2NrcyA9IG51bUJsb2Nrc0Fj
cm9zcyAqIG51bUJsb2Nrc0Rvd247Ci0gICAgICAgICAgICBieXRlc1JlcXVpcmVkID0gbnVtQmxv
Y2tzICoga0Jsb2NrU2l6ZTsKKyAgICAgICAgICAgIGJ5dGVzUmVxdWlyZWQgPSBudW1CbG9ja3NB
Y3Jvc3MgKiBudW1CbG9ja3NEb3duICoga0Jsb2NrU2l6ZTsKICAgICAgICAgfQogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NFRF9BVENfUkdCX0FNRDoKICAg
ICAgICAgewotICAgICAgICAgICAgYnl0ZXNSZXF1aXJlZCA9IGZsb29yKHN0YXRpY19jYXN0PGRv
dWJsZT4oKHdpZHRoICsga0Jsb2NrV2lkdGggLSAxKSAvIDQpKSAqIGZsb29yKHN0YXRpY19jYXN0
PGRvdWJsZT4oKGhlaWdodCArIDMpIC8gNCkpICogODsKKyAgICAgICAgICAgIGNvbnN0IGludCBr
QmxvY2tTaXplID0gODsKKyAgICAgICAgICAgIGNvbnN0IGludCBrQmxvY2tXaWR0aCA9IDQ7Cisg
ICAgICAgICAgICBjb25zdCBpbnQga0Jsb2NrSGVpZ2h0ID0gNDsKKyAgICAgICAgICAgIGludCBu
dW1CbG9ja3NBY3Jvc3MgPSAod2lkdGggKyBrQmxvY2tXaWR0aCAtIDEpIC8ga0Jsb2NrV2lkdGg7
CisgICAgICAgICAgICBpbnQgbnVtQmxvY2tzRG93biA9IChoZWlnaHQgKyBrQmxvY2tIZWlnaHQg
LSAxKSAvIGtCbG9ja0hlaWdodDsKKyAgICAgICAgICAgIGJ5dGVzUmVxdWlyZWQgPSBudW1CbG9j
a3NBY3Jvc3MgKiBudW1CbG9ja3NEb3duICoga0Jsb2NrU2l6ZTsKICAgICAgICAgfQogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NFRF9BVENfUkdCQV9FWFBM
SUNJVF9BTFBIQV9BTUQ6CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTVBSRVNTRURfQVRDX1JH
QkFfSU5URVJQT0xBVEVEX0FMUEhBX0FNRDoKICAgICAgICAgewotICAgICAgICAgICAgYnl0ZXNS
ZXF1aXJlZCA9IGZsb29yKHN0YXRpY19jYXN0PGRvdWJsZT4oKHdpZHRoICsga0Jsb2NrV2lkdGgg
LSAxKSAvIDQpKSAqIGZsb29yKHN0YXRpY19jYXN0PGRvdWJsZT4oKGhlaWdodCArIDMpIC8gNCkp
ICogMTY7CisgICAgICAgICAgICBjb25zdCBpbnQga0Jsb2NrU2l6ZSA9IDE2OworICAgICAgICAg
ICAgY29uc3QgaW50IGtCbG9ja1dpZHRoID0gNDsKKyAgICAgICAgICAgIGNvbnN0IGludCBrQmxv
Y2tIZWlnaHQgPSA0OworICAgICAgICAgICAgaW50IG51bUJsb2Nrc0Fjcm9zcyA9ICh3aWR0aCAr
IGtCbG9ja1dpZHRoIC0gMSkgLyBrQmxvY2tXaWR0aDsKKyAgICAgICAgICAgIGludCBudW1CbG9j
a3NEb3duID0gKGhlaWdodCArIGtCbG9ja0hlaWdodCAtIDEpIC8ga0Jsb2NrSGVpZ2h0OworICAg
ICAgICAgICAgYnl0ZXNSZXF1aXJlZCA9IG51bUJsb2Nrc0Fjcm9zcyAqIG51bUJsb2Nrc0Rvd24g
KiBrQmxvY2tTaXplOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpDT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HOgogICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpDT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRzoKICAgICAgICAgewotICAg
ICAgICAgICAgYnl0ZXNSZXF1aXJlZCA9IHN0ZDo6bWF4KHdpZHRoLCA4KSAqIHN0ZDo6bWF4KGhl
aWdodCwgOCkgLyAyOworICAgICAgICAgICAgY29uc3QgaW50IGtCbG9ja1NpemUgPSA4OworICAg
ICAgICAgICAgY29uc3QgaW50IGtCbG9ja1dpZHRoID0gODsKKyAgICAgICAgICAgIGNvbnN0IGlu
dCBrQmxvY2tIZWlnaHQgPSA4OworICAgICAgICAgICAgYnl0ZXNSZXF1aXJlZCA9IChzdGQ6Om1h
eCh3aWR0aCwga0Jsb2NrV2lkdGgpICogc3RkOjptYXgoaGVpZ2h0LCBrQmxvY2tIZWlnaHQpICog
NCArIDcpIC8ga0Jsb2NrU2l6ZTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNl
IEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NFRF9SR0JfUFZSVENfMkJQUFYxX0lNRzoKICAgICBjYXNl
IEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUc6CiAgICAgICAg
IHsKLSAgICAgICAgICAgIGJ5dGVzUmVxdWlyZWQgPSBzdGQ6Om1heCh3aWR0aCwgOCkgKiBzdGQ6
Om1heChoZWlnaHQsIDgpIC8gNDsKKyAgICAgICAgICAgIGNvbnN0IGludCBrQmxvY2tTaXplID0g
ODsKKyAgICAgICAgICAgIGNvbnN0IGludCBrQmxvY2tXaWR0aCA9IDE2OworICAgICAgICAgICAg
Y29uc3QgaW50IGtCbG9ja0hlaWdodCA9IDg7CisgICAgICAgICAgICBieXRlc1JlcXVpcmVkID0g
KHN0ZDo6bWF4KHdpZHRoLCBrQmxvY2tXaWR0aCkgKiBzdGQ6Om1heChoZWlnaHQsIGtCbG9ja0hl
aWdodCkgKiAyICsgNykgLyBrQmxvY2tTaXplOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwog
ICAgIGRlZmF1bHQ6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>221288</attachid>
            <date>2014-01-15 11:45:00 -0800</date>
            <delta_ts>2014-01-15 11:45:00 -0800</delta_ts>
            <desc>Simple Test of Size Calculations</desc>
            <filename>test.cpp</filename>
            <type>application/octet-stream</type>
            <size>1342</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8aW9zdHJlYW0+
CgpzdGF0aWMgaW50IG9yaWdpbmFsQnl0ZXNGb3IyQlBQVjEoaW50IHdpZHRoLCBpbnQgaGVpZ2h0
KQp7CiAgICByZXR1cm4gc3RkOjptYXgod2lkdGgsIDgpICogc3RkOjptYXgoaGVpZ2h0LCA4KSAv
IDQ7Cn0KCnN0YXRpYyBpbnQgY29ycmVjdGVkQnl0ZXNGb3IyQlBQVjEoaW50IHdpZHRoLCBpbnQg
aGVpZ2h0KQp7CiAgICByZXR1cm4gKHN0ZDo6bWF4KHdpZHRoLCAxNikgKiBzdGQ6Om1heChoZWln
aHQsIDgpICogMiArIDcpIC8gODsKfQoKc3RhdGljIGludCBvcmlnaW5hbEJ5dGVzRm9yNEJQUFYx
KGludCB3aWR0aCwgaW50IGhlaWdodCkKewogICAgcmV0dXJuIHN0ZDo6bWF4KHdpZHRoLCA4KSAq
IHN0ZDo6bWF4KGhlaWdodCwgOCkgLyAyOwp9CgpzdGF0aWMgaW50IGNvcnJlY3RlZEJ5dGVzRm9y
NEJQUFYxKGludCB3aWR0aCwgaW50IGhlaWdodCkKewogICAgcmV0dXJuIChzdGQ6Om1heCh3aWR0
aCwgOCkgKiBzdGQ6Om1heChoZWlnaHQsIDgpICogNCArIDcpIC8gODsKfQoKCmludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKewogICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCAxNjM4NDsp
IHsKICAgICAgICBmb3IgKHNpemVfdCBqID0gMTsgaiA8IDE2Mzg0OykgewogICAgICAgICAgICBp
bnQgb2xkMkJQUFYxID0gb3JpZ2luYWxCeXRlc0ZvcjJCUFBWMShpLCBqKTsKICAgICAgICAgICAg
aW50IGNvcnJlY3QyQlBQVjEgPSBjb3JyZWN0ZWRCeXRlc0ZvcjJCUFBWMShpLCBqKTsKICAgICAg
ICAgICAgCiAgICAgICAgICAgIGlmIChvbGQyQlBQVjEgIT0gY29ycmVjdDJCUFBWMSkKICAgICAg
ICAgICAgICAgIHN0ZDo6Y291dCA8PCAiMkJQUFYxOiAoIiA8PCBpIDw8ICIsICIgPDwgaiA8PCAi
KSBPbGQ6ICIgPDwgb2xkMkJQUFYxIDw8ICIsIENvcnJlY3RlZDogIiA8PCBjb3JyZWN0MkJQUFYx
IDw8IHN0ZDo6ZW5kbDsKCiAgICAgICAgICAgIGludCBvbGQ0QlBQVjEgPSBvcmlnaW5hbEJ5dGVz
Rm9yNEJQUFYxKGksIGopOwogICAgICAgICAgICBpbnQgY29ycmVjdDRCUFBWMSA9IGNvcnJlY3Rl
ZEJ5dGVzRm9yNEJQUFYxKGksIGopOwoKICAgICAgICAgICAgaWYgKG9sZDRCUFBWMSAhPSBjb3Jy
ZWN0NEJQUFYxKQogICAgICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICI0QlBQVjE6ICgiIDw8IGkg
PDwgIiwgIiA8PCBqIDw8ICIpIE9sZDogIiA8PCBvbGQ0QlBQVjEgPDwgIiwgQ29ycmVjdGVkOiAi
IDw8IGNvcnJlY3Q0QlBQVjEgPDwgc3RkOjplbmRsOwoKICAgICAgICAgICAgaiAqPSAyOwogICAg
ICAgIH0KCiAgICAgICAgaSAqPSAyOwogICAgfQp9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221291</attachid>
            <date>2014-01-15 12:00:34 -0800</date>
            <delta_ts>2014-01-15 12:04:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127023-20140115120033.patch</filename>
            <type>text/plain</type>
            <size>4139</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MjA4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE0LTAxLTE1ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJHTF0gVmFsaWRhdGlv
biBmdW5jdGlvbiBmb3IgY29tcHJlc3NlZCBmb3JtYXRzIGluY29ycmVjdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIFdlYkdMIGNvbXByZXNzZWQgdGV4dHVyZSB0ZXN0cy4KKworICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlQ29tcHJlc3NlZFRleEZ1bmNEYXRhKTog
UmV2aXNlIHRvIG1hdGNoIHNwZWNpZmljYXRpb25zLgorCiAyMDE0LTAxLTE1ICBGcsOpZMOpcmlj
IFdhbmcgIDxmcmVkLndhbmdAZnJlZS5mcj4KIAogICAgICAgICBbU1ZHXSBBY2NlcHQgSFRNTCBh
bmQgTWF0aE1MIG5hbWVzcGFjZXMgYXMgdmFsaWQgcmVxdWlyZWRFeHRlbnNpb25zCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5jcHAJKHJldmlzaW9uIDE2MjA3MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMTgsNTEgKzUzMTgs
NDggQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlQ29tcAogCiAgICAgdW5z
aWduZWQgaW50IGJ5dGVzUmVxdWlyZWQgPSAwOwogCi0gICAgY29uc3QgaW50IGtCbG9ja1dpZHRo
ID0gNDsKLSAgICBjb25zdCBpbnQga0Jsb2NrSGVpZ2h0ID0gNDsKLQogICAgIHN3aXRjaCAoZm9y
bWF0KSB7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9F
WFQ6CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDFfRVhU
OgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT01QUkVTU0VEX0FUQ19SR0JfQU1EOgogICAgICAg
ICB7CiAgICAgICAgICAgICBjb25zdCBpbnQga0Jsb2NrU2l6ZSA9IDg7CisgICAgICAgICAgICBj
b25zdCBpbnQga0Jsb2NrV2lkdGggPSA0OworICAgICAgICAgICAgY29uc3QgaW50IGtCbG9ja0hl
aWdodCA9IDQ7CiAgICAgICAgICAgICBpbnQgbnVtQmxvY2tzQWNyb3NzID0gKHdpZHRoICsga0Js
b2NrV2lkdGggLSAxKSAvIGtCbG9ja1dpZHRoOwogICAgICAgICAgICAgaW50IG51bUJsb2Nrc0Rv
d24gPSAoaGVpZ2h0ICsga0Jsb2NrSGVpZ2h0IC0gMSkgLyBrQmxvY2tIZWlnaHQ7Ci0gICAgICAg
ICAgICBpbnQgbnVtQmxvY2tzID0gbnVtQmxvY2tzQWNyb3NzICogbnVtQmxvY2tzRG93bjsKLSAg
ICAgICAgICAgIGJ5dGVzUmVxdWlyZWQgPSBudW1CbG9ja3MgKiBrQmxvY2tTaXplOworICAgICAg
ICAgICAgYnl0ZXNSZXF1aXJlZCA9IG51bUJsb2Nrc0Fjcm9zcyAqIG51bUJsb2Nrc0Rvd24gKiBr
QmxvY2tTaXplOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQzX0VYVDoKICAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6Q09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkNPTVBSRVNTRURfQVRDX1JHQkFfRVhQTElDSVRfQUxQSEFfQU1EOgorICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpDT01QUkVTU0VEX0FUQ19SR0JBX0lOVEVSUE9MQVRFRF9BTFBIQV9BTUQ6CiAgICAg
ICAgIHsKICAgICAgICAgICAgIGNvbnN0IGludCBrQmxvY2tTaXplID0gMTY7CisgICAgICAgICAg
ICBjb25zdCBpbnQga0Jsb2NrV2lkdGggPSA0OworICAgICAgICAgICAgY29uc3QgaW50IGtCbG9j
a0hlaWdodCA9IDQ7CiAgICAgICAgICAgICBpbnQgbnVtQmxvY2tzQWNyb3NzID0gKHdpZHRoICsg
a0Jsb2NrV2lkdGggLSAxKSAvIGtCbG9ja1dpZHRoOwogICAgICAgICAgICAgaW50IG51bUJsb2Nr
c0Rvd24gPSAoaGVpZ2h0ICsga0Jsb2NrSGVpZ2h0IC0gMSkgLyBrQmxvY2tIZWlnaHQ7Ci0gICAg
ICAgICAgICBpbnQgbnVtQmxvY2tzID0gbnVtQmxvY2tzQWNyb3NzICogbnVtQmxvY2tzRG93bjsK
LSAgICAgICAgICAgIGJ5dGVzUmVxdWlyZWQgPSBudW1CbG9ja3MgKiBrQmxvY2tTaXplOwotICAg
ICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT01QUkVTU0VE
X0FUQ19SR0JfQU1EOgotICAgICAgICB7Ci0gICAgICAgICAgICBieXRlc1JlcXVpcmVkID0gZmxv
b3Ioc3RhdGljX2Nhc3Q8ZG91YmxlPigod2lkdGggKyBrQmxvY2tXaWR0aCAtIDEpIC8gNCkpICog
Zmxvb3Ioc3RhdGljX2Nhc3Q8ZG91YmxlPigoaGVpZ2h0ICsgMykgLyA0KSkgKiA4OwotICAgICAg
ICB9Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT01QUkVTU0VEX0FU
Q19SR0JBX0VYUExJQ0lUX0FMUEhBX0FNRDoKLSAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09NUFJF
U1NFRF9BVENfUkdCQV9JTlRFUlBPTEFURURfQUxQSEFfQU1EOgotICAgICAgICB7Ci0gICAgICAg
ICAgICBieXRlc1JlcXVpcmVkID0gZmxvb3Ioc3RhdGljX2Nhc3Q8ZG91YmxlPigod2lkdGggKyBr
QmxvY2tXaWR0aCAtIDEpIC8gNCkpICogZmxvb3Ioc3RhdGljX2Nhc3Q8ZG91YmxlPigoaGVpZ2h0
ICsgMykgLyA0KSkgKiAxNjsKKyAgICAgICAgICAgIGJ5dGVzUmVxdWlyZWQgPSBudW1CbG9ja3NB
Y3Jvc3MgKiBudW1CbG9ja3NEb3duICoga0Jsb2NrU2l6ZTsKICAgICAgICAgfQogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NFRF9SR0JfUFZSVENfNEJQUFYx
X0lNRzoKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NFRF9SR0JBX1BWUlRDXzRCUFBW
MV9JTUc6CiAgICAgICAgIHsKLSAgICAgICAgICAgIGJ5dGVzUmVxdWlyZWQgPSBzdGQ6Om1heCh3
aWR0aCwgOCkgKiBzdGQ6Om1heChoZWlnaHQsIDgpIC8gMjsKKyAgICAgICAgICAgIGNvbnN0IGlu
dCBrQmxvY2tTaXplID0gODsKKyAgICAgICAgICAgIGNvbnN0IGludCBrQmxvY2tXaWR0aCA9IDg7
CisgICAgICAgICAgICBjb25zdCBpbnQga0Jsb2NrSGVpZ2h0ID0gODsKKyAgICAgICAgICAgIGJ5
dGVzUmVxdWlyZWQgPSAoc3RkOjptYXgod2lkdGgsIGtCbG9ja1dpZHRoKSAqIHN0ZDo6bWF4KGhl
aWdodCwga0Jsb2NrSGVpZ2h0KSAqIDQgKyA3KSAvIGtCbG9ja1NpemU7CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTVBSRVNTRURfUkdCX1BWUlRD
XzJCUFBWMV9JTUc6CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTVBSRVNTRURfUkdCQV9QVlJU
Q18yQlBQVjFfSU1HOgogICAgICAgICB7Ci0gICAgICAgICAgICBieXRlc1JlcXVpcmVkID0gc3Rk
OjptYXgod2lkdGgsIDgpICogc3RkOjptYXgoaGVpZ2h0LCA4KSAvIDQ7CisgICAgICAgICAgICBj
b25zdCBpbnQga0Jsb2NrU2l6ZSA9IDg7CisgICAgICAgICAgICBjb25zdCBpbnQga0Jsb2NrV2lk
dGggPSAxNjsKKyAgICAgICAgICAgIGNvbnN0IGludCBrQmxvY2tIZWlnaHQgPSA4OworICAgICAg
ICAgICAgYnl0ZXNSZXF1aXJlZCA9IChzdGQ6Om1heCh3aWR0aCwga0Jsb2NrV2lkdGgpICogc3Rk
OjptYXgoaGVpZ2h0LCBrQmxvY2tIZWlnaHQpICogMiArIDcpIC8ga0Jsb2NrU2l6ZTsKICAgICAg
ICAgfQogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0Ogo=
</data>
<flag name="review"
          id="245170"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>