From 3cfdf66d9aecb463026d1227a8ba159edd4e1cbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Wed, 8 Dec 2021 13:02:58 +0100 Subject: [PATCH] Settings: initialize default sort key for new screenpanel Use C99 struct initialization, which also makes using calloc redundant. htop: Process.c:1179: int Process_compareByKey_Base(const Process *, const Process *, ProcessField): Assertion `0 && "Process_compareByKey_Base: default key reached"' failed. --- Settings.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/Settings.c b/Settings.c index 94b4003c..5cc09502 100644 --- a/Settings.c +++ b/Settings.c @@ -263,16 +263,20 @@ static void ScreenSettings_readFields(ScreenSettings* ss, Hashtable* columns, co } ScreenSettings* Settings_newScreen(Settings* this, const char* name, const char* line) { - ScreenSettings* ss = xCalloc(1, sizeof(ScreenSettings)); - ss->name = xStrdup(name); - ss->fields = xCalloc(LAST_PROCESSFIELD, sizeof(ProcessField)); - ss->flags = 0; - ss->direction = 1; - ss->treeDirection = 1; - ss->treeSortKey = 1; - ss->treeView = false; - ss->treeViewAlwaysByPID = false; - ss->allBranchesCollapsed = false; + ScreenSettings* ss = xMalloc(sizeof(ScreenSettings)); + *ss = (ScreenSettings) { + .name = xStrdup(name), + .fields = xCalloc(LAST_PROCESSFIELD, sizeof(ProcessField)), + .flags = 0, + .direction = 1, + .treeDirection = 1, + .sortKey = PID, + .treeSortKey = PID, + .treeView = false, + .treeViewAlwaysByPID = false, + .allBranchesCollapsed = false, + }; + ScreenSettings_readFields(ss, this->dynamicColumns, line); this->screens[this->nScreens] = ss; this->nScreens++;