ACK, and pushed, thanks!
On 09/16/2013 11:13 AM, Aric Stewart wrote:
>
> Also converts the display cache from an array to an object. This is to help
> enforce proper sparceness of the data as well as make it easier to reliably
> fully delete a given cache entry without affecting access to the remaining
> entries.
>
> ---
> display.js | 16 +++++++++++++---
> spicemsg.js | 24 ++++++++++++++++++++++++
> 2 files changed, 37 insertions(+), 3 deletions(-)
>
> diff --git a/display.js b/display.js
> index d0d0994..6d7dafc 100644
> --- a/display.js
> +++ b/display.js
> @@ -527,6 +527,16 @@ SpiceDisplayConn.prototype.process_channel_message =
> function(msg)
> this.streams[m.id] = undefined;
> return true;
> }
> + if (msg.type == SPICE_MSG_DISPLAY_INVAL_LIST)
> + {
> + var m = new SpiceMsgDisplayInvalList(msg.data);
> + var i;
> + DEBUG > 1 && console.log(this.type + ": MsgInvalList " + m.count + "
> items");
> + for (i = 0; i < m.count; i++)
> + if (this.cache[m.resources[i].id] != undefined)
> + delete this.cache[m.resources[i].id];
> + return true;
> + }
>
> return false;
> }
> @@ -575,7 +585,7 @@ SpiceDisplayConn.prototype.draw_copy_helper = function(o)
> if (o.descriptor && (o.descriptor.flags & SPICE_IMAGE_FLAGS_CACHE_ME))
> {
> if (! ("cache" in this))
> - this.cache = [];
> + this.cache = {};
> this.cache[o.descriptor.id] = o.image_data;
> }
>
> @@ -766,7 +776,7 @@ function handle_draw_jpeg_onload()
> (this.o.descriptor.flags & SPICE_IMAGE_FLAGS_CACHE_ME))
> {
> if (! ("cache" in this.o.sc))
> - this.o.sc.cache = [];
> + this.o.sc.cache = {};
>
> this.o.sc.cache[this.o.descriptor.id] =
> t.getImageData(0, 0,
> @@ -786,7 +796,7 @@ function handle_draw_jpeg_onload()
> (this.o.descriptor.flags & SPICE_IMAGE_FLAGS_CACHE_ME))
> {
> if (! ("cache" in this.o.sc))
> - this.o.sc.cache = [];
> + this.o.sc.cache = {};
>
> this.o.sc.cache[this.o.descriptor.id] =
> context.getImageData(this.o.base.box.left,
> this.o.base.box.top,
> diff --git a/spicemsg.js b/spicemsg.js
> index ca69d42..de39aec 100644
> --- a/spicemsg.js
> +++ b/spicemsg.js
> @@ -881,3 +881,27 @@ SpiceMsgDisplayStreamDestroy.prototype =
> this.id = dv.getUint32(at, true); at += 4;
> },
> }
> +
> +function SpiceMsgDisplayInvalList(a, at)
> +{
> + this.count = 0;
> + this.resources = [];
> + this.from_buffer(a,at);
> +}
> +
> +SpiceMsgDisplayInvalList.prototype =
> +{
> + from_buffer: function (a, at)
> + {
> + var i;
> + at = at || 0;
> + var dv = new SpiceDataView(a);
> + this.count = dv.getUint16(at, true); at += 2;
> + for (i = 0; i < this.count; i++)
> + {
> + this.resources[i] = {};
> + this.resources[i].type = dv.getUint8(at, true); at++;
> + this.resources[i].id = dv.getUint64(at, true); at += 8;
> + }
> + },
> +}
>
>
>
>
>
> _______________________________________________
> Spice-devel mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel