Explicitly convert raw data to strings

As strings are guaranteed to use UTF-8 in the GNOME platform, generic
file APIs like g_file_load_contents() return raw data instead. Since
gjs' recent update to mozjs60, this data is now returns as Uint8Array
which cannot simply be treated as string - its toString() method boils
down to arr.join(',') - so use gjs' new ByteArray module to explicitly
convert the data.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/179
This commit is contained in:
Florian Müllner
2018-07-30 14:35:27 +02:00
committed by Florian Müllner
parent a9ad91c831
commit 7ca418a79a
4 changed files with 8 additions and 0 deletions

View File

@ -117,6 +117,8 @@ function _loadMode(file, info) {
let fileContent, success, tag, newMode;
try {
[success, fileContent, tag] = file.load_contents(null);
if (fileContent instanceof Uint8Array)
fileContent = imports.byteArray.toString(fileContent);
newMode = JSON.parse(fileContent);
} catch(e) {
return;