mirror of https://github.com/pyodide/pyodide.git
45 lines
1.6 KiB
Diff
45 lines
1.6 KiB
Diff
From 137dae4dbdf9a192551582cdae827b085510956f Mon Sep 17 00:00:00 2001
|
|
From: Hood Chatham <roberthoodchatham@gmail.com>
|
|
Date: Fri, 2 Jun 2023 11:59:32 -0700
|
|
Subject: [PATCH 1/6] Add back fs.findObject and fs.readFile in loadLibData
|
|
|
|
See upstream PR:
|
|
https://github.com/emscripten-core/emscripten/pull/19513
|
|
---
|
|
src/library_dylink.js | 13 +++++++++++--
|
|
1 file changed, 11 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/library_dylink.js b/src/library_dylink.js
|
|
index aa90bea2b..1e67818a1 100644
|
|
--- a/src/library_dylink.js
|
|
+++ b/src/library_dylink.js
|
|
@@ -994,14 +994,23 @@ var LibraryDylink = {
|
|
#endif
|
|
|
|
// for wasm, we can use fetch for async, but for fs mode we can only imitate it
|
|
+ var libData;
|
|
if (handle) {
|
|
var data = {{{ makeGetValue('handle', C_STRUCTS.dso.file_data, '*') }}};
|
|
var dataSize = {{{ makeGetValue('handle', C_STRUCTS.dso.file_data_size, '*') }}};
|
|
if (data && dataSize) {
|
|
- var libData = HEAP8.slice(data, data + dataSize);
|
|
- return flags.loadAsync ? Promise.resolve(libData) : libData;
|
|
+ libData = HEAP8.slice(data, data + dataSize);
|
|
}
|
|
}
|
|
+ if (!libData && flags.fs && flags.fs.findObject(libName)) {
|
|
+ libData = flags.fs.readFile(libName, {encoding: 'binary'});
|
|
+ if (!(libData instanceof Uint8Array)) {
|
|
+ libData = new Uint8Array(libData);
|
|
+ }
|
|
+ }
|
|
+ if (libData) {
|
|
+ return flags.loadAsync ? Promise.resolve(libData) : libData;
|
|
+ }
|
|
|
|
var libFile = locateFile(libName);
|
|
if (flags.loadAsync) {
|
|
--
|
|
2.34.1
|
|
|