mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-14 17:28:07 +00:00
minor fix
This commit is contained in:
committed by
Ryan Fleury
parent
266d66250c
commit
ec3da44568
@@ -1492,6 +1492,7 @@ d2r_tag_iterator_init(Arena *arena, DW_TagNode *root)
|
|||||||
iter->stack->node->sibling = 0;
|
iter->stack->node->sibling = 0;
|
||||||
iter->visit_children = 1;
|
iter->visit_children = 1;
|
||||||
iter->tag_node = root;
|
iter->tag_node = root;
|
||||||
|
iter->null_tag_node = push_array(arena, DW_TagNode, 1);
|
||||||
return iter;
|
return iter;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1536,7 +1537,7 @@ d2r_tag_iterator_skip_children(D2R_TagIterator *iter)
|
|||||||
internal DW_TagNode *
|
internal DW_TagNode *
|
||||||
d2r_tag_iterator_parent_tag_node(D2R_TagIterator *iter)
|
d2r_tag_iterator_parent_tag_node(D2R_TagIterator *iter)
|
||||||
{
|
{
|
||||||
return iter->stack->next->node;
|
return iter->stack == 0 || iter->stack->next == 0 ? iter->null_tag_node : iter->stack->next->node;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal DW_Tag
|
internal DW_Tag
|
||||||
@@ -1938,7 +1939,8 @@ d2r_convert_types(Arena *arena,
|
|||||||
// TODO: @native_vector_support extract byte size from the base type tag
|
// TODO: @native_vector_support extract byte size from the base type tag
|
||||||
// and convert to U256, U512, S256 and S512
|
// and convert to U256, U512, S256 and S512
|
||||||
B32 is_vector = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_GNU_Vector);
|
B32 is_vector = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_GNU_Vector);
|
||||||
if (is_vector) { NotImplemented; }
|
// TODO:
|
||||||
|
//if (is_vector) { NotImplemented; }
|
||||||
|
|
||||||
B32 error = 1;
|
B32 error = 1;
|
||||||
|
|
||||||
@@ -2862,13 +2864,32 @@ d2r_convert(Arena *arena, D2R_ConvertParams *params)
|
|||||||
String8 path;
|
String8 path;
|
||||||
{
|
{
|
||||||
Temp temp = temp_begin(scratch.arena);
|
Temp temp = temp_begin(scratch.arena);
|
||||||
PathStyle path_style = path_style_from_str8(lookup->vm->header.dir_table.v[src->dir_idx]);
|
|
||||||
if (path_style == PathStyle_Relative) {
|
String8 comp_dir = lookup->vm->header.dir_table.v[0];
|
||||||
path_style = path_style_from_str8(src->path);
|
|
||||||
|
PathStyle comp_path_style = path_style_from_str8(comp_dir);
|
||||||
|
PathStyle dir_path_style = path_style_from_str8(lookup->vm->header.dir_table.v[src->dir_idx]);
|
||||||
|
PathStyle file_path_style = path_style_from_str8(src->path);
|
||||||
|
|
||||||
|
String8List dir_path_list = str8_split_path(temp.arena, lookup->vm->header.dir_table.v[src->dir_idx]);
|
||||||
|
String8List file_path_list = str8_split_path(temp.arena, src->path);
|
||||||
|
|
||||||
|
String8List path_list = {0};
|
||||||
|
if (dir_path_style == PathStyle_Relative) {
|
||||||
|
String8List comp_dir_list = str8_split_path(temp.arena, comp_dir);
|
||||||
|
str8_list_concat_in_place(&path_list, &comp_dir_list);
|
||||||
}
|
}
|
||||||
String8List path_list = str8_split_path(temp.arena, lookup->vm->header.dir_table.v[src->dir_idx]);
|
str8_list_concat_in_place(&path_list, &dir_path_list);
|
||||||
str8_list_push_node(&path_list, &(String8Node){ .string = src->path });
|
str8_list_concat_in_place(&path_list, &file_path_list);
|
||||||
|
|
||||||
|
PathStyle path_style = PathStyle_SystemAbsolute;
|
||||||
|
if (dir_path_style != PathStyle_Relative) { path_style = dir_path_style; }
|
||||||
|
else if (file_path_style != PathStyle_Relative) { path_style = file_path_style; }
|
||||||
|
else if (comp_path_style != PathStyle_Relative) { path_style = comp_path_style; }
|
||||||
|
|
||||||
|
str8_path_list_resolve_dots_in_place(&path_list, path_style);
|
||||||
path = str8_path_list_join_by_style(arena, &path_list, path_style);
|
path = str8_path_list_join_by_style(arena, &path_list, path_style);
|
||||||
|
|
||||||
temp_end(temp);
|
temp_end(temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ typedef struct D2R_TagIterator
|
|||||||
{
|
{
|
||||||
D2R_TagFrame *free_list;
|
D2R_TagFrame *free_list;
|
||||||
D2R_TagFrame *stack;
|
D2R_TagFrame *stack;
|
||||||
|
DW_TagNode *null_tag_node;
|
||||||
DW_TagNode *tag_node;
|
DW_TagNode *tag_node;
|
||||||
B32 visit_children;
|
B32 visit_children;
|
||||||
} D2R_TagIterator;
|
} D2R_TagIterator;
|
||||||
|
|||||||
Reference in New Issue
Block a user