diff options
| author | gingerBill <bill@gingerbill.org> | 2021-07-14 23:36:23 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-07-14 23:36:23 +0100 |
| commit | 10f4d8df32f73e3c5071a6e168a0923a53d8332f (patch) | |
| tree | 8d8185c9f6a9764526cb117a70581d362b1920a9 /src/checker.cpp | |
| parent | e15858e2be223c52e4daaf433d62ee5719943782 (diff) | |
Override libtommath allocation procedures
Diffstat (limited to 'src/checker.cpp')
| -rw-r--r-- | src/checker.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/checker.cpp b/src/checker.cpp index ac783bcca..3800f3e4c 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -849,8 +849,8 @@ void init_checker_info(CheckerInfo *i) { string_map_init(&i->files, a); string_map_init(&i->packages, a); array_init(&i->variable_init_order, a); - array_init(&i->required_foreign_imports_through_force, a); array_init(&i->testing_procedures, a, 0, 0); + array_init(&i->required_foreign_imports_through_force, a, 0, 0); i->allow_identifier_uses = build_context.query_data_set_settings.kind == QueryDataSet_GoToDefinitions; @@ -864,6 +864,7 @@ void init_checker_info(CheckerInfo *i) { mpmc_init(&i->entity_queue, a, 1<<20); mpmc_init(&i->definition_queue, a, 1<<20); mpmc_init(&i->required_global_variable_queue, a, 1<<10); + mpmc_init(&i->required_foreign_imports_through_force_queue, a, 1<<10); TIME_SECTION("checker info: mutexes"); @@ -897,6 +898,7 @@ void destroy_checker_info(CheckerInfo *i) { mpmc_destroy(&i->entity_queue); mpmc_destroy(&i->definition_queue); mpmc_destroy(&i->required_global_variable_queue); + mpmc_destroy(&i->required_foreign_imports_through_force_queue); gb_mutex_destroy(&i->gen_procs_mutex); gb_mutex_destroy(&i->gen_types_mutex); @@ -1893,8 +1895,8 @@ void generate_minimum_dependency_set(Checker *c, Entity *start) { } } - for_array(i, c->info.required_foreign_imports_through_force) { - Entity *e = c->info.required_foreign_imports_through_force[i]; + for (Entity *e; mpmc_dequeue(&c->info.required_foreign_imports_through_force_queue, &e); /**/) { + array_add(&c->info.required_foreign_imports_through_force, e); add_dependency_to_set(c, e); } @@ -3793,9 +3795,7 @@ void check_add_foreign_import_decl(CheckerContext *ctx, Ast *decl) { AttributeContext ac = {}; check_decl_attributes(ctx, fl->attributes, foreign_import_decl_attribute, &ac); if (ac.require_declaration) { - mutex_lock(&ctx->info->foreign_mutex); - array_add(&ctx->info->required_foreign_imports_through_force, e); - mutex_unlock(&ctx->info->foreign_mutex); + mpmc_enqueue(&ctx->info->required_foreign_imports_through_force_queue, e); add_entity_use(ctx, nullptr, e); } } |