From f701e028b401554546150958cc29f8524018f6d8 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Mon, 12 Jun 2023 14:15:08 -0700 Subject: [PATCH] libsysprof-analyze: add some flags for internal state This can help us to avoid various work items when processing symbols. --- src/libsysprof-analyze/sysprof-callgraph.c | 3 +++ src/libsysprof-analyze/sysprof-document.c | 1 + src/libsysprof-analyze/sysprof-symbol-private.h | 3 +++ 3 files changed, 7 insertions(+) diff --git a/src/libsysprof-analyze/sysprof-callgraph.c b/src/libsysprof-analyze/sysprof-callgraph.c index 593bfc20..3a83114b 100644 --- a/src/libsysprof-analyze/sysprof-callgraph.c +++ b/src/libsysprof-analyze/sysprof-callgraph.c @@ -169,7 +169,10 @@ sysprof_callgraph_class_init (SysprofCallgraphClass *klass) object_class->finalize = sysprof_callgraph_finalize; everything = _sysprof_symbol_new (g_ref_string_new_intern ("[Everything]"), NULL, NULL, 0, 0); + everything->is_everything = TRUE; + untraceable = _sysprof_symbol_new (g_ref_string_new_intern ("[Unwindable]"), NULL, NULL, 0, 0); + everything->is_untraceable = TRUE; } static void diff --git a/src/libsysprof-analyze/sysprof-document.c b/src/libsysprof-analyze/sysprof-document.c index 66ed1823..c353cb9b 100644 --- a/src/libsysprof-analyze/sysprof-document.c +++ b/src/libsysprof-analyze/sysprof-document.c @@ -489,6 +489,7 @@ sysprof_document_load_processes (SysprofDocument *self) process_info->symbol = _sysprof_symbol_new (sysprof_strings_get (self->strings, wrapped), NULL, NULL, 0, 0); + process_info->symbol->is_process = TRUE; } } } diff --git a/src/libsysprof-analyze/sysprof-symbol-private.h b/src/libsysprof-analyze/sysprof-symbol-private.h index 9961c691..35e61e0c 100644 --- a/src/libsysprof-analyze/sysprof-symbol-private.h +++ b/src/libsysprof-analyze/sysprof-symbol-private.h @@ -39,6 +39,9 @@ struct _SysprofSymbol SysprofAddress end_address; guint is_context_switch : 1; + guint is_everything : 1; + guint is_untraceable : 1; + guint is_process : 1; }; SysprofSymbol *_sysprof_symbol_new (GRefString *name,