[Spice-devel] [spice-html5] Send the client cache size correctly in little endian order so we don't claim to have an infinitely large cache.

Jeremy White jwhite at codeweavers.com
Fri Sep 13 13:42:29 PDT 2013


Signed-off-by: Jeremy White <jwhite at codeweavers.com>
---
 spicedataview.js |   12 ++++++++++++
 spicemsg.js      |    3 +--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/spicedataview.js b/spicedataview.js
index ef9555d..43f0170 100644
--- a/spicedataview.js
+++ b/spicedataview.js
@@ -93,4 +93,16 @@ SpiceDataView.prototype = {
         this.setUint16(byteOffset + high, (w & 0xffffffff) >> 16, littleEndian);
         this.setUint16(byteOffset + low,  (w & 0x0000ffff), littleEndian);
     },
+    setUint64:  function(byteOffset, w, littleEndian)
+    {
+        var low = 4, high = 0;
+        if (littleEndian)
+        {
+            low = 0;
+            high = 4;
+        }
+
+        this.setUint32(byteOffset + high, (w & 0xffffffffffffffff) >> 32, littleEndian);
+        this.setUint32(byteOffset + low,  (w & 0x00000000ffffffff), littleEndian);
+    },
 }
diff --git a/spicemsg.js b/spicemsg.js
index 365fdf7..e342d6a 100644
--- a/spicemsg.js
+++ b/spicemsg.js
@@ -445,8 +445,7 @@ SpiceMsgcDisplayInit.prototype =
         at = at || 0;
         var dv = new SpiceDataView(a);
         dv.setUint8(at, this.pixmap_cache_id, true); at++;
-        dv.setUint32(at, 0, true); at += 4;
-        dv.setUint32(at, this.pixmap_cache_size, true); at += 4;
+        dv.setUint64(at, this.pixmap_cache_size, true); at += 8;
         dv.setUint8(at, this.glz_dictionary_id, true); at++;
         dv.setUint32(at, this.glz_dictionary_window_size, true); at += 4;
     },
-- 
1.7.10.4




More information about the Spice-devel mailing list