mirror of
https://github.com/ading2210/libcurl.js.git
synced 2025-05-13 14:30:02 -04:00
refactor request code
This commit is contained in:
parent
0d7369c77a
commit
1748ca7dd9
12 changed files with 222 additions and 194 deletions
|
@ -71,4 +71,32 @@ function data_to_array(data) {
|
|||
}
|
||||
|
||||
throw "invalid data type to be sent";
|
||||
}
|
||||
|
||||
//c function wrapper
|
||||
function c_func(target, args=[]) {
|
||||
let str_pointers = [];
|
||||
for (let i = 0; i < args.length; i++) {
|
||||
if (typeof args[i] !== "string") {
|
||||
continue;
|
||||
}
|
||||
let ptr = allocate_str(args[i]);
|
||||
args[i] = ptr;
|
||||
str_pointers.push(ptr);
|
||||
}
|
||||
|
||||
let ret = target(...args);
|
||||
for (let ptr of str_pointers) {
|
||||
_free(ptr);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
//additional wrapper to free any returned strings
|
||||
function c_func_str(target, args=[]) {
|
||||
let ptr = c_func(target, args);
|
||||
let str = UTF8ToString(ptr);
|
||||
_free(ptr);
|
||||
return str;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue