mirror of
https://github.com/Ed94/metadesk.git
synced 2026-06-12 23:51:37 -07:00
[bugfix] do not use RootFromNode when calculating file coordinates, stop upwards search on the first NodeKind_File node
This commit is contained in:
+12
-4
@@ -2975,16 +2975,24 @@ MD_CodeLocFromFileOffset(MD_String8 filename, MD_u8 *base, MD_u64 offset)
|
||||
MD_FUNCTION MD_CodeLoc
|
||||
MD_CodeLocFromNode(MD_Node *node)
|
||||
{
|
||||
MD_Node *root = MD_RootFromNode(node);
|
||||
MD_Node *first_tag = root->first_tag;
|
||||
MD_Node *file_root = MD_NilNode();
|
||||
for(MD_Node *parent = node->parent; !MD_NodeIsNil(parent); parent = parent->parent)
|
||||
{
|
||||
if(parent->kind == MD_NodeKind_File)
|
||||
{
|
||||
file_root = parent;
|
||||
break;
|
||||
}
|
||||
}
|
||||
MD_Node *first_tag = file_root->first_tag;
|
||||
MD_CodeLoc loc = {0};
|
||||
if(MD_NodeIsNil(first_tag))
|
||||
{
|
||||
loc = MD_CodeLocFromFileOffset(root->string, root->raw_string.str, node->offset);
|
||||
loc = MD_CodeLocFromFileOffset(file_root->string, file_root->raw_string.str, node->offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
loc = MD_CodeLocFromFileOffset(root->string, first_tag->raw_string.str, node->offset);
|
||||
loc = MD_CodeLocFromFileOffset(file_root->string, first_tag->raw_string.str, node->offset);
|
||||
}
|
||||
return loc;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user