mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-01 10:52:19 +00:00
Minimize mutex usage when in single threaded mode.
This commit is contained in:
@@ -1738,7 +1738,7 @@ gb_internal Entity *check_ident(CheckerContext *c, Operand *o, Ast *n, Type *nam
|
||||
o->expr = n;
|
||||
String name = n->Ident.token.string;
|
||||
|
||||
Entity *e = scope_lookup(c->scope, name);
|
||||
Entity *e = scope_lookup(c->scope, name, n->Ident.hash);
|
||||
if (e == nullptr) {
|
||||
if (is_blank_ident(name)) {
|
||||
error(n, "'_' cannot be used as a value");
|
||||
@@ -5361,7 +5361,7 @@ gb_internal Entity *check_entity_from_ident_or_selector(CheckerContext *c, Ast *
|
||||
}
|
||||
} else */if (node->kind == Ast_Ident) {
|
||||
String name = node->Ident.token.string;
|
||||
return scope_lookup(c->scope, name);
|
||||
return scope_lookup(c->scope, name, node->Ident.hash);
|
||||
} else if (!ident_only) if (node->kind == Ast_SelectorExpr) {
|
||||
ast_node(se, SelectorExpr, node);
|
||||
if (se->token.kind == Token_ArrowRight) {
|
||||
@@ -5383,7 +5383,7 @@ gb_internal Entity *check_entity_from_ident_or_selector(CheckerContext *c, Ast *
|
||||
|
||||
if (op_expr->kind == Ast_Ident) {
|
||||
String op_name = op_expr->Ident.token.string;
|
||||
Entity *e = scope_lookup(c->scope, op_name);
|
||||
Entity *e = scope_lookup(c->scope, op_name, op_expr->Ident.hash);
|
||||
if (e == nullptr) {
|
||||
return nullptr;
|
||||
}
|
||||
@@ -5480,7 +5480,7 @@ gb_internal Entity *check_selector(CheckerContext *c, Operand *operand, Ast *nod
|
||||
|
||||
if (op_expr->kind == Ast_Ident) {
|
||||
String op_name = op_expr->Ident.token.string;
|
||||
Entity *e = scope_lookup(c->scope, op_name);
|
||||
Entity *e = scope_lookup(c->scope, op_name, op_expr->Ident.hash);
|
||||
add_entity_use(c, op_expr, e);
|
||||
expr_entity = e;
|
||||
|
||||
@@ -5903,7 +5903,7 @@ gb_internal bool check_identifier_exists(Scope *s, Ast *node, bool nested = fals
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
Entity *e = scope_lookup(s, name);
|
||||
Entity *e = scope_lookup(s, name, i->hash);
|
||||
if (e != nullptr) {
|
||||
if (out_scope) *out_scope = e->scope;
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user