[Libreoffice-commits] online.git: loleaflet/src

Henry Castro hcastro at collabora.com
Tue May 17 16:26:38 UTC 2016


 loleaflet/src/core/Socket.js |   17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

New commits:
commit c511cc9fca8f1c650ab7104c4e2ca00a76bf38b8
Author: Henry Castro <hcastro at collabora.com>
Date:   Tue May 17 12:23:00 2016 -0400

    loleaflet: fix "Maximum call stack size exceeded"

diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index 606e137..bbd68e2 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -100,6 +100,14 @@ L.Socket = L.Class.extend({
 		this._map._activate();
 	},
 
+	_utf8ToString: function (data) {
+		var strBytes = '';
+		for (var it = 0; it < data.length; it++) {
+			strBytes += String.fromCharCode(data[it]);
+		}
+		return strBytes;
+	},
+
 	_onMessage: function (e) {
 		var imgBytes, index, textMsg;
 
@@ -177,8 +185,13 @@ L.Socket = L.Class.extend({
 			// log the tile msg separately as we need the tile coordinates
 			L.Log.log(textMsg, L.INCOMING);
 			if (imgBytes !== undefined) {
-				// if it's not a tile, parse the whole message
-				textMsg = String.fromCharCode.apply(null, imgBytes);
+				try {
+					// if it's not a tile, parse the whole message
+					textMsg = String.fromCharCode.apply(null, imgBytes);
+				} catch (error) {
+					// big data string
+					textMsg = this._utf8ToString(imgBytes);
+				}
 			}
 			// Decode UTF-8.
 			textMsg = decodeURIComponent(window.escape(textMsg));


More information about the Libreoffice-commits mailing list