Skip to content

Commit 760d684

Browse files
committed
jsify create_function further
1 parent 6343675 commit 760d684

File tree

1 file changed

+11
-25
lines changed

1 file changed

+11
-25
lines changed

src/api.js

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -877,40 +877,26 @@ Module["onRuntimeInitialized"] = (function onRuntimeInitialized() {
877877
var func_ptr;
878878
function wrapped_func(cx, argc, argv) {
879879
var result;
880-
function data_func_blob(ptr) {
880+
function extract_blob(ptr) {
881881
var size = sqlite3_value_bytes(ptr);
882882
var blob_ptr = sqlite3_value_blob(ptr);
883883
var blob_arg = new Uint8Array(size);
884-
for (var j = 0; j < size; j += 1) {
885-
blob_arg[j] = HEAP8[blob_ptr + j];
886-
}
884+
for (var j = 0; j < size; j += 1) blob_arg[j] = HEAP8[blob_ptr + j];
887885
return blob_arg;
888886
}
889-
function data_func_null() {
890-
return null;
891-
}
892887
var args = [];
893888
for (var i = 0; i < argc; i += 1) {
894889
var value_ptr = getValue(argv + (4 * i), "i32");
895890
var value_type = sqlite3_value_type(value_ptr);
896-
var data_func;
897-
switch (value_type) {
898-
case 1:
899-
data_func = sqlite3_value_double;
900-
break;
901-
case 2:
902-
data_func = sqlite3_value_double;
903-
break;
904-
case 3:
905-
data_func = sqlite3_value_text;
906-
break;
907-
case 4:
908-
data_func = data_func_blob;
909-
break;
910-
default:
911-
data_func = data_func_null;
912-
}
913-
args.push(data_func(value_ptr));
891+
var arg;
892+
if (value_type === SQLITE_INTEGER || value_type === SQLITE_FLOAT) {
893+
arg = sqlite3_value_double(value_ptr);
894+
} else if (value_type === SQLITE_TEXT) {
895+
arg = sqlite3_value_text(value_ptr);
896+
} else if (value_type === SQLITE_BLOB) {
897+
arg = extract_blob(value_ptr);
898+
} else arg = null;
899+
args.push(arg);
914900
}
915901
try {
916902
result = func.apply(null, args);

0 commit comments

Comments
 (0)