[Spice-devel] [spice-html5] Check if streams array exists in handle_draw_jpeg_onload

Christophe Fergeau cfergeau at redhat.com
Wed May 16 10:17:28 UTC 2018


From: Joel Purra <mig at joelpurra.se>

- It seems `SpiceDisplayConn` does not always have the array `this.o.sc.streams` set.
- It also seems (stream?) images can be loaded before `streams` is set.
- Without `streams`, or the specific stream matching `this.o.id`, `this.o.sc.streams[this.o.id].frames_loading` cannot be accessed.
- The check for the specific stream woth `this.o.id` is already in place, this patch adds a check for `this.o.sc.streams` in `handle_draw_jpeg_onload`.
- There might be a better place to ensure that `this.o.sc.streams` is initialized; this quick fix saved my bacon today though.

Might be related to, and perhaps fix:

- https://bugs.freedesktop.org/show_bug.cgi?id=94776
- https://bugzilla.redhat.com/show_bug.cgi?id=1323144

Signed-off-by: Joel Purra <mig at joelpurra.se>
---

This is the patch attached in that pull request/added in that bug.

Christophe


 display.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/display.js b/display.js
index 7719b23..dbeffea 100644
--- a/display.js
+++ b/display.js
@@ -883,7 +883,7 @@ function handle_draw_jpeg_onload()
     var temp_canvas = null;
     var context;
 
-    if (this.o.sc.streams[this.o.id])
+    if ("streams" in this.o.sc && this.o.sc.streams[this.o.id])
         this.o.sc.streams[this.o.id].frames_loading--;
 
     /*------------------------------------------------------------
-- 
2.17.0



More information about the Spice-devel mailing list