From 524edff8bee015e9c1faad359d1a24749a286aa3 Mon Sep 17 00:00:00 2001 From: zhengchao Date: Mon, 19 Jul 2021 17:43:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96hit=5Fpath=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entry/Maat_hierarchy.cpp | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/entry/Maat_hierarchy.cpp b/src/entry/Maat_hierarchy.cpp index ca20b52..7732a49 100644 --- a/src/entry/Maat_hierarchy.cpp +++ b/src/entry/Maat_hierarchy.cpp @@ -70,24 +70,32 @@ struct Maat_hierarchy_internal_hit_path int region_id; int virtual_table_id; }; -static inline int compare_internal_hit_path(const void* a, const void* b) -{ - return memcmp(a, b, sizeof(struct Maat_hierarchy_internal_hit_path)); -} static int Maat_hierarchy_hit_path_add(UT_array* hit_paths, int region_id, int virtual_table_id, int Nth_scan, int Nth_region_result) { - struct Maat_hierarchy_internal_hit_path new_path; + struct Maat_hierarchy_internal_hit_path new_path, *tmp_path=NULL; new_path.region_id=region_id; new_path.Nth_hit_region=Nth_region_result; new_path.Nth_scan=Nth_scan; new_path.virtual_table_id=virtual_table_id; - - if(utarray_find(hit_paths, &new_path, compare_internal_hit_path)) + size_t i=0, num=utarray_len(hit_paths); + for(i=0; iNth_scan!=new_path.Nth_scan) + { + break; + } + else + { + if(tmp_path->region_id==new_path.region_id && + tmp_path->virtual_table_id==new_path.virtual_table_id && + tmp_path->Nth_hit_region==new_path.Nth_hit_region) + { + return 0; + } + } } utarray_push_back(hit_paths, &new_path); - utarray_sort(hit_paths, compare_internal_hit_path); return 1; }