Skip to content

Commit 63112df

Browse files
committed
Make sure buffer is a DataView
1 parent 9b64041 commit 63112df

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

jupyterlab_widgets/src/manager.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,7 @@ export abstract class LabWidgetManager extends ManagerBase
133133
) {
134134
const data = msg.content.data as any;
135135
const buffer_paths = data.buffer_paths || [];
136-
// Make sure the buffers are DataViews
137-
const buffers = (msg.buffers || []).map(b => {
138-
if (b instanceof DataView) {
139-
return b;
140-
} else {
141-
return new DataView(b instanceof ArrayBuffer ? b : b.buffer);
142-
}
143-
});
136+
const buffers = msg.buffers || [];
144137
put_buffers(data.state, buffer_paths, buffers);
145138
info.resolve({ comm, msg });
146139
}

packages/base/src/utils.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,18 +100,25 @@ export function reject(message: string, log: boolean) {
100100
export function put_buffers(
101101
state: Dict<BufferJSON>,
102102
buffer_paths: (string | number)[][],
103-
buffers: DataView[]
103+
buffers: any[]
104104
): void {
105105
for (let i = 0; i < buffer_paths.length; i++) {
106106
const buffer_path = buffer_paths[i];
107-
// say we want to set state[x][y][z] = buffers[i]
107+
// make sure the buffers are DataViews
108+
let buffer = buffers[i];
109+
if (!(buffer instanceof DataView)) {
110+
buffer = new DataView(
111+
buffer instanceof ArrayBuffer ? buffer : buffer.buffer
112+
);
113+
}
114+
// say we want to set state[x][y][z] = buffer
108115
let obj = state as any;
109116
// we first get obj = state[x][y]
110117
for (let j = 0; j < buffer_path.length - 1; j++) {
111118
obj = obj[buffer_path[j]];
112119
}
113-
// and then set: obj[z] = buffers[i]
114-
obj[buffer_path[buffer_path.length - 1]] = buffers[i];
120+
// and then set: obj[z] = buffer
121+
obj[buffer_path[buffer_path.length - 1]] = buffer;
115122
}
116123
}
117124

0 commit comments

Comments
 (0)