From 40e9e32030ade512f26f94c93d11f90114844d06 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Mon, 22 May 2023 17:09:37 -0700 Subject: [PATCH] libsysprof-analyze: cleanup ctrset value retrieval --- src/libsysprof-analyze/sysprof-document-ctrset.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/libsysprof-analyze/sysprof-document-ctrset.c b/src/libsysprof-analyze/sysprof-document-ctrset.c index de083deb..d0af9fda 100644 --- a/src/libsysprof-analyze/sysprof-document-ctrset.c +++ b/src/libsysprof-analyze/sysprof-document-ctrset.c @@ -76,13 +76,19 @@ sysprof_document_ctrset_get_raw_value (SysprofDocumentCtrset *self, guint8 value[restrict 8]) { const SysprofCaptureCounterSet *ctrset; + guint group; + guint pos; g_return_if_fail (SYSPROF_IS_DOCUMENT_CTRSET (self)); g_return_if_fail (nth < sysprof_document_ctrset_get_n_values (self)); g_return_if_fail (value != NULL); + group = nth / 8; + pos = nth % 8; + ctrset = SYSPROF_DOCUMENT_FRAME_GET (self, SysprofCaptureCounterSet); - *id = ctrset->values[nth / 8].ids[nth % 8]; - memcpy (value, &ctrset->values[nth / 8].values[nth % 8], 8); + *id = SYSPROF_DOCUMENT_FRAME_UINT32 (self, ctrset->values[group].ids[pos]); + + memcpy (value, &ctrset->values[group].values[pos], 8); }