aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library_browser.js2
-rw-r--r--src/library_sdl.js4
-rw-r--r--system/include/emscripten/emscripten.h10
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.