Skip to content

Commit 9eb5560

Browse files
committed
Support compressed array from new TBufferJSON code
1 parent 116fe4b commit 9eb5560

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

scripts/JSRootCore.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -312,13 +312,20 @@
312312
}
313313
for (var k=0;k<value.len;++k) arr[k] = dflt;
314314

315-
if (value.v !== undefined) {
316-
var p = value.p || 0;
317-
if (typeof value!=='object')
318-
arr[p] = value.v;
319-
else
320-
for (var k=0;k<value.v.length;++k)
321-
arr[p++] = value.v[k];
315+
var nkey = 2, p = 0;
316+
while (nkey<len) {
317+
if (ks[nkey][0]=="p") p = value[ks[nkey++]]; // position
318+
if (ks[nkey][0]!=='v') throw new Error('Unexpected member ' + ks[nkey] + ' in array decoding');
319+
var v = value[ks[nkey++]]; // value
320+
if (typeof v === 'object') {
321+
for (var k=0;k<v.length;++k) arr[p++] = v[k];
322+
} else {
323+
arr[p] = v;
324+
if ((nkey<len) && (ks[nkey][0]=='n')) {
325+
var cnt = value[ks[nkey++]]; // counter
326+
while (--cnt) arr[++p] = v;
327+
}
328+
}
322329
}
323330

324331
return arr;

0 commit comments

Comments
 (0)