1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-09-27 02:56:18 -04:00

[ecmascript] Explicit init and done function for ecmascript module.

This commit is contained in:
Witold Filipczyk 2020-12-08 20:54:14 +01:00
parent f617256ecc
commit 471fe54053

View File

@ -108,7 +108,6 @@ read_url_list(void)
int
get_ecmascript_enable(struct ecmascript_interpreter *interpreter)
{
static int list_init = 0;
struct string_list_item *item;
unsigned char *url;
@ -118,11 +117,6 @@ get_ecmascript_enable(struct ecmascript_interpreter *interpreter)
return 0;
}
if (!list_init) {
read_url_list();
list_init = 1;
}
url = get_uri_string(interpreter->vs->doc_view->document->uri, URI_PUBLIC);
if (!url) {
return 0;
@ -446,6 +440,17 @@ ecmascript_set_timeout2(struct ecmascript_interpreter *interpreter, JS::HandleVa
install_timer(&interpreter->vs->doc_view->document->timeout, timeout, ecmascript_timeout_handler2, interpreter);
}
static void
init_ecmascript_module(struct module *module)
{
read_url_list();
}
static void
done_ecmascript_module(struct module *module)
{
free_string_list(&allowed_urls);
}
static struct module *ecmascript_modules[] = {
#ifdef CONFIG_ECMASCRIPT_SMJS
@ -455,12 +460,13 @@ static struct module *ecmascript_modules[] = {
};
struct module ecmascript_module = struct_module(
/* name: */ N_("ECMAScript"),
/* options: */ ecmascript_options,
/* events: */ NULL,
/* submodules: */ ecmascript_modules,
/* data: */ NULL,
/* init: */ NULL,
/* done: */ NULL
/* init: */ init_ecmascript_module,
/* done: */ done_ecmascript_module
);