diff options
-rw-r--r-- | src/library_browser.js | 2 | ||||
-rw-r--r-- | src/library_sdl.js | 4 | ||||
-rw-r--r-- | system/include/emscripten/emscripten.h | 10 |
3 files changed, 11 insertions, 5 deletions
diff --git a/src/library_browser.js b/src/library_browser.js index d7aba76f..00ee158c 100644 --- a/src/library_browser.js +++ b/src/library_browser.js @@ -98,6 +98,7 @@ mergeInto(LibraryManager.library, { b = bb.getBlob(); } var url = Browser.URLObject.createObjectURL(b); + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); var img = new Image(); img.onload = function() { assert(img.complete, 'Image ' + name + ' could not be decoded'); @@ -143,6 +144,7 @@ mergeInto(LibraryManager.library, { return fail(); } var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); var audio = new Audio(); audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 audio.onerror = function(event) { diff --git a/src/library_sdl.js b/src/library_sdl.js index 56f6a6ef..4cb4ca6f 100644 --- a/src/library_sdl.js +++ b/src/library_sdl.js @@ -1547,6 +1547,10 @@ var LibrarySDL = { SDL_RemoveTimer: function(id) { window.clearTimeout(id); return true; + }, + + SDL_CreateThread: function() { + throw 'SDL threads cannot be supported in the web platform because they assume shared state. See emscripten_create_worker etc. for a message-passing concurrency model that does let you run code in another thread.' } }; diff --git a/system/include/emscripten/emscripten.h b/system/include/emscripten/emscripten.h index 6c421eb5..45ae7a8f 100644 --- a/system/include/emscripten/emscripten.h +++ b/system/include/emscripten/emscripten.h @@ -223,14 +223,14 @@ void emscripten_async_prepare_data(char* data, int size, const char *suffix, voi * */ -typedef int worker_t; +typedef int worker_handle; /* * Create and destroy workers. A worker must be compiled separately * from the main program, and with the BUILD_AS_WORKER flag set to 1. */ -worker_t emscripten_create_worker(const char *url); -void emscripten_destroy_worker(worker_t worker); +worker_handle emscripten_create_worker(const char *url); +void emscripten_destroy_worker(worker_handle worker); /* * Asynchronously call a worker. @@ -259,7 +259,7 @@ void emscripten_destroy_worker(worker_t worker); * @callback the callback with the response (can be null) * @arg an argument to be passed to the callback */ -void emscripten_call_worker(worker_t worker, const char *funcname, char *data, int size, void (*callback)(char *, int, void*), void *arg); +void emscripten_call_worker(worker_handle worker, const char *funcname, char *data, int size, void (*callback)(char *, int, void*), void *arg); /* * Sends a response when in a worker call. Should only be @@ -275,7 +275,7 @@ void emscripten_worker_respond(char *data, int size); * check on the status of the worker to see how busy it is, and do * basic decisions about throttling. */ -int emscripten_get_worker_queue_size(worker_t worker); +int emscripten_get_worker_queue_size(worker_handle worker); /* * Profiling tools. |